Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизНашел в учебнике "Языки и грамматики программирования"... :) Найти похожие ветки
← →
oldman © (2006-04-25 17:43) [0]Причем на полном серьезе пишут:
"if b then E else E"
бедные, бедные студенты...
← →
Calm © (2006-04-25 17:47) [1]очепятка ?
← →
Мефисто (2006-04-25 17:48) [2]А что они этим хотели сказать??? К чему там пример то хоть был?
← →
McSimm © (2006-04-25 17:48) [3]я наверное в танке, но можно пояснить, в чем тут причина несчастий для студентов ?
← →
Cashmare © (2006-04-25 17:49) [4]Либо там рядом смайл нарисован, либо одна из букв Е - это Ё :)
← →
oldman © (2006-04-25 17:49) [5]
> Calm © (25.04.06 17:47) [1]
Вряд ли, там рассматривается этот пример листах на двух...
← →
McSimm © (2006-04-25 17:49) [6]если условие то выражение иначе выражение
не то же самое ?
← →
Джо © (2006-04-25 17:50) [7]>
>
> [3] McSimm © (25.04.06 17:48)
> я наверное в танке, но можно пояснить, в чем тут причина
> несчастий для студентов ?
Наверное, что данные код можно сократить в незамысловатую конструкцию:E
.
← →
oldman © (2006-04-25 17:51) [8]
> McSimm © (25.04.06 17:49) [6]
> если условие то выражение(1) иначе выражение(2)
>
> не то же самое ?
Просто, зачем там if, если
выражение1 = выражение2
← →
Мефисто (2006-04-25 17:51) [9]McSimm © (25.04.06 17:49) [6]
Сомневаюсь :)
Ибо >> выражение иначе выражение по ихней схеме равны. И смысл такое выполнять? Может я теперь в танке? ;)
← →
McSimm © (2006-04-25 17:56) [10]Ты эту задачу неправильно решил. Мы вчера проходили, что Икс равен пяти, а у тебя в ответе 7
← →
McSimm © (2006-04-25 17:57) [11]Если других несчастий у студентов нет, то я за них спокоен :)
← →
oldman © (2006-04-25 17:58) [12]Причем, пример дан, как пример "правильной" грамматики...
← →
McSimm © (2006-04-25 18:05) [13]
> Джо © (25.04.06 17:50) [7]
В общем случае нельзя, даже если представить, что обе ветки условного оператора тождественны, т.к. само условие тоже может выполняться.
Но смысла в подобных придирках я не вижу. Тем более вырвано из контекста (на двух листах :)
← →
McSimm © (2006-04-25 18:06) [14]
> как пример "правильной" грамматики...
вот я так и подумал. с точки зрения грамматики что не так ?
А если я, к примеру, пишу схему предложения естественного языка, мне тоже надо предлог1 прилагательное1 и т.п. нумеровать ? Или студенты все-таки не настолько бедные :) ?
← →
oldman © (2006-04-25 18:08) [15]
> McSimm © (25.04.06 18:06) [14]
Батенька, я не про грамматику языка (разговорного)...
Я про грамматику математическую (помнишь, небось!)...
← →
Piter © (2006-04-25 18:09) [16]Ну вообще желательно, чтобы неоднозначностей не было, ибо многие скажут, что приведенному примеру соответствует код:
if b then
beep
else
beep;
понятное дело, что такой код не есть оптимальный. Да прямо скажу - корявый код :)
← →
oldman © (2006-04-25 18:11) [17]
> Piter © (25.04.06 18:09) [16]
> понятное дело, что такой код не есть оптимальный.
оптимальный можешь привести?
:)))))))))))))))))))
О том и речь!
← →
McSimm © (2006-04-25 18:16) [18]
> ибо многие скажут
Ты бы так сказал ?
> О том и речь!
а мне кажется, что просто придраться очень хочется, а о чем речь надо в книжке смотреть, там два листа текста про эту конструкцию написано.
← →
MBo © (2006-04-25 18:18) [19]Да совершенно нормальное описание, подобное форме Бэкуса-Наура.
Подразумевается, что E - любое выражение
← →
Мефисто (2006-04-25 18:19) [20]McSimm © (25.04.06 18:06) [14]
>> вот я так и подумал. с точки зрения грамматики что не так ?
Все не так т.к. программирование, а не урок родного языка :)
Вот правельный пример по F1
if ... { expression1 } then
begin
if ... { expression2 } then
... { statement1 }
else
... { statement2 }
end;
неправельный т.к. не имеет смысла.
if ... { expression1 } then
begin
if ... { expression2 } then
... { statement1 }
else
... { statement1 }
end;
Но мы, я так полагаю сойдемся, просто на очепятке в книжке ;)
← →
oldman © (2006-04-25 18:20) [21]
> MBo © (25.04.06 18:18) [19]
> подобное форме Бэкуса-Наура.
Ни фига себе, ты еще помнишь эти фамилии...
← →
nt (2006-04-25 18:34) [22]> Подразумевается, что E - любое выражение
не оператор?
← →
KilkennyCat © (2006-04-25 18:41) [23]
> [17] oldman © (25.04.06 18:11)
>
> > Piter © (25.04.06 18:09) [16]
> > понятное дело, что такой код не есть оптимальный.
>
>
> оптимальный можешь привести?beep
← →
Piter © (2006-04-25 20:32) [24]oldman © (25.04.06 18:11) [17]
оптимальный можешь привести?
могу. Вместо:if b then
beep
else
beep;
просто:beep;
если "b" есть только проверка условия, а не вызов функций и т.д.
← →
лшдлуттн (2006-04-25 20:46) [25]
> если "b" есть только проверка условия, а не вызов функций
> и т.д.
вот имено. в этом варианте и е е оправдано.
← →
Piter © (2006-04-25 21:04) [26]лшдлуттн (25.04.06 20:46) [25]
в этом варианте и е е оправдано
не оправдано.
Тогда уж:b;
beep;
← →
лшдлуитнСфе (2006-04-25 21:17) [27]
> [26] Piter © (25.04.06 21:04)
спорим на бутылку виски, что данный метод есть метод защиты от пиратского копирования на основе вышеприведенного?
← →
atruhin © (2006-04-25 21:39) [28]Ну ведь McSimm и MBo вам давно дали "тонкий" намек!
Если это описание алгоритма, то это ошибка, если это описание грамматики (языка), то абсолютно корректная конструкция.
← →
Думкин © (2006-04-26 06:03) [29]
var a : boolean;
function b : boolean;
begin
if a then Halt(0) else Halt(2)
end;
procedure WyIDummy;
var z : boolean;
begin
a := ......
z := .....
if z then b else b
end;
← →
TUser © (2006-04-26 09:12) [30]Нормально, если Е - нетерминальный символ.
Зы, пример не является примером грамматики, правильной или нет.
← →
TUser © (2006-04-26 09:14) [31]
> Ну ведь McSimm и MBo вам давно дали "тонкий" намек!
Если учиться по намекам, даже и правильным, - такому можно научиться, что лучше сразу в гроб. Лучше пролистать этот учебник назад, страниц на 50.
← →
Чапаев © (2006-04-26 09:37) [32]
> Да совершенно нормальное описание, подобное форме Бэкуса-
> Наура.
> Подразумевается, что E - любое выражение
Если бы былоif <condition> then <expression> else <expression>
, тогда бы это была вполне приличная БНФ, к которой не придерёшься... А если угловых скобок нету, то сие можно рассматривать лишь как обрывок глупого кода...
← →
Думкин © (2006-04-26 09:39) [33]> Чапаев © (26.04.06 09:37) [32]
1. в Бэкусе -Науре главное - скобки?
2. Я привел пример в рамках любимого Дельфи - где сие вовсе не глупость.
3. жду возражений.
← →
Чапаев © (2006-04-26 09:50) [34]
> 1. в Бэкусе -Науре главное - скобки?
Для выделения нетерминальных символов -- таки да.
← →
Думкин © (2006-04-26 10:04) [35]> Чапаев © (26.04.06 09:50) [34]
А... вы о формлизации конкретного. - тоды ой... боня.
← →
Piter © (2006-04-26 17:44) [36]Думкин © (26.04.06 9:39) [33]
Я привел пример в рамках любимого Дельфи - где сие вовсе не глупость
бред ты какой-то привел:
Думкин © (26.04.06 6:03) [29]
var a : boolean;
function b : boolean;
begin
if a then Halt(0) else Halt(2)
end;
procedure WyIDummy;
var z : boolean;
begin
a := ......
z := .....
if z then b else b
end;
вырождается в:var a : boolean;
function b : boolean;
begin
if a then Halt(0) else Halt(2)
end;
procedure WyIDummy;
begin
a := ......
b;
end
← →
oldman © (2006-04-26 17:51) [37]разобрался я с этим примером...
это пример, как удлинить цепочку вывода.
например:
G({" ",i,f,t,h,e,n,l,s,b,A},{<E>},P,<E>)
P: E->(if b then E else E) или (A)
Можно построить цепочку: Е-А
А можно: Е-Е-Е-Е-Е-А
Действительно - пример из грамматик. Именно грамматик!
Меня просто смутил тупизм написания того самого "if"... :)))
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.013 c