Об уровнях кодирования программ

Об уровнях кодирования программ

sergey shishkin

В связи с вниманием к системе ДРАКОН

Идеальное решение или реализация системы для создания повторяющегося кода (макросов, процедур, функций). Сразу вспоминается борьба сторонников "структурного программирования" против "меток" и оператора "goto". А, вообще, на фоне роста "парадигм программирования" хотелось бы иметь более аргументированный критерий для характеризации парадигм. Пока кажется, что нет более "измеряемого" параметра, как "уровни Дональда Кнута", четыре из которых можно явно выделить - машинный код, ассемблер, макросы (идея инкапсуляции или информационной замкнутости Ершова-Берса) и модули (библиотеки макросов, плагины). Что такое языки пятого уровня - до сих пор для меня загадка. Типизация, домены или GUI, ссылки, а может и что-то другое, типа распределенных процессов или гомоиконичности. Надо думать!

Но с уже указанных позиций, ДРАКОН, кажется шагом назад. С одной стороны, в нем самом, частично, реализованы концепции "высокого уровня", а с другой, удобный инструмент, для продуцирования только макросов. На следующем уровне, при концептуальном проектировании или моделировании предметной области, мы безусловно придём к "шитому коду" - последовательности слов форта (процедур, функций и прочих конструкторов объектов, файлов или блоков). И насколько интерфейс ДРАКОНа удобнее для реализации задач следующего уровня, вопрос. Безусловно, для учебных целей, хорош. А как он в реальных процессах?

Следуя идеям Кнута, возможна "сквозная технология", в рамках которой, "операционная обстановка" нижнего уровня "упаковывается в контейнер" как ядро и расширяется до доменного кода предметной области. Смогут ли разработчики ДРАКОН решить подобную задачу? Здесь более перспективными кажутся идеи композиции Erlang с Tiddlywiki, оптимизация SmallTalk, развитие интерфейса в Forth или, например, ASON & AltScript. В противном случае, доминантой станет JavaScript в WebBrowser с поддержкой WebAssembly и NodeJS, а Google будет отвлекать специалистов от развития их собственных идей типа Inferno, а Apple, как пример, тормозить Factor. И всё это на фоне беспрецендентного взрыва энергии в никуда ... Здесь можно перечислить десятки интересных, корпоротивных, учебных и просто частных проектов, которые равиваются сами по себе, без удовлетворительной базовой теории для их оценки, как следствие понимания.


P.S. Кстати, о Кнуте с точки зрения его "литературного" или "грамотного программирования". Не является ли это тем же самым, что и "концептуальное программирование"?

Report Page