Основы трансляции. Рыбанов А.А. - 25 стр.

UptoLike

Составители: 

25
Курсовая работа заключается в создании интерпретатора языка МИЛАН с
незначительными модификациями. Результатами курсовой работы являются
программная реализация заданного интерпретатора и пояснительная записка,
оформленная в соответствии с требованиями стандартов и задания на курсовую
работу.
Интерпретатор должен быть написан на языке PHP. Входной язык
интерпретатора должен удовлетворять следующим требованиям:
- входная программа должна соответствовать грамматике входного языка
(согласно варианту задания), которая строится исполнителем на первом этапе.
- входная программа может быть разбита на строки произвольным образом,
все пробелы и переводы строки должны игнорироваться компилятором;
- текст входной программы может содержать комментарии любой длины,
которые должны игнорироваться интерпретатором.
3.1. Варианты заданий
Грамматика языка МИЛАН должна быть расширена оператором-
переключателем, оператором цикла, комментариями и дополнительными
операциями (инкремент, декремент).
Рассмотрим варианты реализации конструкции <оператор-переключатель>:
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) Комментарий в фигурных скобках.
Пример: { раздел описания переменных }
   Курсовая работа заключается в создании интерпретатора языка МИЛАН с
незначительными модификациями. Результатами курсовой работы являются
программная реализация заданного интерпретатора и пояснительная записка,
оформленная в соответствии с требованиями стандартов и задания на курсовую
работу.
   Интерпретатор должен быть написан на языке PHP. Входной язык
интерпретатора должен удовлетворять следующим требованиям:
   - входная программа должна соответствовать грамматике входного языка
(согласно варианту задания), которая строится исполнителем на первом этапе.
   - входная программа может быть разбита на строки произвольным образом,
все пробелы и переводы строки должны игнорироваться компилятором;
   - текст входной программы может содержать комментарии любой длины,
которые должны игнорироваться интерпретатором.

  3.1. Варианты заданий
  Грамматика языка МИЛАН должна быть расширена оператором-
переключателем, оператором цикла, комментариями и дополнительными
операциями (инкремент, декремент).
  Рассмотрим варианты реализации конструкции <оператор-переключатель>:
   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) Комментарий в фигурных скобках.
   Пример: { раздел описания переменных }

                                            25