Nov 12, 2008 14:49
Точка с запятой может быть либо разделителем операторов, либо завершителем.
В Си она является завершителем - после каждого оператора должна стоять точка с запятой:
a = b+c ;
d = x-y;В Паскале, который изначальный Паскаль, она являлась разделителем операторов, поэтому последний оператор в блоке не имеет её:
begin
a = b+c;
d = x-y
endВ Хаскеле, в синтаксисе с явными скобочками, он также является разделителем операторов, поэтому пишут так:
do {
a <- plus b c
; d <- minus x y
}и даже так:
do
{ a <- plus b c
; d <- minus x y
}Завершитель операторов более перестановочен, что ли. Оператор с завершителем можно переставлять куда угодно, в начало блока, в конец блока, разницы никакой.
Сегодня я столкнулся с тем, что в VHDL точка с запятой, вроде, разделитель операторов, но иногда (наверное, когда операторов много - в самом коде, например) она завершитель.
И эти люди запрещают ставить в идентификаторе два подчёркивания подряд. ;)
PS
То же относится и к другим перечислениям в языке: инициализациям и тп. Почему запятая в выражении [1,2,3] списка разделитель, а не завершитель?
vhdl,
Си,
Паскаль,
языки программирования,
Хаскель