ЯВД: сейчас и дальше

Сейчас

Продолжается подготовка к раскрутке компилятора:

  • доработка runtime: сделана обработка исключительных ситуаций (windows, linux), трассировка стека (linux)
  • доработка библиотек: Словарь (hash map), доработка строк
  • разработка подсистемы модульного тестирования
  • чистка языка и компилятора

Не все влито в мастер, разработка идет в ветках.

Дальше

После выступления на семинаре (презентация выложена в папку doc), появилась возможность думать о следующем шаге после раскрутки компилятора. Раскрутка — шаг очень важный, но технический (и тактический).

Что же касается существенного движения вперед, то я склоняюсь к мысли, что делать надо (более-менее параллельно) три языка:

  • язык описания схемы программы. Повторять напрямую то, что было в Вире не считаю правильным, хочу критически пересмотреть и разделить на то, что принципиально и то, что нет. Это язык вне L-категорий, так как в сборке по схеме могут быть использованы компоненты, написанные на языках разных уровней. Мета язык, М-язык.
  • язык разработки компонент — L3 или L2, хотя может быть и L4. Мысли бродят разные, определенности пока нет. Чтение The Argentum Book дало еще один повод задуматься. В любом случае, синтаксически язык будет близок к Тривилю, с точки зрения системы типов обязательно будет тип с утиной типизацией, предположительно, будет называться ‘протокол’.
  • язык описания пользовательского интерфейса (типа декларативный UI). В Вире, интерфейс строился на компонентах, и это было относительно просто и подходило для «офисных» приложений. Здесь же хочется сделать сразу так, чтобы потом можно было сделать хорошо. Этот язык тоже не вписывается в категории, но по другому. в него должны «просачиваться» императивные части из языков L1-L4. А само декларативное описание должно быть встроено в схему. Основная проблема: надо глубоко входить в тему и искать способ сделать «тривиальную» реализацию — make it simple, as possible… but portable.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *