Параметры между функциями передаются только по значению или через глобальные переменные. Рекурсии допускаются.
if выражение then последовательность_операторов
end
опер1;
. . .
Если результат вычисления выражения больше нуля (0), то выполняется последовательность операторов за ключевым словом then, если меньше или равен нулю (), то эта последовательность пропускается, и происходит переход к последующему за if оператору.
while выражение do последовательность_операторов
end
опер1;
. . .
Вычисляется выражение и результат сравнивается с нулем (0).Если результат больше нуля (), то выполняется последовательность операторов за словом do, а потом происходит переход к операторам, стоящим за словом end. Если же результат меньше или равен нулю (), то цикл не выполняется, а сразу происходит переход к стоящим за словом end операторам.
exp( a, b )
begin
int z;
z = 1;
while b do
if b%2 then z = z*a end;
a = a*a; b = b/2
end;
return z
end
main()
begin
int x, y;
read x;
read y;
print exp( x, y )
end
Где exp( a, b ) — функция возведения в степень .
Виды лексем:
Лексемы в программе представлены целыми числами. Для специальных символов — коды ASCII, а для лексем — числа (enum-перечисляемые константы). Лексемы, соответствующие ключевым словам, условимся обозначать заглавными буквами, добавляя при этом в конец слова букву L:
enum {BEGINL=257, ENDL, READL, PRITL, RETRL, IFL, THENL, WHILEL, DOL, CONSTL, INTL, IDEN, NUMB};
В регулярные выражения будут входить терминальные символы (лексемы). В регулярных выражениях их будем писать маленькими буквами, а нетерминальные символы — заглавными.
Нетерминальные символы:
PROG — программа;
DCONST — описание констант;
DVARB — описание переменных;
DFUNC — описание функций;
CONS — константы;
PARAM — параметры функции;
BODY — тело функции;
STML — последовательность операторов;
STAT — оператор;
EXPR — выражение;
TERM — слагаемое;
FACT — множитель;
FCTL — последовательность выражений.
PROG®(DCONST | DVARB | DFUNC)* eof
DCONST®constl CONS (‘,’ CONS)* ‘;’
CONS®iden ‘=’ [‘+’ | ’-’] numb
DVARB®intl iden (‘,’ iden)* ’;’
DFUNC®iden PARAM BODY
PARAM® [iden (‘,’ iden)*] ‘)’
BODY®beginl (DVARB | DCONST)* STML endl
STML®STAT (‘;’ STAT)*
STAT®iden ‘=’ EXPR |
readl iden |
pritl EXPR |
retrl EXPR |
ifl EXPR thenl STML endl |
whilel EXPR dol STML endl
EXPR®[‘+’ | ‘-’] TERM ((‘+’ | ‘-’) TERM)*
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.