Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 13:54   #1
annaegorova
Новичок
Джуниор
 
Регистрация: 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) Тип выражения и совместимость типов операндов в выражении определяются по обычным правилам языка Паскаль.
annaegorova вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как решить? Богдан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