ЯЗЫКИ И ТРАНСЛЯЦИИ Часть I

advertisement
ТЕОРИЯ ФОРМАЛЬНЫХ
ЯЗЫКОВ И ТРАНСЛЯЦИЙ
Мартыненко
Борис Константинович
д.ф.-м.н.,
проф. кафедры информатики
Лекции
для студентов 3 курса
отделения информатики
Часть I: ЯЗЫКИ, ГРАММАТИКИ, АВТОМАТЫ
•
•
•
•
•
•
•
•
Введение
Глава 1. Языки и их представление
Глава 2. Грамматики (N.Chomsky, 1956)
Глава 3. Конечные автоматы и регулярные грамматики
Глава 4. Контекстно-свободные грамматики
Глава 5. Магазинные автоматы
Глава 6. Машины Тьюринга
Глава 7. Машины Тьюринга: проблема остановки,
языки типа 0
• Глава 8. Линейно ограниченные автоматы и
контекстно-зависимые языки
Часть II: Я З Ы К И И Т Р А Н С Л Я Ц И И
ТРАНСЛЯЦИИ И СИНТАКСИЧЕСКИЕ МЕТОДЫ ИХ РЕАЛИЗАЦИИ
Глава 1. Трансляции, их представление и реализация
Глава 2. LL(k)-Грамматики и трансляции
Глава 3. LR(k)-Грамматики и трансляции
Приложение: Неразрешимые и разрешимые проблемы,
касающиеся формальных языков
Указатель литературы
Введение
В современных информационных технологиях
синтаксические методы играют существенную роль.
На использовании синтаксических методов основаны:
• трансляторы языков программирования (компиляторы,
интерпретаторы, конверторы),
• синтаксические редакторы,
• машинный перевод,
• различные средства обработки текстовой информации и
т. п.
Теория формальных языков и трансляций
составляет теоретический фундамент этих
методов.
Введение
ВВЕДЕНИЕ
Курс является введением в формальную теорию языков.
Как во всякой теории мы будем иметь дело не с языками,
будь то естественные или искусственные, как, например,
языки программирования, а с моделями, более или менее
адекватно отражающими их свойства. Будут изучаться
четыре модели языков, построенных Н. Хомским в
середине 50-х годов прошлого века, на основе его понятия
формальной грамматики. Публикации его работ на эту
тему в свое время наделали много шуму среди лингвистов
и математиков, ищущих пути использования электронных
вычислительных машин для целей перевода с естественных языков. Его работы положили начало математической лингвистики, а понятие формальной грамматики
легло в основу математической теории формальных
языков.
Введение
Что мы подразумеваем под термином язык?
Энциклопедическое определение языка как
”важнейшего средства общения, обмена мыслями и взаимного
понимания в человеческом обществе” *)
не годится для построения математической теории языков, ибо оно
говорит о том, для чего язык служит, а не о том, чем он является сам по
себе.
Поэтому мы определим язык абстрактно — как математический
объект. Это даст нам возможность делать строгие утверждения о
языках, а вернее, о математических моделях, которые более или менее
адекватно отражают свойства реальных языков, естественных или
искусственных, как, например, языки программирования.
*)
Энциклопедический словарь. М.: Большая советская энциклопедия, 1955. С. 716.
Введение
В формальной теории язык определяется как
множество
конечных
цепочек
символов
из
фиксированного
алфавита,
которые
называются
предложениями. Эти множества могут быть как
конечными, так и бесконечными. Такое определение
языка абстрагируется от понятия смысла предложения.
Нас будет интересовать лишь строение предложений
языка, в частности, какие предложения входят в данный
язык, а какие не входят. По этому-то языки и называются
формальными.
Это естественно приводит нас к вопросу о том, как
представлять языки – объекты не всегда конечные. И
существует ли вообще возможность представить любой
язык конечным образом?
Ответы на эти вопросы дает гл. 1.
Введение
Грамматики, которые рассматриваются в гл. 2,
являются одним из способов конечного описания языков.
Следуя Н. Хомскому, мы определим понятие формальной
грамматики и способ ее интерпретации, связывающий ее с
языком, через понятие вывода.
В этой главе мы рассмотрим еще три типа грамматик,
отличающихся ограничениями на вид их правил. Это
грамматики типов 1 или контекстно зависимые, 2 или
контекстно свободные и 3 или регулярные.
Свойства классов языков, порождаемых грамматиками
соответствующих типов, вместе с соответствующими
типами распознавателей – абстрактных устройств
способных определять принадлежность цепочки символов
данному языку, обсуждаются в последующих главах
первой части курса.
Введение
Поскольку ограничения на вид правил грамматик
усиливаются нарастающим порядком от типа 0 (исходное
определение) к типу 3, то рассматривать мы будем,
начиная с простейшего класса – регулярных множеств и
конечных автоматов, затем КС-языков и магазинных
автоматов. Именно эти классы языков и распознавателей
имеют большое практическое применение.
Затем мы определим понятие машины Тьюринга –
распознавателя языков типа 0 или рекурсивно
перечислимых множеств, и закончим классом контекстно
зависимых языков и линейно-ограниченными автоматами
в качестве их распознавателей.
Введение
В части II: ЯЗЫКИ И ТРАНСЛЯЦИИ
в КС-языки вводится понятие семантики посредством
схем
синтаксически-управляемой
трансляции
и
рассматриваются два типа трансляторов: на основе kпредсказывающего алгоритма анализа - для LL(k)грамматик и анализатора Д. Кнута - для LR(k)-грамматик.
Эти подклассы КС-грамматик широко используются на
практике (CDL, YACC) и потому включены в
предлагаемый курс.
Хочется
закончить
введение
высказыванием,
услышанным мною когда-то давно от С. Я. Фитиалова:
“Наука превращает искусство в ремесло”.
С этим и приступим к изложению основного
содержания курса.
Литература
1.
Greibach S.A. A note on undecidable properties of formal languages // Math. Systems
Theory. 1968. Vol. 2, №1. P.1–6.

