Здравствуйте, Sinclair, Вы писали:
S>Ну, на самом деле это не все. Паскаль — неизмеримо круче плюсов потому, что
S>
S> := гораздо понятнее, чем =
S> ^. гораздо понятнее, чем ->
S> строковые константы ограничиваются одинарными, а не двойными кавычками (в ДВА раза меньше штрихов!)
S> в If можно писать на одну пару скобок меньше
S>
S>Хотя, конечно, главное — все-таки то, что преподавание языка, где присваивание выполняется при помощи "=" означает выставить себя посмешищем.
S>З.Ы. В самом популярном языке программирования для персоналок вообще оператор присваивания не отличается от оператора сравнения на равенство. Что не мешает миллионам людей осваивать его безо всяких Виртов.
Вы под словом Паскаль понимаете тот язык программирования который был сразу после Алгола. С тех пор много воды утекло. Вот некоторая часть дерева эволюции оберонов:
Алгол -> Паскаль* -> Модула -> Модула-2 -> Оберон -> Оберон-2 -> Component Pascal
|
+-----> Active Oberon
Звездочкой отмечен тот Паскаль о котором говорите Вы.
Ну а теперь развеем Ваше
невежество.
1)
S> ^. гораздо понятнее, чем ->
В оберонах обращение к полям записей через указатель на запись не требует указывания знака "^" можно просто писать p.x := 0; а не p^.x := 0;
2)
S> строковые константы ограничиваются одинарными, а не двойными кавычками (в ДВА раза меньше штрихов!)
Да будет Вам известно, в оберонах строковые константы ограничиваются именно двойными кавычками!
VAR str: ARRAY 80 OF CHAR;
BEGIN
str := "Привет!";
3)
S> в If можно писать на одну пару скобок меньше
Да будет Вам известно, что в оберонах используется конструкция
IF ...
THEN ...
END — с явным END в конце (без BEGIN). Такая конструкция, в отличие от конструкции
if then begin end или аналогичной ей
if(){ } лишена неоднозначности возникающей при нескольких вложенных друг в друга if-ов и else.
Все структурные операторы оберона лишены каких бы то ни было неоднозначностей:
IF . THEN ............................ END
IF . THEN ...ELSE ... ELSIF . THEN ... END
WHILE . DO ........................... END
LOOP ................................. END
REPEAT ............................. UNTIL
FOR . TO . DO ........................ END
FOR . TO . BY . DO ................... END
CASE . OF v1: ... | v2: ..... ELSE ... END
WITH v: T1 DO ... | v: T2.... ELSE ....END
4)
S> := гораздо понятнее, чем =
Оператор "=" обозначает математическую операцию сравнения, если x = y, то y = x.
Кстати, для выхода из процедуры в оберонах используется инструкция
RETURN.
Так что, вынужден констатировать, что Вы равно как и, в свое время, Керниган со своей статьей о нелюбви к Паскалю,
сели в лужу — проявили свое невежество и некомпетентность в том вопросе о котором ведете речь.
Подробнее о Кернигане там:
http://www.rsdn.ru/Forum/Message.aspx?mid=859711&only=1Автор: Сергей Губанов
Дата: 20.10.04