Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СПО1.doc
Скачиваний:
59
Добавлен:
02.05.2014
Размер:
473.6 Кб
Скачать

10. Запись правил гр-ки в граф-м виде

Предполагает,что каждому нетерм символу соотв диаграмма,постр-я в виде напр-го графа.

Название

Обозначение

Назначение

Точка входа

Никак не обозн

Из нее начин вх дуга графа

Нетерм символ

Внутрь вписано обозн-е нетерм символов

Цепочка терм символов

В нее вписаны цепочки терм символов

Узловая точка

Перекресток

Точка выхода

Никак не обозн-ся

В нее вх вых-я дуга графа

11. Классификация грамматик

Нулевой тип: грамматика с фразовой структурой. На структуру правил не накладывается никаких ограничений: α→β, где αєV­­­+, βєV* - попарно все без исключения грамматики Практическое применения не имеют, V=VTUVN, G(VN,VV,P,S).

Первый тип: контекстно-зависимые: а)укорачивающие: α12→ α1βα2, где α1 и α2 є V*, A є VN, β є V+. G(VT,VV,P,S) б) не укорачивающие грам: α→β, где α и β єV­­­+, |β|>=|α|. Структура правил контекстно-зависимых грамматик предполагает что при построении предложений данного языка один и тот же нетерминальный символ м/б замещен на ту или иную цепочку симв, в зависимости от контекста, в котором он встречается: α12→(либо α1 ,либо α2 равно нулю). Не укорачивающая грамматика: имеет такую же структуру, но длина цепочек A и β одинакова. При построении компиляторов данная грамматика не используется.

Второй тип: контекстно-свободная граматика: А→β, где AєV­N, βєV+(не укорачивающая к-с грам). Укорачивающая к-с: А→β, где AєV­N, βєV*. В правой части правила может присутствовать пустая цепочка символов.К-с грамматика используется при описании синтаксической конструкции языков программирования.

Третий тип:Регулярная грамматика: лево-линейная : А→Bγ, А→γ ,где A и B єV­N, γ єVT*, право-лин: А→γB, А→γ, где A и B єV­N, γ єVT*. Регулярная грамматика используется при описании простых конструкций языков программирования. В компиляторе на их основе строят функции лексического анализа входного языка.

Самой сложной является нулевого типа грамматика.Самой простой типа 3

12. Классификация языков.

Тип 0: языки с фразовой структурой: самый сложный язык, который м/б

задан только грамматикой нулевого типа. Невозможно построить компилятор,который гарант-но выполнял разбор предложений языка за огромное время на ограниченных ресурсах.Невозможно построить компилятор естественного языка.

Тип 1: контекстно-зависимые языки:зад-ся грамм-кой ТИПа 1,время на распознавание предложений языка экспоненциально зависит от длины цепочки символов. Используется при анализе и переводе текста на естественный язык.

Тип 2: контекстно-свободные языки: зад-ся грамм-кой ТИПа 2,лежат в основе синтаксической конструкции современных языков программирования. Время распознавания языка полиномиально зависит от длины исходной цепочки. М/б квадратичная или кубическая зависимость. КС-языки лежат в основе синт-х констр-ций языков программирования.

Тип 3: регулярные: самый простой, время распознавания линейно зависит от длины исходной цепочки.Лежат в основе простейших конструкций языков программирования.