Всякий язык программирования, в частности, Zonnon, можно определить как множество предложений -- т.е. некоторое множество цепочек или конечных последовательностей элементарных единиц из некоторого непустого конечного множества символов, называемого словарем (или алфавитом) языка. Понятно, что при таком рассмотрении языка программирования мы только фиксируем множество символов, которые можно использовать для записи программ, а также класс допустимых (или, как принято говорить, синтаксически правильных) программ, не сопоставляя никакого смысла этим синтаксически правильным программам.
Ясно, что задавать множество допустимых программ исчерпывающим их перечислением нежелательно и даже невозможно. Мы хотим, чтобы описание языка было обозримым (заведомо конечным), хотя описываемый язык может быть и бесконечным. Обычный подход, удовлетворяющий этому требованию, состоит в том, что предложения языка строятся по определенным правилам, в совокупности составляющим то, что называют грамматикой языка. Эти грамматические правила приписывают предложениям языка некоторую синтаксическую структуру, которая используется в дальнейшем при определении смысла предложений.
Грамматику языка можно описывать различными способами. Например, ее можно задавать в виде порождающей системы, т.е. набора правил, применением которых можно породить все предложения языка и только их. Этот способ задания языка программирования ориентируется на человека, поскольку человек использует язык программирования именно для создания (порождения) программ, решающих поставленные задачи. Поэтому нами в дальнейшем будет использоваться именно этот способ.
Семантика языка программирования -- это правила придания смысла синтаксически
правильным программам. В конечном счете эти правила определяют ту последовательность
действий вычислительной машины, которую она должна выполнить, работая по
данной программе. Например, семантика языка команд компьютера определяется
самим компьютером: машинная программа означает в точности то, что осуществляет
вычислительная машина при работе по данной программе. Аналогично семантика
языка высокого уровня может быть определена через описание правил выполнения
соответствующей виртуальной машины. Для описания семантики языка Zonnon
мы будем использовать виртуальную Zonnon-машину (сокращенно ВМ), не забывая
о том, что для исполнения Zonnon-программ на реальных компьтерах требуются
трансляторы -- например, мы будем ориентироваться на использование транслятора
для языка Zonnon для платформы .NET.
Next:1.2.3
Алфавит и словарь
Up:1.2
Как можно определить
Previous:1.2.1
Два примера простых