Студопедия — Алфавит нетерминальных символов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Алфавит нетерминальных символов






1) PROG – программа;

2) DCONST – описание констант;

3) CONS – константа;

4) DVARB – описание переменных;

5) DFUNC – описание функций;

6) PARAM – параметры функции;

7) BODY – тело функции;

8) STML – последовательность операторов;

9) STAT – оператор;

10)EXPR – выражение;

11)TERM – слагаемое;

12)FACT – множимое;

13)FCTL – последовательность выражений.

Ниже приводятся 13 регулярных выражений, представляющих полный синтаксис языка SPL. Первое из них – для главного (стартового) нетерминального символа PROG.

1) PROG ® (DCONST | DFUNC | DVARB)* eof.

Здесь показано, что программа – это описание констант или описание функции, или описание переменных. Причем все эти описания заключены в круглые скобки, после которых стоит звездочка. Напомним, это означает, что эти описания могут повторяться нуль и больше раз. То есть может случиться, что ни одного из них нет. А за этими описаниями обязательно должна быть лексема eof – признак конца файла. Таким образом, в принципе программа может состоять только из признака конца файла.

2) DCONST ® constl CONS (‘, ’ CONS)* ‘; ’.

Описание констант должно начинаться со служебного слова const, которому соответствует лексема constl в регулярном выражении. За лексемой должен быть нетерминальный символ CONS. Затем через запятую могут быть еще нуль и больше констант. В конце описания констант должна быть ‘; ’.

3) CONS ® iden ‘=’ [‘+’ | ‘-‘] numb.

Константа являет собой идентификатор, за которым следует ‘=’, а за ним – число с необязательным знаком.

Для лучшего понимания 2-го и 3-го регулярных выражений вспомним, как описываются константы в программе на языке SPL.

Например, const k=4, m=-5, q=125;

4) DVARB → intl iden (‘, ’ iden) * ‘; ’.

Перед описанием переменных должно быть служебное слово int. Ему соответствует в регулярном выражении лексема intl. Далее должен следовать идентификатор. Через запятые могут быть еще идентификаторы. В конце описания ставится ‘; ’.

5) DFUNC → iden PARAN BODY.

Вначале следует имя функции, а за ним – описание параметров и тело функции.

6) PARAM → ‘(‘ [iden (‘, ’ iden) *] ‘)’.

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

7) BODY → beginl (DVARB | DCONST)*STML endl.

Тело функции начинается служебным словом begin, которому соответствует лексема beginl. Далее могут следовать нуль и еще (много раз) описание переменных или констант. Затем – последовательность операторов и служебное слово end (лексема endl).

7) STML → STAT (‘, ’ STAT)*.

Последовательность операторов может состоять из одного или их последовательности через ‘, ’.

8) STAT → iden ‘=’ EXPR |

readl iden |

printl EXPR |

retrl EXPR |

ifl EXPR thenl STML endl |

whilel EXPR dol STML endl.

 

Операторы в языке SPL следующие:

1 Оператор присвоения, когда переменной присваивается результат вычисления выражения.

2 Чтение переменной.

3 Вывод на печать результата вычисления.

4 Возврат из функции результата вычисления.

5 Оператор условной передачи управления. Проверяется результат вычисления выражения. Если он больше нуля, то вычисляется последовательность операторов, расположенная между ключевыми словами then и end.

6 Оператор цикла. Последовательность операторов, расположенная между служебными (ключевыми) словами do и end, выполняется в цикле до тех пор, пока результат вычисления выражения после while больше нуля.

10) EXPR → [‘, ’ | ‘-‘] TERM ((‘+’ | ‘-‘) TERM)*.

Выражение представляет собой слагаемое, перед которым необязательно может стоять знак. Через знаки „+” или „-” могут также быть и другие слагаемые.

11) TERM → FACT ((‘*’ | ‘/’ | ‘%’) FACT)*.

Слагаемое может состоять из одного множителя или через знаки „*” или „/”, или „%” следовать другие сомножители.

12) FACT → ‘(‘ EXPR ‘)’ | numb | iden [‘(‘[FCTL]’)’].

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

14)FCTL → EXPR (‘, ’ EXPR)*.

Это одно или несколько выражений через запятую.

 







Дата добавления: 2014-11-12; просмотров: 660. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия