Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП / ЯП экзамен.doc
Скачиваний:
172
Добавлен:
11.05.2015
Размер:
322.05 Кб
Скачать
  1. Структура языка программирования. Синтаксис и семантика языка программирования. Расширенная форма Бэкуса-Наура.

Синтаксис – это набор правил, определяющих какие последовательности символов допустимы. Задается с помощью формальной нотации.

Синтаксическая категория представляет собой ту конструкцию ЯП, которая описывается. Описание задают формальные правила. Для описания правил используют следующие обозначения:

  1. прямой жирный текст – фактические символы

  2. курсив – синтаксические категории

  3. [A] – элемент А входит или не входит в описание синтаксиса

  4. {А} – 0 или более повторений элемента А

  5. (АВ) – группировка элементов

  6. | - или

Семантика языков программирования - это смысл синтаксических категорий ЯП, это интерпретация (смысловое значение) абстрактного синтаксиса (допустимых конструкций языка), выраженная в терминах той или иной математически строгой модели. Семантика связана с используемой концепцией программирования.

Расширенная форма Бекуса-Наура используется для описания контекста свободных и формлаьных грамматик и представляет собой некоторые правила продукции(?):

Левая часть – нетерминальный символ. Правая – терминальный или нетерминальный. Правая часть определяет метод конструкции членов синтаксических категорий в терминах других синтаксических категорий или\и терминальных символах.

Форма Бэкуса-Наура (БНФ) была впервые применена при описании Алгола-60. БНФ совпадает по сути с нотацией КС-грамматик, отличаясь лишь обозначениями. Предусмотрены следующие метасимволы:

  • — служат для выделения нетерминалов — понятий языка.

  • | — «или». Разделяет альтернативные правые части правил.

  • — «есть по определению». Заменяет стрелку, используемую при записи продукций КС-грамматик.

Терминальные символы записываются как есть, никаких специальных способов их выделения не предусмотрено. Вот пример определений на БНФ, взятый из спецификации Алгола-60 — «Модифицированного сообщения»:

  • <простое арифметическое выражение> ::=

  • <терм> 1 Окак операции типа сложения> <терм> |

  • <простое арифметическое выражение>

  • <знак операции типа сложения> <терм>

  • <знак операции типа сложения> ::= + | -

Как видим, для выражения повторений используется рекурсия, причем повсеместно — левая. БНФ использована Н. Виртом при описании языка Паскаль. Хотя в нотацию были добавлены метаскобки {и}, обозначающие повторение, применены они лишь в отдельных случаях, в то время как, например, грамматика выражений леворекурсивна.

  1. Наследование в ооп. Множественное наследование. Проблемы множественного наследования.

Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.

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

Соседние файлы в папке ЯП