Железная схема
Разработчик(и) | Ллевеллин Притчард [1] |
---|---|
Стабильная версия | 1.0.180 / 19 сентября 2019 г |
Предварительный выпуск | 1.0.239 / 27 декабря 2019 г |
Репозиторий | |
Операционная система | Microsoft Windows , MacOS , Linux |
Платформа | .NET Framework , моно |
Тип | Язык программирования |
Лицензия | Мс-ПЛ [2] |
Веб-сайт | github |
IronScheme — это реализация языка программирования Scheme, ориентированная на Microsoft .NET Framework . IronScheme — это полная переработка IronLisp , включающая уроки, полученные при разработке IronLisp. [3]
IronScheme планировал опираться на Microsoft Dynamic Language Runtime , но решил отказаться от этой идеи, поскольку ветка DLR , которую использовал проект, не синхронизировалась с магистралью , а также потому, что DLR, по мнению разработчиков, не могла поддерживать большинство Требования Схемы. [4] В конечном итоге IronScheme стала ограниченно использовать собственную версию Microsoft DLR, но ей пришлось внести в нее исправления, чтобы иметь возможность реализовать некоторые необходимые функции Scheme, такие как устранение хвостовых вызовов . [5] [6]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Триумвират .NET: IronScheme, IronLisp и Xacc
- ^ IronScheme близок к финальному выпуску
- ^ «IronScheme будет стремиться стать реализацией схемы, соответствующей R6RS, на основе Microsoft DLR» . Проверено 21 марта 2009 г.
- ^ «Есть ли образец серебряного света?» . 11 мая 2009 г. Проверено 26 июля 2009 г.
К сожалению, моя ветка DLR сильно не синхронизирована с веткой Silverlight. Я как раз об этом подумал, возможно мне ДЛР лично не нужен, разберусь. Проблема в том, что DLR как есть недостаточно хорош для поддержки большинства требований схемы.
[ постоянная мертвая ссылка ] - ^ «Интеграция .NET с текущей средой выполнения?» . 05.01.2010 . Проверено 29 августа 2011 г.
Чтобы заставить IronScheme использовать текущую DLR, я бы лишился [ sic ] довольно многих языковых требований и важных функций, а именно хвостовых вызовов и генерации записей во время выполнения. Оба они не поддерживаются (и, вероятно, никогда не будут поддерживаться) DLR из-за требований совместимости с Silverlight. В настоящее время в IronScheme отсутствуют только возобновляемые продолжения, чтобы обеспечить 100% соответствие RnRS. Можно было бы заставить IronScheme использовать текущую DLR, но тогда это уже не будет Scheme, поскольку хвостовые вызовы чрезвычайно важны (и необходимы).
- ^ «Планируете обновить текущую версию DLR?» . 14 мая 2008 г. Проверено 29 августа 2011 г.
На данный момент я использую только около 15% DLR, и мне бы хотелось со временем от него избавиться. Путь, который они выбрали для динамического выполнения Python, слишком медленный и в нем отсутствуют функции, которые раньше присутствовали в DLR (новые «динамические» функции делают невозможным компиляцию в сборку). Есть и другие функции, которые мне пришлось встроить, например хвостовые вызовы и прямые вызовы методов, что также невозможно в последней версии DLR.