ОФОРМЛЕНИЕ КУРСОВОЙ РАБОТЫ

Варианты заданий

ТЕМАТИКА КУРСОВЫХ РАБОТ

Тематика курсовых курсовых работ по дисциплине «Основы трансляции» ориентирована на спользование языка MILAN (MIni LANguage) . MILAN - это учебный язык.

Курсовая работа заключается в создании интерпретатора языка МИЛАН с незначительными модификациями. Результатами курсовой работы являются программная реализация заданного интерпретатора и пояснительная записка, оформленная в соответствии с требованиями стандартов и задания на курсовую работу.

Интерпретатор должен быть написан на языке PHP. Входной язык интерпретатора должен удовлетворять следующим требованиям:

- входная программа должна соответствовать грамматике входного языка (согласно варианту задания), которая строится исполнителем на первом этапе.

- входная программа может быть разбита на строки произвольным образом, все пробелы и переводы строки должны игнорироваться компилятором;

- текст входной программы может содержать комментарии любой длины, которые должны игнорироваться интерпретатором.

 

Грамматика языка МИЛАН должна быть расширена оператором-переключателем, оператором цикла, комментариями и дополнительными операциями (инкремент, декремент).

Рассмотрим варианты реализации конструкции <оператор-переключатель>:

1) <оператор-переключатель>::= SWITH (<выражение>) { CASE <константа> : <последовательность операторов> {CASE <константа> : <последовательность операторов> } [DEFAUT : <последовательность операторов> ] }   2) <оператор-переключатель>::= DO CASE CASE <условие> <последовательность операторов> { CASE <условие> <последовательность операторов> } [ OTHERWISE <последовательность операторов> ] ENDCASE   3) <оператор-переключатель>::= CASE <идентификатор> OF <константа> {, <константа>} : <последовательность операторов> {<константа> {, <константа>} : <последовательность операторов> } [ELSE <последовательность операторов> ] ENDCASE

Рассмотрим варианты реализации дополнительных операторов цикла:

1) <цикл-FОR>::= FOR <идентификатор> := <выражение> TO <выражение> [STEP <выражение>] <последовательность операторов> ENDFOR 2) <цикл-REPEAT>::= REPEAT <последовательность операторов> UNTIL <условие>

Рассмотрим варианты реализации комментариев:

1) Комментарий в фигурных скобках. Пример: { раздел описания переменных } 2) Комментарий в круглых скобках со звездочкой. Пример: (* раздел описания переменных *) 3) Комментарий за двойной косой чертой до конца строки. Пример: // раздел описания переменных 4) Комментарий внутри косых черт со звездочкой. Пример: /* раздел описания переменных */

Рассмотрим варианты реализации дополнительных операций:

1) ++ : инкремент (увеличение значения переменной на 1) 2) -- : декремент (уменьшение значения переменной на 1)

Условия модификации грамматики языка МИЛАН (по вариантам) приведены в таблице 9.

Таблица 9

Варианты заданий на курсовую работу

№ варианта Оператор переключатель Оператор цикла Тип комментариев Дополнительные операции

 

 
№ варианта Оператор выбора Оператор цикла Тип комментариев Дополнительные операции

 

Функциональность интерпретатора проверяется путем подачи на его вход простейших контрольных примеров (в том числе и примеров ошибочных входных программ).

Функциональность интерпретатора в первую очередь оценивается по заданным минимальным требованиям и по работоспособности (отсутствие «зависаний» и нерегламентированных сообщений об ошибках при любых входных данных)