ОФОРМЛЕНИЕ КУРСОВОЙ РАБОТЫ
Варианты заданий
ТЕМАТИКА КУРСОВЫХ РАБОТ
Тематика курсовых курсовых работ по дисциплине «Основы трансляции» ориентирована на спользование языка 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
Варианты заданий на курсовую работу
|
|
Функциональность интерпретатора проверяется путем подачи на его вход простейших контрольных примеров (в том числе и примеров ошибочных входных программ).
Функциональность интерпретатора в первую очередь оценивается по заданным минимальным требованиям и по работоспособности (отсутствие «зависаний» и нерегламентированных сообщений об ошибках при любых входных данных)