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

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, Си, Паскаль, языки программирования, Хаскель

Previous post Next post
Up