2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 формы Бекуса и КС-грамматики
Сообщение22.10.2014, 20:54 


18/01/12
46
Добрый вечер, форумчане, у меня задание "Сделать описание при помощи норм. форм Бекуса и КС-грамматики всех циклов на Си"

Пару часов в гугле и вот что получилось для "for":
< оператор for >::= for (<переменная>; <булевое выражение>; <арифметическая операция над переменной> ) {}
<булевое выражение> ::= < булевое выражение> <булевое выражение >| <выражение> <логический оператор> <выражение>
<логический оператор> ::= <|> |==| >=| <=
< выражение > ::= <переменная> | <строка> | <символ>
<арифметическая операция над переменной> ::= <переменная> ++|<переменная> --|<переменная> < арифметическая операция> <переменная>|<переменная> < арифметическая операция> < константа>|
<арифметическая операция>::= +|-|*|/

Прошу у форумчан указать на ошибки и подсказать как сделать описание при помощи КС-грамматики? Пример бы очень помог

 Профиль  
                  
 
 Re: формы Бекуса и КС-грамматики
Сообщение22.10.2014, 21:09 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Для цикла for три части в скобках могут быть произвольными выражениями, а не обязательно только теми, которые Вы написали. Кроме того, каждое из трех выражений может быть опущено. Например, могут быть циклы типа for(out = dst, in = src; *out++ = *in++; ); Про тело цикла У Вас вообще ничего не написано.

-- Ср окт 22, 2014 22:12:01 --

Вообще задание, конечно, трудоемкое. Возьмите стандарт C и выдерите оттуда релевантные куски грамматики.

 Профиль  
                  
 
 Re: формы Бекуса и КС-грамматики
Сообщение22.10.2014, 21:43 


18/01/12
46
Первую часть замечания я поняла. Что указывать как тело? Оно ведь может быть абсолютно любым.
Тут ещё такой вопрос возник: если брать не циклы Си, а любого другого языка, можно ли так облегчить себе задачу? Хотелось бы сделать сегодня и ночью поспать=)

Вопрос о КС-грамматике остается открытым

 Профиль  
                  
 
 Re: формы Бекуса и КС-грамматики
Сообщение22.10.2014, 22:04 
Аватара пользователя


29/05/11
227
Красноармейск, Донецкая обл.
AlinkoMalinko в сообщении #922092 писал(а):
Что указывать как тело? Оно ведь может быть абсолютно любым.
Грубо говоря, что телом цикла может быть всё, что может быть телом функции. Что именно? Предложения, циклы, ветвление, декларации и т.п.
AlinkoMalinko в сообщении #922092 писал(а):
Тут ещё такой вопрос возник: если брать не циклы Си, а любого другого языка, можно ли так облегчить себе задачу? Хотелось бы сделать сегодня и ночью поспать=)
В Паскале циклы по-проще:
while <condition> do <statement>
for <variable> := <number> to <number> do <statement>
for <variable> := <number> downto <number> do <statement>
repeat <statements> until <condition>

где <condition> означает булево выражение, <variable> - идентификатор переменной, <statement> - действие, <statements> - список действий, разделённых точкой с запятой.

 Профиль  
                  
 
 Re: формы Бекуса и КС-грамматики
Сообщение22.10.2014, 22:34 


18/01/12
46
спасибо большое, вы очень помогли. Не могли бы вы ещё написать что-то при помощи КС-грамматики (для примера от которого я буду отталкиваться)? Если я правильно понимаю, до этого мы обсуждали формы Бекуса.

 Профиль  
                  
 
 Posted automatically
Сообщение22.10.2014, 22:57 
Админ форума
Аватара пользователя


19/03/10
8952
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Computer Science»

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group