Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Нашел в учебнике "Языки и грамматики программирования"... :)   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.029 c
2-1146489024
Golik
2006-05-01 17:10
2006.05.21
отчет QuickRep !


15-1145618178
megabyte-ceercop
2006-04-21 15:16
2006.05.21
Сравнить с похожими играми.


11-1126879441
rOOse
2005-09-16 18:04
2006.05.21
Меню к панели задач


15-1146224093
fasr2
2006-04-28 15:34
2006.05.21
Случайно был удален файл C: ntldr (WinXp NTFS)


3-1143620069
Volodya_
2006-03-29 12:14
2006.05.21
ADO DBF