Страницы

Пустили EXIT в Oberon

Многие из немногих, программирующих на диалектах языка Oberon, полагают, что циклы FOR, WHILE и REPEAT не содержат иного способа досрочно прервать их выполнение кроме как через выход из процедуры с помощью неструктурного RETURN, и только специальный цикл LOOP по EXIT позволяет неструктурно покинуть его, не покидая саму процедуру.

Как же легко людей обмануть. В Oberon, Oberon-2, Component Pascal, Active Oberon всегда можно было написать, например, так:

FOR i := 0 TO LEN(a) - 1 DO
  IF a[i] = b THEN
    EXIT
  END
END;

Про шлифовку винтиков

Специализация людей по занятиям позволяет им достичь в своей сфере больше, чем в менее приоритетных направлениях, что позволяет обществу с разделением труда достичь большего развития в сравнении с индивидуалистичным. Но здесь есть ловушка.

ChatGPT4 про переносимость машинных языков

ЕИ: Машинные языки являются переносимыми точно так же, как и высокоуровневые языки. Верно?

ИИ: Нет, это неверно. Машинные языки не являются переносимыми так же, как высокоуровневые языки. Давайте рассмотрим различия:

  1. Специфичность для архитектуры: Машинный язык тесно связан с конкретной аппаратной архитектурой. Это означает, что машинный код, написанный для одного типа процессора (например, x86), не будет работать на другом (например, ARM), так как у них различные наборы инструкций и способы обработки данных.
  2. Уровень абстракции: Высокоуровневые языки, такие как Java, Python, или Go, предоставляют большую степень абстракции от аппаратного обеспечения. Код на этих языках может выполняться на разных платформах без изменений, поскольку он транслируется или интерпретируется средой выполнения, специфичной для каждой системы.

Мысли о программировании

Короткие разрозненные утверждения

Настоящий язык программирования для людей — это такой язык, в котором все возможности понятны и воспроизводимы человеком. Это совсем не про то, чтобы предоставить людям простую возможность выполнять то, что они плохо понимают. Программирование для людей — это вообще не про компьютеры, это в первую очередь средство мышления и понимания. Именно такому должны учить на уроках информатики, потому что это не про подготовку программистов, а про развитие, полезное любому человеку.

Программы появились не потому, что появились компьютеры, а наоборот, компьютеры появились, потому что появились программы, которые изначально должны были выполняться людьми, но было понятно, что потенциально возможно спроектировать машину, которая могла их заменить. Впервые такая задача была поставлена Чарльзом Бэббиджем ещё до промышленного внедрения паровых машин. И он был близок к цели.