Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
annaegorova
Сообщений: n/a
#1

пожалуйста как это сделать? - C++

20.05.2012, 13:50. Просмотров 299. Ответов 4
Метки нет (Все метки)

Здравствуйте!

Помогите пожалуйста.
P – цель грамматики.

Грамматика:

P ® program D; B

D ® var[/B] 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) Тип выражения и совместимость типов операндов в выражении определяются по обычным правилам языка Паскаль.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 13:50     пожалуйста как это сделать?
Посмотрите здесь:

как это сделать C++
Как это сделать? C++
C++ Как это сделать?
разъясните,пожалуйста, как это сделать? C++
C++ Как это сделать ? [c++]
Как это сделать? C++
C++ как это сделать
Как это сделать? C++
C++ Вычисление интергала, но входные данные сначала считываются из файла, а выходные наоборот в него записываются. Подскажите пожалуйста как это сделать
Как это сделать? C++
C++ Как сделать это?
C++ Подскажите пожалуйста как правильно это объяснить, прочитать

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nnkut
45 / 45 / 5
Регистрация: 06.04.2012
Сообщений: 185
20.05.2012, 14:17     пожалуйста как это сделать? #2
Это батенька называется синтаксический и семантический анализатор. И это не раз, два. Пробуйте заказать. Такое часто делают.
annaegorova
Сообщений: n/a
20.05.2012, 14:28     пожалуйста как это сделать? #3
))Мы просто с братом поспорили что труднее знать программирование или изучать гражданское право. Ну он подсунул мне эту задачку. Можете мне в двух словах описать почему это так трудно решить, что бы мне было что ему ответить)спасибо.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.05.2012, 14:34     пожалуйста как это сделать? #4
annaegorova, это вовсе нетрудно решить, это всего лишь долгая и кропотливая робота, которая за неделю до сессии не делается.

Не по теме:

Цитата Сообщение от nnkut Посмотреть сообщение
Это батенька называется синтаксический и семантический анализатор
это по сути, а по факту это называется прогулять весь курс "разработки трансляторов"

nnkut
45 / 45 / 5
Регистрация: 06.04.2012
Сообщений: 185
20.05.2012, 14:34     пожалуйста как это сделать? #5
Это не то что очень сложно, но довольно большой объем работы. Хорошо прораммировать наверное также тяжело как и хорошо изучать гражданское право.
Yandex
Объявления
20.05.2012, 14:34     пожалуйста как это сделать?
Ответ Создать тему
Опции темы

Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru