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