Схема 48 - Scheme 48
Парадигмы | Мульти: функциональный, процедурный, мета |
---|---|
Семья | Лисп |
Разработано | Ричард Келси, Джонатан Рис |
Разработчики | Ричард Келси, Джонатан Рис |
Впервые появился | Март 1987 г. |
Стабильный выпуск | 1.9.2 / 12 апреля 2014 г. |
Печатная дисциплина | Динамический, сильный, Скрытый |
Объем | Лексический |
Операционные системы | Кроссплатформенность |
Лицензия | BSD |
Интернет сайт | s48 |
Схема 48 это язык программирования, а диалект языка Схема, реализация с использованием переводчик который излучает байт-код.[1] Оно имеет интерфейс внешней функции для звонка функции с языка C[2] и поставляется с библиотека для обычные выражения (регулярное выражение),[3] и интерфейс для интерфейса переносимой операционной системы (POSIX ).[4] Поддерживается переносимой библиотекой Scheme. SLIB, и является основой оболочки Scheme Scsh.[1] Он использовался в академических исследованиях.[5] это бесплатное программное обеспечение с открытым исходным кодом выпущен под BSD лицензия.
Она называется «Схема 48», потому что первая версия была написана за 48 часов в августе 1986 года.[6] Авторы сейчас[когда? ] говорят, что его нужно понять через 48 часов.[нужна цитата ]
Реализация
На схеме 48 используется виртуальная машина интерпретировать байт-код, который написан на ограниченном диалекте Scheme под названием PreScheme, который может быть переведен на C и скомпилирован в собственный двоичный файл. PreScheme, или Pre-Scheme, представляет собой статически типизированный диалект Scheme с эффективностью и низкоуровневым машинным доступом C, сохраняя при этом многие из желаемых функций Scheme.
Предварительная схема была довольно интересной. Келси, как мне кажется, тоже опубликовала об этом статью. Это была Scheme в том смысле, что вы могли загрузить ее в систему Scheme и запустить код. Но это было ограничительно - это требовало, чтобы вы писали так, чтобы разрешить полный статический вывод типа Хиндли-Милнера, и все процедуры более высокого порядка были заменены бета-версией во время компиляции, что означало, что вы могли * прямо * преобразовать программу предварительной схемы в " естественный "код на языке C с эффективностью на уровне C. То есть вы можете рассматривать предварительную схему как действительно приятную альтернативу C для низкоуровневого кода. И вы могли отлаживать свои программы предварительной схемы в интерактивной среде разработки схемы по вашему выбору, прежде чем щелкнуть переключатель и перевести в код C, потому что предварительная схема была просто схемой с ограничениями. Интерпретатор 48-байтового кода Scheme был написан заранее. Прешем вроде как умер - помимо академической статьи, которую он написал, у Келси никогда не было времени задокументировать ее и превратить в отдельный инструмент, который могли бы использовать другие люди (группа Яна Хорсвилла в Северо-Западном является исключением из этого утверждения - они использовали предварительную схему
— Олин Шиверс, "Олин Шиверс: История Т"[7]
использованная литература
- ^ а б Келси, Ричард; Рис, Джонатан. «Схема 48». S48.org. Получено 2018-12-05.
- ^ Келси, Ричард; Рис, Джонатан; Спербер, Майк (10 января 2008 г.). "Справочное руководство по неполной схеме 48 для версии 1.8: Схема смешения 48 и C". S48.org. Получено 2018-12-05., Глава 8 в руководстве для версии 1.8.
- ^ Келси, Ричард; Рис, Джонатан; Спербер, Майк (10 января 2008 г.). «Справочное руководство по неполной схеме 48 для выпуска 1.8: регулярные выражения». S48.org. Получено 2018-12-05., Глава 5 в руководстве для версии 1.8.
- ^ Келси, Ричард; Рис, Джонатан; Спербер, Майк (10 января 2008 г.). "Неполная схема 48 Справочное руководство для версии 1.8: Доступ к POSIX". S48.org. Получено 2018-12-05., Глава 9 в руководстве для версии 1.8.
- ^ Последняя смена для вызова / cc: прямая реализация сдвига и сброса
- ^ Рис, Джонатан А. "Схема 48 Страница JAR". Джонатан А. Рис. Mumble.net. Получено 2018-12-05.
- ^ Дрожит, Олин. "Олин Дрожь: История Т". PaulGraham.com. Получено 2018-12-05.
внешние ссылки
Эта бесплатное программное обеспечение с открытым исходным кодом статья - это заглушка. Вы можете помочь Википедии расширяя это. |