Skip to content

Компилятор языка "O" автор С.З. Свердлов

Notifications You must be signed in to change notification settings

askfind/computer_language_O

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

computer_language_O

Язык программирования «О»

===========================

Все последующие вопросы, связанные с конструированием ком- пиляторов, мы будем рассматривать на примере разработки транслятора для минимального подмножества языка Оберон-2 (Приложение 1). Такой конкретный и предметный подход на- верняка сузит круг обсуждаемых тем, не позволит рассмотреть тонкие и сложные вопросы, связанные с оптимизацией кода, за- то гарантирует полное понимание основ.

Оберон-2 — это расширенная версия языка Оберон, созданного выдающимся швейцарским специалистом Никлаусом Виртом, автором Паскаля и Модулы-2. Оберон очень прост и в то же время содержит в себе необходимые средства структурного, мо- дульного и объектно-ориентированного программирования [Свердлов, 2007].

Тот простой язык, для которого мы напишем компилятор, будет называться «О». Это шуточное название, во-первых, подчерки- вает некоторую несерьезность, учебный характер, «игрушеч- ность» языка — уж очень он будет прост. Во-вторых, буква «О», похожа на ноль (сложность языка стремится к нулю) и в то же время это первая буква слова Оберон. Из других ассоциаций — «Операция «Ы».

Краткая характеристика языка «О»

  • Язык «О» является точным подмножеством Оберона и Оберо- на-2, то есть любая программа на языке «О» является пра- вильной программой на языках Оберон и Оберон-2.
  • Программа на языке «О» состоит из единственного модуля. Выполнение программы начинается с первого оператора, за- писанного после слова BEGIN . Процедуры в языке «О» отсут- ствуют.
  • Предусмотрены константы и переменные только целого ( INTEGER ) типа. Выражения логического типа (без логических операций) могут использоваться в операторах IF и WHILE . Массивов и записей нет.
  • Выражения строятся по правилам языка Оберон. Допустимы все операции, применимые к целым и дающие результат цело- го типа: +, –, *, DIV , MOD . В логических выражениях использу- ются операции отношения: =, #, <, >, <=, >=, которые приме- нимы к целочисленным операндам.
  • Набор операторов включает присваивание, вызов процедуры (стандартной), IF – THEN – ELSIF … ELSE – END , WHILE – DO – END .
  • Предусмотрены стандартные процедуры и процедуры- функции ABS , DEC , HALT , INC , MAX , MIN , ODD . Их смысл такой же, как и в языке Оберон-2 (см. Приложение 1).
  • Разрешается импорт стандартных (псевдо) модулей In и Out , предоставляющих процедуры ввода-вывода In.Open , In.Int , Out.Int , Out.Ln . Их свойства приведены в таблице.

В записи программы разрешены комментарии, которые могут быть вложенными.

  • Большие и малые буквы различаются.
  • Кроме ключевых слов, используемых в языке «О», зарезерви- рованными считаются также все остальные служебные слова языка Оберон-2. Их нельзя использовать в качестве иденти- фикаторов в программах на «О». Это обеспечивает полную совместимость снизу вверх с Обероном-2.

About

Компилятор языка "O" автор С.З. Свердлов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published