Пётр Кушнир писал(а):
Камрад, это не я придумал. Это Вирт, и прочие умные люди. Моя личная уверенность не подкреплена ничем, кроме опоры на их исследования, их теории и прочие продукты их научного труда. Свои "обоснуи" оставьте при себе.
Ага, а другие, ничуть не менее умные люди, придумали другие взгляды на эти же вещи. Ну и кто из них всех более прав? Почему Вы считаете, что именно Вирт и Дейкстра с Хоаром? Что, других мыслителей в информатике никогда не было? Или Вы просто не хотите знакомиться с их трудами?
Пётр Кушнир писал(а):
Строгость языка - факт, невозможность "фокусов" - факт. Остаётся найти индуса для бесчеловечного эксперимента. И насчёт "обоснуев", ну вы поняли...
Я понял, что Вы не собираетесь отвечать за свои слова. Ну что ж, дело Ваше... :о)
Строгость же Оберона как языка нарушают сами создатели трансляторов Оберона, позволяя реализовывать тело процедуры как кусок шестнадцатиричного кода. Вам такой код кажется вполне безопасным?
Код:
PROCEDURE [code] FSQRT 0D9H, 0FAH; (* st[0] >= 0 *)
PROCEDURE [code] FSIN 0D9H, 0FEH; (* |st[0]| < 2^63 *)
PROCEDURE [code] FCOS 0D9H, 0FFH; (* |st[0]| < 2^63 *)
PROCEDURE [code] FTAN 0D9H, 0F2H; (* |st[0]| < 2^63 *)
PROCEDURE [code] FATAN 0D9H, 0F3H; (* atan2(st[1], st[0]) *)
PROCEDURE [code] FYL2X 0D9H, 0F1H; (* st[1] * log2(st[0]), st[0] > 0 *)
PROCEDURE [code] FYL2XP1 0D9H, 0F9H; (* st[1] * log2(1 + st[0]), |st[0]| < 1-sqrt(2)/2 *)
PROCEDURE [code] F2XM1 0D9H, 0F0H; (* 2^st[0] - 1, |st[0]| <= 1 *)
Позволю себе не согласиться...
Пётр Кушнир писал(а):
А вы, смышлёный... строка = массив символов.
Правда что ли? Ну это смотря где. В Хаскелле, например, строка -- это список символов...
Почему в Обероне тип строки не выделен? Почему он имитируется массивом символов, который имеет определённый размер, но при этом сама строка может завершаться нулевым байтом, так что длина строки и размер массива под строку -- не одно и то же?
Пётр Кушнир писал(а):
Geniepro писал(а):
Функциональное и декларативное программирование, отказ от операции присваивания и мутабельности состояния... Вы просто по определению не сможете изменить значение входного параметра функции...
Это из мейнстрима? Занимательно.
Кстати да, а Вы, похоже, и не в курсе, что самый что ни на есть мэйнстримнейший язык SQL -- декларативный язык? Полный по Тьюрингу, кстати, за счёт рекурсивных функций...
Ну а когда Майкрософт выпустит следующую версию своей студии, то мэйнстримом станет и тот же F#, представитель функционального семейства ML. Хоть он и гибридный, и ООП в нём не хуже, чем в C#, но благодаря ему ФП проникнет в мэйнстрим сильнее, чем оберон-технологии...