2. Hopcroft J.E., Ullman J.D. Formal languages and their relation to automata. —
Reading, MA: Addison-Wesley Pub. Co., Inc., 1969. 242 p.
3. Rozenberg G., Salomaa A. Handbook of Formal Languages. — Berlin, Heidelberg:
Springer-Verlag, 1997. Vol.1: 873 p., Vol. 2: 528 p., Vol. 3: 625 p.
4. Salomaa A. Formal languages. — N.Y.: Academic Press, 1973. 335 p.
5. Агафонов В.Н. Синтаксический анализ языков программирования: Учеб. пособие.
— Новосибирск: Изд-во НГУ, 1981. 91 с.

6. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.
1: Синтаксический анализ. 612 с.; Т.2: Компиляция. 487 с. — М.: Мир, 1978.
7. Братчиков И.Л. Синтаксис языков программирования. — М.: Наука, 1975. 232 с.
8. Гинзбург С. Математическая теория контекстно-свободных языков. — М.: Мир,
1970. 326 с.
9. Гладкий А.В. Формальные грамматики и языки. — М.: Наука, 1973. 368 с.
10. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. —
М.: Мир, 1975. 544 с.
Литература
11. Гросс М., Лантен А. Теория формальных грамматик. — М.: Мир, 1971. 294 с.
12. Кнут Д. Искусство программирования для ЭВМ. Т.1. — М.: Мир, 1976. 735 с.
13. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования
компиляторов. — М.: Мир, 1979. 654 с.
14. Рейуорд-Смит В. Дж. Теория формальных языков: Вводный курс. — М.: Радио и
связь, 1988. 129 с.
15. Саломаа А. Жемчужины теории формальных языков. — М.: Мир, 1986. 159 с.
16. Семантика языков программирования: Сб. статей под ред. А.Н.Маслова и
Э.Д.Стоцкого — М.: Мир, 1980. 394 с.
17. Фитиалов С.Я. Формальные грамматики. — Л..: Изд-во Ленингр. ун-та, 1984.
99 с.
18. Фостер Дж. Автоматический синтаксический анализ. — М.: Мир, 1975. 71 с.
19. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и
статистика, 1984. 232 с.
20. Языки и автоматы: Сб. статей под ред. В.М.Курочкина. — М.: Мир, 1975. 358 с.
Download