Автор: Пользователь скрыл имя, 22 Декабря 2010 в 21:53, контрольная работа
Объект исследования процесс трансляции заданного языка программирования в машинные коды. Цель изучения состоит в применении математического аппарата конечных автоматов при лексическом анализе. Лексический анализ это начальный этап трансляции, за которым следуют грамматический разбор и этап генерации машинного кода. Наиболее трудоёмким по затратам машинного времени является этап лексического анализа. Для сокращения общего времени трансляции и упрощения лексического анализа целесообразно использовать математический аппарат конечных автоматов. Метод исследований как раз и базируется на его применении.
Введение……………………………………………………………....3
Цели работы…………………………………………………………..4
Вариант задания………………………………………………………6
Министерство образования Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
Энгельсский технологический институт (филиал)
ГОУ ВПО
«Саратовский государственный технологический
университет»
Кафедра «Технической физики
и
информационных технологий»
Курсовая работа
по дисциплине:
«Теория
языков программирования и методы трансляций»
Выполнил студент
механико-машиностроительного
факультета
группы ПВС-41:
Шестопалов Евгений Олегович
«_____________________»
Энгельс 2008
Содержание
Введение……………………………………………
Цели
работы…………………………………………………………..
Вариант
задания………………………………………………………6
Введение
Объект
исследования процесс трансляции заданного
языка программирования в машинные коды.
Цель изучения состоит в применении математического
аппарата конечных автоматов при лексическом
анализе. Лексический анализ это начальный
этап трансляции, за которым следуют грамматический
разбор и этап генерации машинного кода.
Наиболее трудоёмким по затратам машинного
времени является этап лексического анализа.
Для сокращения общего времени трансляции
и упрощения лексического анализа целесообразно
использовать математический аппарат
конечных автоматов. Метод исследований
как раз и базируется на его применении.
Цели работы.
Разработка лексического анализатора выполняется достаточно просто, если воспользоваться хорошо разработанным математическим аппаратом - теорией регулярных языков и конечных автоматов. В рамках этой теории классы однотипных лексем (идентификаторы, константы и т.д.) рассматриваются как формальные языки (язык идентификаторов, язык констант и т.д.), множество предложений которых описывается с помощью соответствующей порождающей грамматики. При этом языки эти настолько просты, что они порождаются простейшей из грамматик - регулярной грамматикой. Построенная регулярная грамматика является источником, по которому в дальнейшем конструируется вычислительное устройство, реализующее функцию распознаваний предложений языка, порождаемого данной грамматикой. Для регулярных языков таким устройством является конечный автомат.
Порождающая грамматика G(N,T,P,S), продукции которой имеют вид А®аВ или С®в, где А,В,С - нетерминальные символы; а,в- терминальные символы, называется регулярной или автоматной. Язык L(G), порождаемый регулярной грамматикой называется регулярным или автоматным или языком с конечным числом состояний. Основной задачей лексического анализа является распознавание лексических единиц. Математической моделью процесса распознавания регулярного языка является вычислительное устройство, которое называется конечным автоматом. Термин «конечный» подчёркивает то, что вычислительное устройство имеет фиксированный конечный объём памяти и обрабатывает последовательность входных символов, принадлежащих некоторому конечному множеству. Существуют различные типы конечных автоматов, если результатом работы является лишь указание на то, что входная последовательность символов допустима или нет, то такой конечный автомат называется конечным распознавателем.
В данном
задание необходимо построить конечные
автоматы для каждого типа распознаваемых
лексем. Проводя лексический анализ, конечные
автоматы должны сообщать о допустимости
или не допустимости конкретных лексем.
Вариант 5 3 2 .
Латинский, строчные + заглавные (a-z, A-Z, ®T1)
Цифры 0-9
Описание безусловных переходов (if, else, goto)
Библиотечные функции. (sqrt, log, ln, nearby)
Разделители: +,
-, *, :, _, /, (, ), {, }, =, <, >, [, ] ®
T2
Информация о работе Теория языков программирования и методы трансляций