|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2012, 13:54 | #1 |
Новичок
Джуниор
Регистрация: 20.05.2012
Сообщений: 1
|
с++ как решить?
Здравствуйте!
Вот задание, по которому Ваша помощь была бы весьма кстати. P – цель грамматики. Грамматика: P ® program D; B D ® var T {, T} Т ® I {, I}: int | I {, I}: bool B ® begin S {; S} end S ® I := E | if E then S else S | while E do S | read (I) | write (E) | B E – выражение, в которое в общем случае входят арифметические (+, *, –, div, mod) и логические (or, and, not) операции и операции отношения ( >, <, >=, <= ,=, <> ), а также имена переменных (нетерминал I), логические (true, false) и целочисленные константы без знака (N). Грамматика для лексического анализа: I ® L | I L | I R N ® R | NR L ® a | b | ... | z | A | B | ... |Z R ® 0 | 1 | 2 | ... | 9 Синтаксические правила для выражения (нетерминал Е) следует описать самостоятельно, задав с помощью них следующее старшинство операций: Ø логическое отрицание not ; Ø мультипликативные операции *, div, mod, and Ø аддитивные операции +, –, or Ø операции отношения. Все мультипликативные и аддитивные операции левоассоциативны. Пример программы на модельном языке: Program var a, b : int; begin read(a); read(b); while a <> b do begin if a < b then b := b – a else a := a – b end; write(a) end Контекстные условия: 1) Любое имя, используемое в программе, должно быть описано и только один раз. 2) В операторе присваивания типы переменной и выражения должны совпадать. 3) В условном операторе и в операторе цикла в качестве условия возможно только логическое выражение. 4) Операнды операции отношения должны быть целочисленными. 5) Тип выражения и совместимость типов операндов в выражении определяются по обычным правилам языка Паскаль. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как решить? | Богдан1 | Visual C++ | 2 | 03.04.2012 02:01 |
Как решить? | Artem_85 | Microsoft Office Excel | 6 | 13.03.2012 12:45 |
Ко всем кто может хоть как-то подсказать как решить проблему | porfonya | Microsoft Office Access | 1 | 26.05.2009 17:38 |
Задача. Как решить ? | littlecoder | Общие вопросы Delphi | 12 | 16.12.2008 01:13 |