Программирование

Таблицы имен при рекурсивном спуске с возвратами

В заметке "Пишем транслятор" я сетовал на ситуации, когда грамматику не впихнуть в LL(n). В частности, это оборачивается необходимостью поддерживать транзакционность (!) добавления имен в таблицы имен.

Например, есть правило типа

Пишем транслятор или немного о Фортране

Моя текущая занятость связана с разработкой транслятора некоторого скриптового языка. По ряду причин имеющаяся реализация не может быть использована в других средах. В связи с этим вспомнился Фортран... Но, давайте уж все по порядку.

Про интерфейсы или как не надо делать программы

В первую голову проблема касается продуктовых софтостроителей, хотя и в проектном тоже не все гладко.

Начнем с недавней истории. Технология COM (позднее, другие, но суть та же) дала возможность разработчикам компонентов отделить интерфейсы от реализаций. Для прикладных разработчиков это означало, например, что при обновлении компонентов старые интерфейсы продолжали бы работать. В теории, конечно. Но и на практике это выглядело гораздо лучше, чем "ад динамических библиотек", имеющих всегда версию "текущая".

Каков механизм? Он очень прост. Объявляет программист компонента интерфейс

Программирование на языке Симула-67

Книгу "Программирование на языке Симула-67" открыл почти случайно, но содержание и первые главы заинтересовали. А как может не заинтересовать изложение концепций объектно-ориентированного программирования из 1967 года?

Firebird 2.5: состояние

Давненько я не обращался к теме Interbase/Firebird. Последний раз прототип приложения с использованием Firebird 1 был сделан в 2002 году, с тех пор не складывалось. Изучая содеянное разработчиками за 11 лет, исполняюсь противоречивыми впечатлениями.

Хорошие новости от Delphi

Разработчики Delphi тряхнули стариной и выдали на рынок продукт. Delphi XE2 может много. Главное - из одних и тех же исходников компилировать "родной" (двоичный) код для платформ:

  • Windows 32 и 64
  • Mac OS
  • iOS (iPhone/iPad)
  • Android
  • службы для "облаков"

Подробности на сайте Embarcadero.

Вот это я понимаю, настоящая софтостроительная контора, где рулят программисты, а не менеджерки с бюджетным MBA-образованием техасского заборостроительного колледжа.

"Test drive" FreePascal / Lazarus

Тестировал FreePascal / Lazarus на предмет пригодности к профессиональной разработке. В качестве теста взял простенькое приложение из 3 компонентов (1 исполняемый модуль и 2 DLL-ки по принципу плагинов) с несложной обработкой XML внутри. Выводы.

Продукт имеет немало продвинутой функциональности, главная из которой - компиляция и кросс-компияция под множество платформ, включая мобильные устройства. Однако, среда пока не слишком пригодна для разработки чего-то иного, чем монолитное графическое оконное или консольное приложение, в т.ч. связанное с СУБД.

Например:

Моделирование и кодогенерация

Обнаружил замечательный инструмент для моделирования и кодогенерации StarUML. Что в нем хорошего для разработчика?

SPM (SQL Programming Macroprocessor). Создайте свой предметный язык - 2.

Назначение

Разработка серверного кода на процедурном расширении SQL имеет свои особенности. Во-первых, SQL - декларативный язык, и потому обычная для традиционного программирования функциональная декомпозиция зачастую является неэффективной. Во-вторых, SQL - специализированный язык манипуляции данными, и достичь наглядности и читаемости прикладного кода бывает нелегко.

Страницы

Subscribe to RSS - Программирование