Рассмотрены вопросы формального описания языка программирования на основе понятий и моделей теории множеств, теории автоматов, формальных грамматик и регулярных выражений.
В предыдущих лекциях предметная область «языки программирования» была представлена на концептуальном уровне с содержательным описанием таких понятий как: синтаксис и семантика языка, синтаксические конструкции, структура компилятора и проблемы трансляции языка высокого уровня. Теперь наступила очередь проблем моделирования свойств языка и программных технологий с использованием формальных моделей.
Формальная модель языка выступает как инструмент решения языковых проблем типа: (1) задана модель языка и требуется доказать, что некоторая цепочка принадлежит этому языку и (2) дана некоторая цепочка и требуется сформулировать свойства языка (правила), которые обеспечивали бы принадлежность цепочки к языку.
В свете того, что язык программирования является языком общения программиста и компьютера, требуется строгое и однозначное описание компонентов языка и процесса трансляции. Такое описание языка и вопросов его трансляции включает в себя совокупность основных понятий теории языков программирования: алфавит, язык, множество языков, цепочка, степень алфавита, операция над цепочками, принадлежность цепочки языку, автомат, регулярное выражение, формальная грамматика и т.д.
Будем исходить из определения языка: «любая система обозначений, пригодная для описания алгоритмов и структур данных можно назвать языком программирования, при условии, что он (язык) реализован и используется при программировании на компьютерах» [Пратт].
Далее будут рассмотрены вопросы определения языка программирования с позиций теоретико-множественных моделей и с помощью инструментария регулярных выражений, конечных автоматов и формальных грамматик.
Похожие статьи:
|