Ну что же, первые впечатления конечно положительные, давненько мечтал о чём-то подобном, хотя лучше бы взяли в качестве языка Модулу-2 или Оберон.
Есть недостатки. Например, все типы беззнаковые. Вещественной арифметики нет.
Здесь не очень понятно почему беззнаковый целый тип назван integer. Сделали бы word. Ломают совместимость на корню, даже самую минимальную.TRSE supports several data types:
byte : values 0-255. Supported on all systems.
integer: values 0-65535. Supported on all systems.
long : 32-bit double word. Supported on all x86 and m68k systems. On the 6502, “long” is a 24-bit number.
pointer : Points to an address in memory. Uses zero pages on the 6502, “long” on the x86/m68k and is simply an integer on the (GB)Z80
lpointer: 24-bit pointers for the 65c816.
boolean: Syntactically identical to a byte.
string : An array of characters. Syntactically identical to an array of bytes.
Есть и другие странности.
А знаете как бы я сделал, раз уж так припекло:Циклы for в TRSE по умолчанию не включаются, что означает, что приведенное ниже выражение будет считать i от 0 до 9.
for i:=0 to 10 do
begin
PrintNumber(i); // will print 0-9
end;
Если вы предпочитаете включать for, используйте ключевое слово fori :
fori i:=0 to 10 do
begin
PrintNumber(i); // will output 0-10
end;
Код:for i := 0 to 10 [ by N ] do <— от 0 до 10 for i := 0 until 10 [ by N ] do <— от 0 до 9Вы можете изменить длину шага, используя ключевое слово step:А step зачем? Есть же короткое Виртовское by. Авторы совсем не в курсе про дальнейшую деятельность Вирта?Код:for i:=0 to 10 step 2 do begin PrintNumber(i); // will output 0,2,4,6,8 end;
Если кто-то будет связываться с разработчиками Rascal, было бы интересно насколько они открыты к такого рода вопросам.
Да, очень странный Паскаль. У авторов своё ни с чем не сравнимое видение.
"Такого даже в Обероне нет!"




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

