Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 1

.doc
Скачиваний:
7
Добавлен:
01.05.2014
Размер:
35.33 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет

«ЛЭТИ»

Кафедр ВТ

Отчёт по

лабораторной работе № 1

“Продемонстрировать правильность выводимых цепочек по построенной грамматике”

Выполнил:

Морозов С. А.

Гр.: 4331

Проверил:

Холод И.И.

Санкт – Петербург 2007 год.

Цель:

Построить грамматику. Продемонстрировать правильность выводимых цепочек по построенной грамматике.

Задание:

15.(Р) Последовательность описаний вложенных записей с полями типа (char, boolean) и операторов присваивания, в которых могут быть использованы вызовы процедур.

Текст построенной грамматики:

<I> ::= <struct><I> --

<I> ::= $ --

<struct> ::= <struct0> --

<struct0> ::= s<struct1> --

<struct1> ::= t<struct2> --

<struct2> ::= r<struct3> --

<struct3> ::= u<struct4> --

<struct4> ::= c<struct5> --

<struct5> ::= t<struct6> --

<struct6> ::= _<name_struct>

<name_struct> ::= <name><body> --

<body> ::= {<body1> --

<body1> ::= <set_fields><end_struct> --

<end_struct> ::= }<end_struct1> --

<end_struct1> ::= ;<var> --

<set_fields> ::= <bool> <choice_type> --

<set_fields> ::= <char> <choice_type> --

<set_fields> ::= <my_type><choice_type> --

<set_fields> ::= $ --

<choice_type> ::= <bool> <choice_type> --

<choice_type> ::= <char> <choice_type> --

<choice_type> ::= <my_type><choice_type> --

<choice_type> ::= $ --

<my_type> ::= <name><end_type> --

<bool> ::= b<bool1> --

<bool1> ::= o<bool2> --

<bool2> ::= o<bool3> --

<bool3> ::= l<end_type> --

<char> ::= c<char1> --

<char1> ::= h<char2> --

<char2> ::= a<char3> --

<char3> ::= r<end_type> --

<end_type> ::= _<var_name> --

<var> ::= <name><list> --

<list> ::= =<list1> --

<list1> ::= p<procedure> --

<procedure> ::= r<procedure1> --

<procedure1> ::= o<procedure2> --

<procedure2> ::= c<end_proc> --

<end_proc> ::= [<list_var> --

<list_var> ::= <var_name><next_var> --

<next_var> ::= <list_var> --

<next_var> ::= ]<end_var> --

<end_var> := ; --

<var_name> ::= <name>; --

<name> ::= <letter><name1> --

<name1> ::= <letter><name1> --

<name1> ::= <num><name1> --

<name1> ::= $ --

<num> ::= 0|1|2|3|4|5|6|7|8|9 --

<letter> ::= a|d|e|f|g|h|i|j|k|l|m|n --

<letter> ::= o|p|q|r|s|t|u|v|w|x|y|z --

Список примеров выводимых цепочек по построенной грамматике:

1. struct_d85f{w_x;};u28=proc[j;];

2. struct_dx5a2l496z7d{bool_pn63r;};k=proc[e;j;];

3. struct_o{woor_v;};xw3=proc[qr;i;y;x;l;v;];

4. struct_d3{};i5=proc[j6;];struct_f{};i=proc[g;];

5. struct_s30j9{bool_ru15;char_zw;};r=proc[e;];

Вывод

В данной лабораторной работе мы освоили программу ОСА (Учебная САПР Трансляторов). Научились строить грамматики, которые требуется получить в задании.

Убедились в том, что данная грамматика построена правильно, путем просмотра примеров выводимых цепочек.