Лэнгвиж дизайн.

Nov 12, 2008 14:49

Точка с запятой может быть либо разделителем операторов, либо завершителем.

В Си она является завершителем - после каждого оператора должна стоять точка с запятой:
a = b+c ;
d = x-y;В Паскале, который изначальный Паскаль, она являлась разделителем операторов, поэтому последний оператор в блоке не имеет её:
begin
a = b+c;
d = x-y
endВ Хаскеле, ( Read more... )

vhdl, Си, Паскаль, языки программирования, Хаскель

Leave a comment

nealar November 12 2008, 12:44:12 UTC
Кто мешает втыкать лишние разделители? Пусть они тоже будут перестановочными.

Reply

thesz November 12 2008, 13:12:41 UTC
В Аду? Там не разрешены пустые операторы. В Паскеле то же самое.

Reply

в The Only True Language yet nealar November 12 2008, 14:00:19 UTC
Ады я не знаю, а Паскаль уже забыл. :)

Reply

Re: в The Only True Language yet thesz November 12 2008, 14:03:46 UTC
В Аде даже просто begin end; нельзя написать, надо писать begin null end;. ;)

Reply

Re: в The Only True Language yet mibori November 12 2008, 18:19:01 UTC
серьезно?
в дельфе помоему не.

Reply

Re: в The Only True Language yet mibori November 12 2008, 18:20:25 UTC
ох очитался
я думал ты про паскаль

Reply

alpha_cygnus November 12 2008, 15:31:08 UTC
В современных паскалях (читай Delphi, видимо) ; можно ставить и перед end, что решает в данном случае проблему перестановочности.
А в Lua, например, обе проблемы решены:
";" необязательны - это раз (там из синтаксиса следует, где оно надо, а где нет), а "," в конце списка допускаются (аналогично последней ";" в паскале).

Reply

thesz November 12 2008, 15:37:46 UTC
Это я себе на заметку, это раз, чтобы подумать об этом при дизайне какого-либо языка.

Ну, и попинать Аду, которая "ну очень строгая", и при этом допускает вот такие косяки. ;)

То, что это решено, я не удивлён. ;)

Reply


Leave a comment

Up