1-10 июня 2020

2 июня 2020.   Вчера у меня была небольшая, но очень важная “эврика”. Несколько последних дней предметом моего внимания была скрытая “реактивная функциональность” классического императивного процедурного языка Алгол-60 (Algol 60). Я имею ввиду совокупность двух его черт. Первая – наличие сложных условных выражений (аналогичные есть в Си, но их нет, например, в Паскале). Вторая – передача параметров по имени.

Меня поразила некоторая непоследовательность разработчиков, как бы остановившихся на полпути. Возможно, это произошло потому, что в последующем вообще произошел отказ от передачи по имени, одной из существенных и отличительных особенностей языка. Когда я говорю “непоследовательность”, речь идет о том, что в Алголе-60 так и не произошла формализация понятия выражения, того самого объекта, который передается по имени.

В своем небольшом проекте, речь о разработке нового расширения Jalgolic 1k4 (1k4 – запись 2020 в тридцатишестиричной системе счисления в стандартной нотации) языка Алгол-60, а также транспилеров для него на JS, PHP и C, я пытаюсь завершить те направления развития исходного языка, которые были в силу каких-либо причин не завершены, отложены, а также осмыслить в духе Алгола идеи, возникшие в более позднее время и в той или иной степени реализованные в других императивных процедурных языках программирования.

Конкретной работы уже довольно много, о ней я рассказываю в своем блоге, специально посвященном проекту Jalgolic 1k4, но вчера мне пришла в голову очень удачная мысль, кратко и точно реализующая концепцию выражения.

В любом блоке переменная, объявленная посредством декларации, например, integer i;, может быть задана как выражение с помощью инструкции let i=’a[j]+x*g(y)’;, здесь правая часть – произвольная символьная строка, задающая выражение. Правая часть также может быть переменной строкового типа, текущее на момент связывания с помощью инструкции let значение которой будет определять выражение. Все let-инструкции размещаются после раздела деклараций до операторного тела блока. На мой взгляд, способ таким образом задавать выражения, преобразовывать их и, в том числе, передавать как параметр по имени, очень ясен, краток и абсолютно логичен. Концепция “выражения” в языке получает законченный вид.

Хочу отметить, что некоторые выражения могут встречаться по обе стороны от знака равенства, другие же только по левую сторону (ситуация в точности такая же, как при передаче параметра по имени). Пример: присвоение x:=y; значения выражения y выражению x. которые были определены с помощью let-инструкций let x=’a[j]’; и let y=’3*f(t)+5′;. соответственно.

Напоследок интересный пример реализации рекуррентных формул с помощью let-инструкций в Jalgolic 1k4:

integer x,y; equivalence (x,y); let x=’f(y,n)’;

Каждое обращение к переменной x генерирует новый член последовательности по рекуррентной формуле.

3 июня 2020.   У меня хорошая память, и хотя я пользуюсь записями, перепросматриваю их и анализирую, подчас находя моменты, которые немного подзабыл, в целом общая картина в голове постоянно присутствует. Этой зимой обсуждаемыми темами были наезд Rambler’а на создателей Nginx и “тьмутараканский профессор” из ВШЭ. И относительно второй темы я высказал тогда намерение обсудить ее в больших подробностях чуть позже. Думаю, что сейчас во время карантина самый раз отчасти реализовать планы, отложив неразобранное на будущее.

Итак, что же за город такой Тмутаракань и почему его название, знакомое преимущественно профессиональным историкам и любителям истории, вдруг всплыло в отношении к событиям дня сегодняшнего? Если бы меня попросили дать кратко некое подобие определения Тмутаракани как явления своего времени, я бы дал следующую характеристику. Тмутаракань – наиболее яркая неудачная попытка создать русскую факторию. Другая, менее значимая попытка – Саркел (Белая Вежа). Население Тмутаракани, географически находившейся на территории современной Кубани, было достаточно разношерстным, а сам период русского правления не слишком продолжительным. То, что так хорошо получалось у греков, создавших довольно много успешных факторий на берегах Черного моря, не получилось у русских, и, как я уже сказал, после непродолжительного русского управления город с окрестными землями перешел под греческое. Дело историков разбираться, почему так произошло, но в национальном самосознании Тмутаракань останется навсегда неудачной попыткой русского управления изначально многонациональной факторией. И поводом поразмыслить, насколько успешными могут быть подобные эксперименты для русского мира, для русского народа. Тмутаракань воплощает собой отрицательный ответ на заданный вопрос: русские неизбежно потеряют руководство любым начинанием, которое изначально было многонациональным по своему составу. Успешные русские проекты предполагают наличие обязательной русской доминанты. Если таковой доминанты нет, то или ее необходимо создавать, создавать методично снизу доверху, или отказаться полностью от участия в проекте. Бесспорно, эти выводы, сделанные все привязки к конкретному времени, к конкретной эпохе, sub specie aeternitatis, приложимы и к сегодняшнему дню.

5 июня 2020.   Очень часто путают между собой тридцатишестиричную и тридцатишестидесятиричную систему счисления. Это две абсолютно разные вещи. Тридцатишестиричная система счисления имеет основание 36, является достаточно известной и распространенной. В стандартной нотации цифры нумеруются символами 0-9,a-z. Тридцатишестидесятиричная система счисления с основанием 360 является одной из больших эзотерических систем. У нее нет стандартной нотации. В большей части альтернативных друг по отношению к другу нотаций неявно присутствует ключ (от значения ключа зависит расшифровка записи числа), именно поэтому эта система счисления называется “эзотерической”.
7 июня 2020.   Без знания дифференциальных уравнений колебательный контур становится частью “символа веры” электронщика. Именно поэтому я полагаю, что “реальным пацанам” очень даже стоит классе в девятом уже знать математический анализ в объеме для инженеров и уметь решать дифференциальные уравнения. Со следующего года свой авторский курс математического анализа для 9-10 классов, который я 15 лет вел в родной 179-ой школе г.Москвы, я буду читать публично с использованием онлайн-технологий. Опыт классического советского образования в специализированных, прежде всего, радиотехнических техникумах, а также мой собственный опыт обучения не слишком математически одаренных детей показывает, что усвоение математического анализа в этом возрасте доступно любому серьезному “реальному пацану” вне зависимости от его предрасположенности к теоретической математике.
9 июня 2020.   Хорошо, все, наверное, уже смирились с тем, что некоторые поисковики по ключевому слову “глюкоза” выдают на первом месте отнюдь не моносахарид, но на днях я был в полном шоке, посмотрев поисковую выдачу по словосочетанию “передача параметров по имени”. С большим трудом в ворохе малоинформативных, а иногда просто вводящих в заблуждение текстов мне удалось найти лишь одну более или менее обстоятельную цитату из Н.Вирта без указания автора. А между тем, есть немалое количество сайтов, отдельных страничек, где эта тема освещается если и не во всех деталях, то достаточно подробно, а, главное, со ссылками на литературу. Просветители же “нового стиля” вообще, похоже, не знают, что такое книга.
Поделиться в Диаспоре*:

Добавить комментарий