Занимаюсь системным программированием на Modula-2 — дисциплинированном языке из семейства Pascal, где всё держится на раздельно компилируемых модулях и строгой статической типизации. Делаю прошивки и служебные компоненты нижнего уровня для задач, в которых надёжность и предсказуемость ценятся выше модных решений: раздельные модули определения и реализации с аккуратными интерфейсами, продуманная работа с указателями и адресными типами, сопрограммы для кооперативного планирования, доступ к железу через замкнутые слои абстракции. Чаще всего это микроконтроллеры, промышленная автоматика и настольные инструменты с долгим сроком жизни, которые изначально не рассчитывали переписывать заново, поэтому любое изменение вношу так, чтобы продукт продолжал стабильно работать годами.
Отдельное направление — реанимация и сопровождение уже существующих проектов на Modula-2. Разбираюсь в коде под ISO Modula-2 и диалекты PIM, под компиляторы GNU Modula-2, XDS, а также классические Logitech и TopSpeed; описываю карту модулей, устраняю круговые зависимости импорта и поднимаю сборки, которые давно не собираются. Если переписывать целиком нет смысла, наращиваю типизированные интерфейсы, безопасные обёртки над библиотеками на C и тестовое окружение, чтобы проект снова можно было развивать. Когда же оправдана миграция, выстраиваю пошаговый план с сохранением поведения и параллельной работой старой и новой частей.
Моя школа — именно строгая модульная традиция, а не C и не современные управляемые языки, поэтому я особенно требователен к контрактам интерфейсов, контролю на этапе компиляции и аккуратной работе с памятью. Готов подключиться к команде, унаследовавшей продукт на Modula-2, взять на себя роль специалиста, который всё ещё в нём разбирается, либо усилить коллектив, работающий на Pascal и Oberon. Сообщите компилятор, целевую платформу и ограничения — и я дам честную оценку до того, как что-то менять.
— Системная и встраиваемая разработка на Modula-2
— Раздельные модули определения и реализации со строгими интерфейсами
— Поддержка и модернизация унаследованного кода на Modula-2
— Перенос между диалектами и компиляторами (ISO, PIM, GNU Modula-2, XDS)
— Обёртки над библиотеками на C и слои аппаратной абстракции
— Восстановление сборки, документация и тестовое окружение
Отдельное направление — реанимация и сопровождение уже существующих проектов на Modula-2. Разбираюсь в коде под ISO Modula-2 и диалекты PIM, под компиляторы GNU Modula-2, XDS, а также классические Logitech и TopSpeed; описываю карту модулей, устраняю круговые зависимости импорта и поднимаю сборки, которые давно не собираются. Если переписывать целиком нет смысла, наращиваю типизированные интерфейсы, безопасные обёртки над библиотеками на C и тестовое окружение, чтобы проект снова можно было развивать. Когда же оправдана миграция, выстраиваю пошаговый план с сохранением поведения и параллельной работой старой и новой частей.
Моя школа — именно строгая модульная традиция, а не C и не современные управляемые языки, поэтому я особенно требователен к контрактам интерфейсов, контролю на этапе компиляции и аккуратной работе с памятью. Готов подключиться к команде, унаследовавшей продукт на Modula-2, взять на себя роль специалиста, который всё ещё в нём разбирается, либо усилить коллектив, работающий на Pascal и Oberon. Сообщите компилятор, целевую платформу и ограничения — и я дам честную оценку до того, как что-то менять.
— Системная и встраиваемая разработка на Modula-2
— Раздельные модули определения и реализации со строгими интерфейсами
— Поддержка и модернизация унаследованного кода на Modula-2
— Перенос между диалектами и компиляторами (ISO, PIM, GNU Modula-2, XDS)
— Обёртки над библиотеками на C и слои аппаратной абстракции
— Восстановление сборки, документация и тестовое окружение