Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТФЯГ задания.DOC
Скачиваний:
15
Добавлен:
16.03.2015
Размер:
195.07 Кб
Скачать

Вариант 11.

Написать программу синтаксического анализа автоматного языка операторов описания заголовков процедур и функций языкаTurbo Pascal, имеющего вид:

PROCEDURE <идентификатор>[(<список формальных параметров>)];

FUNCTION <идентификатор>[(<список формальных параметров>)]:<тип>;

<список формальных параметров> :: = <описание>[;<список формальных параметров>]

<описание>:: =[VAR]<список идентификаторов>:<тип>

<список идентификаторов>:: =<идентификатор>[,<список идентификаторов>]

<тип>:: =REALINTEGERCHARBYTEDOUBLESTRINGBOOLEAN

<идентификатор>- идентификатор языкаTurbo Pascal, начинается с буквы или знака подчеркивания, включает совокупность букв, цифр; не допускает использование пробелов и специальных символов, ввести ограничение на длину (не более 8 символов) и не может быть зарезервированным словом (PROCEDURE, FUNCTION, VAR, REAL, INTEGER, CHAR, BYTE, DOUBLE, STRING, BOOLEAN).

Семантика:

Построить таблицу идентификаторов с указанием типа и объема памяти под переменную. Учесть ограничения на идентификаторы.

Сообщать об ошибках в случае дублирования идентификаторов. Указывать курсором место ошибки при анализе и ее содержание.

Примеры правильных цепочек:

PROCEDURE _CA_B;

PROCEDURE SUBSTR ( S : CHAR; I : INTEGER );

PROCEDURE IM1 ( A, B : BOOLEAN; VAR C, D : DOUBLE );

FUNCTION IM2 : REAL;

FUNCTION IM3 ( E, F : BYTE; G : STRING ) : INTEGER;

Вариант 12.

Написать программу синтаксического анализа автоматного языка вызова процедур языкаFortran - 77;цепочки языка имеют вид:

CALL <идентификатор><список фактических параметров>

<список фактических параметров>:: =<параметр>[,<список фактических параметров>]

<константа любая>

<параметр>:: =<константа целая>

<идентификатор>

 <идентификатор>

<идентификатор>- идентификатор, начинается с буквы, включает последовательность букв, цифр, не допускает пробелы и специальные символы, ввести ограничение на длину (не более 8 символов) и не может быть зарезервированным словом (CALL, FORMAT, FOR, TO);

<константа целая>- целое число в диапазоне1+32767;

<константа любая>- целое число в диапазоне -32768+32767,число с фиксированной точкой, число с плавающей точкой. Число цифр порядка2.

Семантика:

Построить таблицу идентификаторов и констант с указанием номера параметра. Учесть перечисленные выше ограничения на идентификаторы и константы. Не допускать дублирование идентификаторов.

Сообщать об ошибках при анализе, указывая курсором место ошибки и ее содержание.

Примеры правильных цепочек:

CALL SINUS

CALL PRIMER1 ( ABC, 3.14, 0.25E4, 15 )

CALL PRIMER2 ( A ( B ), C ( 35 ), 34E - 2, AB ( KB ) )

Вариант 13.

Написать программу синтаксического анализа автоматного языка операторов цикла языкаQBasic, имеющих вид:

FOR <идентификатор счетчика>=<константа 1>TO<константа 2>STEP<шаг>

<оператор присваивания>

EXIT FOR

NEXT <идентификатор счетчика>

<оператор присваивания>:: =<идентификатор>=<константа>

<шаг>- целое число;

<константа 1>,<константа 2>,<константа>- целое число;

<идентификатор>- идентификатор, начинается с буквы, включает буквы, цифры, не допускает пробелы и специальные символы, ввести ограничение на длину (не более 8 символов) и не может быть зарезервированным словом (FOR, TO, STEP, EXIT, NEXT).

Семантика:

Построить таблицу идентификаторов и констант. Подсчитать число раз выполнения цикла (если это возможно). Учесть перечисленные выше ограничения на идентификаторы и константы. Не допускать дублирование идентификаторов.

Сообщать об ошибках при анализе, указывая курсором место ошибки и ее содержание.

Примеры правильных цепочек:

  1. FOR I =1 TO 10 STEP 2

A = 18

NEXT I

2. FOR J12 = 85 TO 100

B = -386

EXIT FOR

NEXT J12

3. FOR BL = 30 TO 1 STEP -3

Z8 = 0

NEXT BL