Вычислительная техника в инженерных расчетах. Черный А.А. - 31 стр.

UptoLike

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

31
Сам язык основан на концепции передачи сообщений. Програм-
ма на Прологе ++ строится вокруг множества объектов Пролога ++, ко-
торые обмениваются сообщениями. В этом смысле Пролог ++ ближе к
чистому объектно-ориентированному языку, такому, как Smalltalk, чем
C++ или Object Pascal. Определения объектов строятся исходя из вызо-
вов.
Open_Object [имя_объекта] и Close_Object [имя_объекта],
а ме-
тоды определяются практически так же, как в других объектно-
ориентированных языках. Для задания наследования можно явным об-
разом указать, какой метод какого объекта должен наследоваться, что
является необходимым для многократного наследования.
Лекс
Лексгенератор программ лексического анализа. Лексический
анализэто распознавание лексем во входном потоке символов. Пред-
положим
, что задано некоторое конечное множество слов (лексем) в
некотором языке и некоторое входное слово. Необходимо установить,
какой элемент множества (если он существует) совпадает с данным
входным словом. Обычно лексический анализ выполняется так назы-
ваемым лексическим анализатором. Лексический анализаторэто про-
грамма. Лексический анализ применяется во многих случаях, например,
для построения
пакетного редактора или в качестве распознавателя ди-
ректив в диалоговой программе и т.д. Однако, наиболее важное приме-
нение лексического анализатораэто использование его в компилято-
ре. Здесь лексический анализатор выполняет функцию программы вво-
да данных.
Лексический анализатор выполняет первую стадию компиляции
читает строки компилируемой программы, выделяет лексемы и переда-
ет
их на дальнейшие стадии компиляции (грамматический разбор, ко-
догенерацию и т.д.).
Лексический анализатор распознает тип каждой лексемы и соот-
ветствующим образом помечает ее. Например, при компиляции Си-
программы могут быть выделены следующие типы лексем: число,
идентификатор, оператор, ограничитель и т.д.
Лексический анализатор должен не только выделить лексему, но
и выполнить некоторые преобразования. Например, если лексема
число, то его необходимо перевести во внутреннюю (двоичную) форму
записи как число с плавающей или фиксированной запятой. А если лек-
семаидентификатор, то его необходимо разместить в таблице, чтобы
в дальнейшем обращаться к нему не по имени, а по адресу в таблице.
Хотя лексический
анализ по своей идее прост, тем не менее, эта
фаза работы компилятора часто занимает больше времени, чем любая
другая. Частично это происходит из-за необходимости просматривать и
      Сам язык основан на концепции передачи сообщений. Програм-
ма на Прологе ++ строится вокруг множества объектов Пролога ++, ко-
торые обмениваются сообщениями. В этом смысле Пролог ++ ближе к
чистому объектно-ориентированному языку, такому, как Smalltalk, чем
C++ или Object Pascal. Определения объектов строятся исходя из вызо-
вов.
      Open_Object [имя_объекта] и Close_Object [имя_объекта], а ме-
тоды определяются практически так же, как в других объектно-
ориентированных языках. Для задания наследования можно явным об-
разом указать, какой метод какого объекта должен наследоваться, что
является необходимым для многократного наследования.

                               Лекс

      Лекс – генератор программ лексического анализа. Лексический
анализ – это распознавание лексем во входном потоке символов. Пред-
положим, что задано некоторое конечное множество слов (лексем) в
некотором языке и некоторое входное слово. Необходимо установить,
какой элемент множества (если он существует) совпадает с данным
входным словом. Обычно лексический анализ выполняется так назы-
ваемым лексическим анализатором. Лексический анализатор – это про-
грамма. Лексический анализ применяется во многих случаях, например,
для построения пакетного редактора или в качестве распознавателя ди-
ректив в диалоговой программе и т.д. Однако, наиболее важное приме-
нение лексического анализатора – это использование его в компилято-
ре. Здесь лексический анализатор выполняет функцию программы вво-
да данных.
      Лексический анализатор выполняет первую стадию компиляции –
читает строки компилируемой программы, выделяет лексемы и переда-
ет их на дальнейшие стадии компиляции (грамматический разбор, ко-
догенерацию и т.д.).
      Лексический анализатор распознает тип каждой лексемы и соот-
ветствующим образом помечает ее. Например, при компиляции Си-
программы могут быть выделены следующие типы лексем: число,
идентификатор, оператор, ограничитель и т.д.
      Лексический анализатор должен не только выделить лексему, но
и выполнить некоторые преобразования. Например, если лексема –
число, то его необходимо перевести во внутреннюю (двоичную) форму
записи как число с плавающей или фиксированной запятой. А если лек-
сема – идентификатор, то его необходимо разместить в таблице, чтобы
в дальнейшем обращаться к нему не по имени, а по адресу в таблице.
      Хотя лексический анализ по своей идее прост, тем не менее, эта
фаза работы компилятора часто занимает больше времени, чем любая
другая. Частично это происходит из-за необходимости просматривать и
                                   31