Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы»

Презентация:



Advertisements
Похожие презентации
КЛАССИФИКАЦИЯ ГРАММАТИК И ЯЗЫКОВ ( КЛАССИФИКАЦИЯ ХОМСКОГО ) Рейн Т. С.
Advertisements

Теория формальных языков и грамматик. Определения 1. Цепочка символов в алфавите V - любая конечная последовательность символов этого алфавита. Пустая.
Теория языков программирования и методы трансляции Тема 2 Определение языка.
М.Ю. Харламов, ВНУ им. В.Даля, Генерация объектного кода это перевод компилятором внутреннего представ­ления исходной программы в цепочку символов.
Анализ трудоёмкости алгоритмов Анализ трудоёмкости алгоритмов позволяет найти оптимальный алгоритм для решения данной задачи. трудоемкость алгоритма количество.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
М.Ю. Харламов, ВНУ им. В.Даля, Алфавит (словарь) V Алфавит (словарь) V– это непустое конечное множество элементов (символов) Цепочка в алфавите.
Что такое программирование? Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все.
Классификация задач по классам сложности Классификация задач по классам сложности – (P-сложные, NP-сложные, экспоненциально сложные и др.).P-сложныеNP-сложные.
Алгоритм называется частичным алгоритмом, если мы получаем результат только для некоторых d є D и полным алгоритмом, если алгоритм получает правильный.
Введение В различных математических олимпиадах последних лет ученикам всё чаще предлагают уравнения, которые содержат знак функции антье. Но, как показывает.
Введение в теорию компиляции Основные принципы построения трансляторов.
Применение генетического программирования для реализации систем со сложным поведением Санкт-Петербургский Государственный Университет Информационных Технологий,
Компьютерный анализ естественно-языкового текста Кафедра информационных систем в искусстве и гуманитарных науках.
Первые шаги Компилятор. высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется.
СПЕЦИАЛИЗИРОВАННАЯ ИНСТРУМЕНТАЛЬНАЯ ОБОЛОЧКА ДЛЯ АВТОМАТИЗАЦИИ СОЗДАНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ САПР С ДИФФЕРЕНЦИРОВАННЫМ ПОДХОДОМ К КВАЛИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ.
ГОСТ Описание программы. Описание программы должно содержать следующие разделы: общие сведения; функциональное назначение; описание логической.
Семантический анализ КC-грамматики, с помощью которых описывают синтаксис языков программирования, не позволяют задавать контекстные условия (КУ), имеющиеся.
Множества Множества Основные понятия Курс. Определение : Множество это набор элементов одинакового типа, которые рассматриваются как единое целое.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Транксрипт:

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated Manufacturing Systems

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 2 Ноам Хомский (Noam Chomsky) 4 типа грамматик по Хомскому: V+ множество всех цепочек над алфавитом V без λ; V* множество всех цепочек над алфавитом V, включая λ.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 3 При построении предложений КЗ-грамматик один и тот же нетерминальный символ может быть заменен на ту или иную цепочку символов в зависимости от того контекста, в котором он встречается. Цепочки α1 и α2 в правилах грамматики обозначают контекст (α1 левый контекст, а α2 правый контекст), в общем случае любая из них (или даже обе) может быть пустой. Говоря иными словами, значение одного и того же символа может быть различным в зависимости от того, в каком контексте он встречается. При построении компиляторов такие грамматики не применяются

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 4 Неукорачивающие грамматики имеют такую структуру правил, что при построении предложений языка, заданного грамматикой, любая цепочка символов может быть заменена на цепочку символов не меньшей длины. КС-грамматики широко используются при описании синтаксических конструкций языков программирования. Синтаксис большинства известных языков программирования основан именно на КС-грамматиках

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 5 Регулярные грамматики используются при описании простейших конструкций языков программирования: идентификаторов, констант, строк, комментариев и т. д. Для классификации грамматик всегда выбирают максимально возможный тип, к которому она может быть отнесена. Сложность грамматики обратно пропорциональна номеру типа, к которому относится грамматика. Грамматики, которые относятся только к типу 0, являются самыми сложными, а грамматики, которые можно отнести к типу 3 самыми простыми.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 6 Классификация языков Тип 0: языки с фразовой структурой Это самые сложные языки, которые могут быть заданы только грамматикой, относящейся к типу 0. Если язык относится к типу 0, то для него невозможно построить компилятор, который гарантированно выполнял бы разбор предложений языка за ограниченное время на основе ограниченных вычислительных ресурсов. К сожалению, все естественные языки относятся к фразовым. Структура и значение фразы естественного языка может зависеть не только от контекста данной фразы, но и от содержания того текста, где эта фраза встречается. Одно и то же слово в естественном языке может не только иметь разный смысл, в зависимости от контекста, но и играть различные роли в предложении. Именно поэтому столь велики сложности в автоматизации перевода текстов, написанных на естественных языках

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 7 Тип 1: контекстно-зависимые (КЗ) языки Тип 1 второй по сложности тип языков. В общем случае время на распознавание предложений языка, относящегося к типу 1, экспоненциально зависит от длины исходной цепочки символов. Языки и грамматики, относящиеся к типу 1, применяются в анализе и переводе текстов на естественных языках. Распознаватели, построенные на их основе, позволяют анализировать тексты с учетом контекстной зависимости в предложениях входного языка (но они не учитывают содержание текста, поэтому для точного перевода с естественного языка требуется вмешательство человека). На основе таких грамматик может выполняться автоматизированный перевод с одного естественного языка на другой, ими могут пользоваться сервисные функции проверки орфографии и правописания в языковых процессорах. В компиляторах КЗ-языки не используются

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 8 Тип 2: контекстно-свободные (КС) языки КС-языки лежат в основе синтаксических конструкций большинства современных языков программирования, Тип 3: регулярные языки Регулярные языки самый простой тип языков. Поэтому они являются самым широко используемым типом языков в области вычислительных систем. Время на распознавание предложений регулярного языка линейно зависит от длины входной цепочки символов. Регулярные языки лежат в основе простейших конструкций языков программирования (идентификаторов, констант и т. п.), кроме того, на их основе строятся языки ассемблеров, а также командные процессоры, символьные управляющие команды и другие подобные структуры.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 9 Чем все это безобразие распознавать Для языков с фразовой структурой (тип 0) необходим распознаватель, имеющий неограниченную внешнюю память. Поэтому для языков данного типа нельзя гарантировать, что за ограниченное время на ограниченных вычислительных ресурсах распознаватель завершит работу и примет решение о том, принадлежит или не принадлежит входная цепочка заданному языку. Практического применения языки с фразовой структурой не имеют. Для контекстно-зависимых языков (тип 1) распознавателями являются двусторонние недетерминированные автоматы с ограниченной памятью. Количество шагов, необходимых автомату для распознавания входной цепочки, экспоненциально зависит от длины этой цепочки.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 10 Экспоненциальная зависимость времени разбора от длины цепочки существенно ограничивает применение распознавателей для контекстно-зависимых языков. Такие распознаватели применяются для автоматизированного перевода и анализа текстов на естественных языках, когда временные ограничения на разбор текста несущественны. Для контекстно-свободных языков (тип 2) распознавателями являются односторонние недетерминированные автоматы с магазинной (стековой) внешней памятью МП-автоматы. При простейшей реализации алгоритма работы такого автомата он имеет экспоненциальную сложность, однако путем некоторых усовершенствований алгоритма можно добиться полиномиальной (кубической) зависимости времени, необходимого на разбор входной цепочки, от длины этой цепочки. Следовательно, можно говорить о полиномиальной сложности распознавателя для КС-языков.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 11 Пример: грамматика целых десятичных чисел G1{0,1,2,3,4,5,6,7,8,9,-,+},{S, Т, F},P1,S): P1: S Т | +Т | -Т Т F | TF F 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 По структуре своих правил данная грамматика G1 относится к контекстно-свободным грамматикам (тип 2). Ее можно отнести и к типу 0, и к типу 1, но максимально возможным является именно тип 2, поскольку к типу 3 эту грамматику отнести никак нельзя: строка Т F | TF содержит правило Т TF, которое недопустимо для типа 3, и хотя все остальные правила этому типу соответствуют, одного несоответствия достаточно.

Троицкий Д.И. Лингвистическое и программное обеспечение САПР 12 Та же грамматика, но по-другому: G1' ({0,1,2,3,4,5,6,7,8,9,-,+},{S, Т},P1',S): P1': S Т | +Т | -Т Т 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0Т | 1T | 2Т | 3Т | 4Т | 5Т | 6Т | 7Т | 8Т | 9Т По структуре своих правил данная грамматика G1 является праволинейной и относится к типу 3. G1'' ({0,1,2,3,4,5,6,7,8,9,-,+},{S, Т},P1'',S): P1': Т + | - | λ S T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 Та же грамматика, но леволинейная: