Лабораторная работа 1
.docСанкт-Петербургский государственный электротехнический университет
«ЛЭТИ»
Кафедр ВТ
Отчёт по
лабораторной работе № 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;];
Вывод
В данной лабораторной работе мы освоили программу ОСА (Учебная САПР Трансляторов). Научились строить грамматики, которые требуется получить в задании.
Убедились в том, что данная грамматика построена правильно, путем просмотра примеров выводимых цепочек.