Опис послуги
ПерекладЯ розробник на Standard ML і пишу такий код, який обов'язує бути коректним: компілятори, інтерпретатори, статичні аналізатори, предметні мови та інструменти, що підтримують формальні рассуждення. Працюю саме в сімействі ML — SML/NJ для інтерактивної розробки та швидкого прототипування, MLton для наскрізної оптимізації всієї програми та швидких рідних бінарників, Poly/ML там, де потрібен чуйний REPL поверх великої кодової бази. Це не Haskell, не OCaml і не F#, а Standard ML з його ясним формальним визначенням, алгебраїчними типами, вичерпним зіставленням з образцем і, головне, потужною системою модулів із структур, сигнатур та функторів, яка дозволяє збирати великі системи, чесні щодо своїх інтерфейсів.
Моя щоденна робота — перетворювати граматику або семантику в робочий, підтримуваний код. Я проектую абстрактний синтаксис, пишу лексери та парсери, будую перевірку типів та проходи елаборації, спускаю все до проміжних представлень та генерую або інтерпретую результат. Мені важливо робити некоректні стани непредставимими: я загоняю інваріанти в систему типів, щоб компілятор відсікав цілі класи помилок ще до першого тесту. Коли коректність потрібно доводити, а не просто перевіряти, я пов'язую SML-код із системами доказів та засобами специфікації, пишу тести на властивостях та еталонні інтерпретатори, щоб точно зафіксувати поведінку.
Мені комфортно увійти в дослідницьку групу, мовну команду або компанію, якій дісталася зріла SML-система і потрібна людина, вільно в ній орієнтуюча. Я читаю чужі функтори, розбираю заплутані сигнатури, додаю можливості, не ломаючи кордони абстракцій, і описую хід рассуджень, щоб наступна людина могла їх простежити. Скажіть, яка мова, інваріант або прохід вам потрібен, — і я дам чистий, типізований, добре структурований Standard ML, на який можна покластися.
— Компілятори та інтерпретатори на SML/NJ, MLton, Poly/ML
— Лексери, парсери, перевірка типів та проходи елаборації
— Проектування модулів: структури, сигнатури та функтори
— Предметні мови та вбудовані інтерпретатори
— Тестування на властивостях та перевірка еталонним інтерпретатором
— Формальні рассуждення, специфікації та інтеграція з прувером
— Рефакторинг та супровід успадкованого коду на Standard ML
Моя щоденна робота — перетворювати граматику або семантику в робочий, підтримуваний код. Я проектую абстрактний синтаксис, пишу лексери та парсери, будую перевірку типів та проходи елаборації, спускаю все до проміжних представлень та генерую або інтерпретую результат. Мені важливо робити некоректні стани непредставимими: я загоняю інваріанти в систему типів, щоб компілятор відсікав цілі класи помилок ще до першого тесту. Коли коректність потрібно доводити, а не просто перевіряти, я пов'язую SML-код із системами доказів та засобами специфікації, пишу тести на властивостях та еталонні інтерпретатори, щоб точно зафіксувати поведінку.
Мені комфортно увійти в дослідницьку групу, мовну команду або компанію, якій дісталася зріла SML-система і потрібна людина, вільно в ній орієнтуюча. Я читаю чужі функтори, розбираю заплутані сигнатури, додаю можливості, не ломаючи кордони абстракцій, і описую хід рассуджень, щоб наступна людина могла їх простежити. Скажіть, яка мова, інваріант або прохід вам потрібен, — і я дам чистий, типізований, добре структурований Standard ML, на який можна покластися.
— Компілятори та інтерпретатори на SML/NJ, MLton, Poly/ML
— Лексери, парсери, перевірка типів та проходи елаборації
— Проектування модулів: структури, сигнатури та функтори
— Предметні мови та вбудовані інтерпретатори
— Тестування на властивостях та перевірка еталонним інтерпретатором
— Формальні рассуждення, специфікації та інтеграція з прувером
— Рефакторинг та супровід успадкованого коду на Standard ML