Oberon славится своей простотой и концептуальной сбалансированностью. Но его простота сложна. Сложна для тех, кто привык сложность перекладывать со своих плеч на чужие (с прагматики языка на его семантику). Язык C++ представляет собой пример иного по...
Этапы большого пути. Часть 3
Если кратко обозначить ключевые вехи пути Никлауса Вирта, они выглядят так: 1. 1970. Pascal — структурное программирование (structured programming).2. 1979. Modula-2 — модульное программирование (modular programming).3. 1988. Oberon — расширяемое про...
Инженерия зодчества: от железа к софту. Часть 2
Какое отношение этот исторический экскурс имеет к Никлаусу Вирту? Самое непосредственное. Эдсгер Дейкстра и Никлаус Вирт были технарями и отлично знали то, поверх чего и на чём конкретно работают создаваемые программы. Напомню, что Дейкстра в 1956 г....
Третья структурная эволюция. Введение в архитектурное программирование
За годы развития программной индустрии мы были свидетелями двух структурных эволюций. Первая, структурное программирования принята всеми, вторая, модульное программирование находится в процессе принятия даже самыми неповоротливыми сообществами, напри...
Смирение европейской науки и диктатура американского бизнеса. Часть 1
Публикуем первую статью Руслана Богатырева из цикла "Никлаус Вирт. Заветы смиренного зодчего". Зодчество… Возвышенное искусство античности. Гармония пространства, порядка и света. Оно зримо преображает мир. Материю вечности камня. Но берёт своё...
Процедурно-параметрическая парадигма программирования. Возможна ли альтернатива объектно-ориентированному стилю?
Эта публикация была первой, в которой был предложен новый стиль разработки программ, названный процедурно-параметрическим программированием (ППП). В основе парадигмы лежит параметрический полиморфизм, позволяющий процедурам принимать и об...
Эволюция компиляции ядра Linux: от GNU C Compiler к Clang/LLVM
Данная статья представляет собой попытку краткого, но всестороннего анализа эволюции инструментария для компиляции ядра Linux, фокусируясь на переходе от доминирования GNU C Compiler (GCC) к более широкому использованию Clang и инфраст...
Трансформация процедурно–параметрических конструкций языка программирования C в промежуточное представление компилятора Clang
Разработка программ зачастую связана с инкрементальным расширением функциональности. Повышение надежности и качества в этом случае могут быть достигнуты минимизацией изменений в уже написанном коде. Для инструментальной поддержки эволюционной разрабо...
Разработка языка Тривиль. Часть 4. Реализация
Статья является заключительной в серии статей, описывающих разработку языка программирования Тривиль и его реализацию. В предыдущих статьях речь шла о разработке собственно языка. Эта статья посвящена реализации языка. В ней рассматривается архитекту...
Держаться корней. К 80-летию Никлауса Вирта
Юбилей Никлауса Вирта – очень значимая для меня дата. Вот уже три десятка лет считаю себя его учеником, начиная с 1982 г., когда впервые взял в руки сделанную на ксероксе копию его препринта о языке Модула-2. Примерно в то же время началась работа на...
Как нам выстроить информационную защиту России
Западъ намъ не указъ и не тюрьма. Его культура не есть идеалъ совершенства. Строеніе его духовнаго акта (или, вѣрнѣе, — его духовныхъ актовъ), можетъ быть, и соотвѣтствуетъ его способностямъ и его потребностямъ, но нашимъ силамъ, нашимъ заданіямъ, на...
Разработка языка Тривиль. Часть 3. Баланс
Статья является третьей из серии статей, в которых описывается разработка языка программирования Тривиль. В предыдущих статьях были определены цели языка, требования к языку и описаны основные языковые решения. Эта статья рассматривает сложные языков...
Редкая профессия
Комментарий 2008 года: сокращенный вариант статьи был опубликован в виде отдельной статьи в декабрьском номере журнала PC Magazine/Russian Edition за 1997 год. Статья до недавнего времени находилась в online-архиве журнала, однако была удалена (очеви...
Компонентный ассемблер. Часть 2. Дух языка
Общеизвестно, что 2018 год стал переломным годом для русской философии. В этом году были сформулированы окончательные (ultimate) ответы на «вечные» русские вопросы «Кто виноват?» и «Что делать?» (ответы приписываются С. Лаврову и капитану «Беззаветно...
Технология разработки мультиплатформенных программ на основе явных схем программ
В настоящее время все меньше смысла в разработке программ, работающих на одной платформе. Собственно, если задуматься, то практически любая современная программа взаимодействует с облачными серверами, сервисами обновлений, продаж и т.д., и является, ...
Разработка языка Тривиль. Часть 2
Статья является второй из серии статей, в которых описывается разработка языка программирования Тривиль. В первом статье описывался первый этап разработки языка: определение целей, требований и критериев выбора. Эта статья содержит обоснование основн...
Разработка языка Тривиль. Первые шаги к семейству языков. Часть 1
Это первая статья из серии статей, в которых описывается разработка языка программирования Тривиль: от рассуждения о необходимости разработки нового языка, определения целей и требований и до выбора и обоснования конкретных языковых решений. Статьи, ...
ВСЕ ПЛАТФОРМЕННАЯ РАЗРАБОТКА ИЛИ ЕСЛИ Б Я БЫЛ СУЛТАН
Если мы глянем вокруг, то распределенность в наше время - это норма, а не исключение. Любое приложение на смартфоне/планшете работает с внешними сервисами. Вот только мы (по причине, полагаю, некоторой слепоты) все еще думаем о монолитных программах,...
ОБ ИЗГОТОВЛЕНИИ ПРОГРАММ И ЕЖИКАХ В ТУМАНЕ
По сути, в этой статье я говорю о PLM (Product Lifecycle Management system) в области разработки программных систем. Если задуматься, то мы находимся в ситуации "сапожник без сапог", PLM системы используются для изготовления разных изделий, но не для...
ИНТЕРНЕТ – В ПОИСКЕ ЧИСТОГО ВОЗДУХА
Эта статья является мини исследованием, задачей которого было пройти самим и показать путь движения к новому интернету. Мы можем ошибаться в деталях, но общее направление движение на наш взгляд достаточно очевидно. Рано или поздно мы(человечест...