Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Металингвистические формулы Бэкуса-Наура

Читайте также:
  1. Анализ лейкоцитарной формулы
  2. В зависимости от типа формулы она может состоять из одного или нескольких из указанных ниже элементов.
  3. Доказательство формулы (7).
  4. Критическое напряжение. Пределы применимости формулы Эйлера.
  5. Лекция к занятию №23. Формулы Ньютона-Котеса: методы прямоугольников, трапеций, метод парабол.
  6. Основные формулы
  7. Основные формулы прикрепления
  8. ПЕРЕМЕЩЕНИЕ И КОПИРОВАНИЕ ФОРМУЛЫ
  9. СОЗДАНИЕ ПРОСТОЙ ФОРМУЛЫ С ПОМОЩЬЮ КОНСТАНТ И ССЫЛОК НА ЯЧЕЙКИ
  10. Создание формулы массива для вычисления нескольких результатов
  11. СОЗДАНИЕ ФОРМУЛЫ МАССИВА ДЛЯ ВЫЧИСЛЕНИЯ ОДНОГО РЕЗУЛЬТАТА

 

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

Металингвистические формулы похожи на обычные математические, поэтому они и называются формулами. Для каждого понятия языка существует единственная метаформула (нормальная формула).

Металингвистическая формула состоит из левой и правой частей. В левой части указывается определяемое понятие. Затем следует метасимвол " ::= ", смысл которого эквивалентен словам «по определению есть». В правой части содержится определяющее метавыражение, которое задает множество допустимых конструкций языка, которые объединяются в это понятие. Оно состоит из метаконстант, метапеременных и метазнаков (метасимволов). Все используемые в метавыражении метапеременные должны быть определены ранее, чем данная метаформула.

Метапеременные заключаются в угловые скобки (< и >). При использовании элементов языка можно условно считать, что метапеременные по смыслу определяет программист.

Метаконстанты при определении языка программирования – это элементы алфавита и служебные слова (т.е. строго определенные понятия). В конструкциях языка метаконстанты необходимо писать так, как они записаны в определении.

 

Метазнаки:

| – логическая связка ИЛИ

[ ] – выделение необязательной части метаформулы

( ) – группировка сложных конструкций БНФ внутри простых

{ } – повторение части определения произвольное число раз (в том числе ни одного раза)

 

Примеры метаформул

 

1) Цифры и числа

 

<цифра> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<целое без знака> ::= <цифра> {<цифра>}

<целое> ::= <целое без знака> | + <целое без знака> | – <целое без знака>

<число с фиксированной точкой> ::= <целое> . <целое без знака>

<число с плавающей точкой> ::=

<целое> E <целое> | <число с фикс. точкой> E <целое>

 

2) Буквы и имена

 

<буква> ::= A | B | C | … X | Y | Z | a | b | c | … x | y | z

<идентификатор> ::= <буква> {<буква> | <цифра> | <_>}

 

3) Бинарные операции

 

<знак арифметической операции> ::= + | - | * | /



<знак операции сравнения> ::= = | < | > | <> | <= | >=

 

4) Непустой список, состоящий из произвольного числа элементов, разделенных запятой:

 

<список> ::= <элемент списка> {, <элемент списка>}

 

5) <условный оператор> ::= if <логическое выражение> then <оператор> [ else <оператор>]

 

6) <вызов процедуры> ::= <имя> [( <параметр> {, <параметр>} )]

 

 

Допускаются рекурсивные определения терминов и понятий, т.е. когда в правой части формулы участвует понятие, определяемое левой частью. Например, пусть необходимо ввести понятие <двоичное число>, под которым понимается любая непустая последовательность цифр 0 и 1. Тогда простое и компактное рекурсивное определение с помощью метаформулы выглядит так:

 

<двоичная цифра> ::= 0|1

<двоичное число> ::= <двоичная цифра>|<двоичное число><двоичная цифра>

 

По принятым правилам при первом обращении к рекурсивно определяемому понятию следует ограничиться нерекурсивной частью формулы, т.е. под двоичным числом понимается двоичная цифра – 0 или 1. Но при втором обращении к метаформуле, определяющей двоичное число, можно применить рекурсию, которая даст следующие варианты этого понятия : 0 1 00 01 10 11, т.е. всевозможные одно- и двухцифровые двоичные числа. Очевидно, что при следующих применениях рекурсии можно получить любое возможное двоичное число.

 

 

Также можно дать рекурсивное определение идентификатора:

 

<идентификатор> ::=

<буква> | <идентификатор> <буква> | <идентификатор> <цифра> | <идентификатор>_

 

<== предыдущая лекция | следующая лекция ==>
| Металингвистические формулы Бэкуса-Наура

Дата добавления: 2013-12-14; Просмотров: 652; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:



studopedia.su - Студопедия (2013 - 2017) год. Не является автором материалов, а предоставляет студентам возможность бесплатного обучения и использования! Последнее добавление ip: 54.80.137.187
Генерация страницы за: 0.012 сек.