Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СПО-1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
184 Кб
Скачать
☆

В общем случае язык можно определить тремя способами:

1. перечислением всех допустимых цепочек языка;

2. указанием способа порождения цепочек языка (заданием грамматики языка);

3. определением метода распознавания цепочек языка.

Первый из методов является чисто формальным и на практике не применяется,

так как большинство языков содержат бесконечное число допустимых цепочек

и перечислить их просто невозможно.

Второй способ предусматривает некоторое описание правил, с помощью кото-

рых строятся цепочки языка. Тогда любая цепочка, построенная с помощью этих

правил из символов алфавита языка, будет принадлежать заданному языку.

Третий способ предусматривает построение некоторого логического устройства

(распознавателя) — автомата, который на входе получает цепочку символов, а на

выходе выдает ответ: принадлежит или нет эта цепочка заданному языку.

12. Формальные системы и языки программирования. Синтаксис и семантика языка. Особенности языков программирования.

Синтаксис языка — это набор правил, определяющий допустимые конструкции

языка. Синтаксис определяет «форму языка» — задает набор цепочек символов,

которые принадлежат языку. Чаще всего синтаксис языка можно задать в виде

строгого набора правил, но полностью это утверждение справедливо только для

чисто формальных языков. Даже для большинства языков программирования

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

яснениях, а синтаксиc языков естественного общения вполне соответствует об-

щепринятому мнению о том, что «исключения только подтверждают правило».

Например, любой окончивший среднюю школу может сказать, что строка «3 + 2»

является арифметическим выражением, а «3 2 +» — не является. Правда, не каж-

дый задумается при этом, что он оперирует синтаксисом алгебры.

Семантика языка — это раздел языка, определяющий значение предложений

языка. Семантика определяет «содержание языка» — задает смысл для всех до-

пустимых цепочек языка. Семантика для большинства языков определяется не-

формальными методами (отношения между знаками и тем, что они обозначают,

изучаются семиотикой). Чисто формальные языки лишены какого-либо смыс-

ла.

Возвращаясь к примеру, приведенному выше, и используя семантику алгеб-

ры, мы можем сказать, что строка «3 + 2» есть сумма чисел 3 и 2, а также то, что

«3 + 2 = 5» — это истинное выражение. Однако изложить любому ученику син-

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

ку как раз можно определить формально.

Особенности языков программирования:

Языки программирования занимают некоторое промежуточное положение между

формальными и естественными языками. С формальными языками их объеди-

няют строгие синтаксические правила, на основе которых строятся предложения

языка. От языков естественного общения в языки программирования перешли

лексические единицы, представляющие основные ключевые слова (чаще всего

это слова английского языка, но существуют языки программирования, чьи клю-

чевые слова заимствованы из русского и других языков). Кроме того, из алгебры

языки программирования переняли основные обозначения математических опе-

раций, что также делает их более понятными человеку.

Для задания языка программирования необходимо решить три вопроса:

Q определить множество допустимых символов языка; Q определить

множество правильных программ языка; Q задать смысл для каждой

правильной программы.

Только первые два вопроса полностью или частично удается решить с помощью

теории формальных языков. Для решения остальных вопросов приходится при-

бегать к другим, неформальным методам.