Oct 16, 2009 14:40
На прошлых выходных один мой друг попросил меня помочь какому-то его херзнаеткому.
Этим не делиться невозможно!
Задание:
Построить БНФ для цикла, 2. Построить БНФ для выражения
(a + b)(a - b)((a + b) / (a + a)) (a - b)(b - a)((b - b) / (a + a)...
и до бесконечности, т.е. Цепочка произвольной длины
Надо вывести свои метасинтаксические переменные
Цепочка, в которой могут присутствовать конструкции
Сам цикл описывается как:
for i=1,n do
begin
оператор 1;
оператор 2;
оператор 3;
......
оператор n;
end;
Мой ответ:
Цикл:
Допустим у нас уже определены такие лексемы: variable и operator, где variable это переменная, а operator - оператор, тогда
operator ::= operator | for_operator
for_operator ::= 'for' variable '=' value ',' value 'do' nl 'begin' nl operators_seq 'end'
value ::= number | variable
number ::= digit | number digit
digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
operators_seq ::= operator ';' | operators_seq operator ';'
Выражение:
seq ::= expr | seq expr
expr ::= '(' pair ')'
expr ::= '(' expr op expr ')'
pair ::= var op var
var ::= 'a' | 'b'
op ::= '+' | '-' | '/'
Опять вопрос ко мне:
Что такое "for_operator"?
- Что такое "value"?
- Что такое "nl"?
- Что такое "operators_seq"?
- Почему для строчек
value ::= number | variable
number ::= digit | number digit
digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
Используется цифры, если мне нужно было описать цикл выражения (a +
b)(a - b)((a + b) (a + a)) (a - b)(b - a)((b - b) (a + a)... и до
бесконечности ??
- seq ::= expr | seq expr, что тут такое seq и expr?
- Что такое ' pair '? Это пара какая-то? Если да, то пара чего?Ч
- Что значит ' expr op expr '? И что значит "ор"
По-другому я ответить не мог :(
Читай внимательно задание которое ты сам прислал:
Цитирую:
Построить БНФ для цикла, 2. Построить БНФ для выражения
(a + b)(a - b)((a + b) / (a + a)) (a - b)(b - a)((b - b) / (a + a)...
и до бесконечности, т.е. Цепочка произвольной длины
Надо вывести свои метасинтаксические переменные
Цепочка, в которой могут присутствовать конструкции
Сам цикл описывается как:
for i=1,n do
begin
оператор 1;
оператор 2;
оператор 3;
......
оператор n;
end;
Цикл - это блять та хуйня, которая внизу, которая начинается со слова for. А выражение это совсем другая поебень, там есть скобочки, плюсы, минусы и остальная математическая скучная ссанина. Так-то.
Значит или задание написано пяткой или использованы термины из паралельной науки, в которой я слаб.