Написание стандартной схемы накладывает строгие ограничения на то, что вы можете делать. Стандарт R5RS очень мал и не включает такие базовые вещи, как обработка ошибок или даже определение того, на каком компиляторе/интерпретаторе работает ваш код. Стандарт R6RS более обширен, но не получил широкого распространения. Поэтому написать программу Scheme, которая будет работать на любом интерпретаторе или компиляторе Scheme, установленном на машине пользователя, сложно.
Однако это не имеет большого значения, потому что Scheme широко не установлена. Скорее всего, у вашего конечного пользователя не будет установлен какой-либо интерпретатор Scheme, кроме, может быть, под видом libguile, но это библиотека C.
Вы можете обеспечить переносимость платформы, ориентируясь на конкретную реализацию Scheme, что, скорее всего, вам все равно придется делать, потому что вам придется полагаться на некоторые расширения реализации стандарта Scheme для выполнения любой работы. .
Компилятор Chicken Scheme создает небольшие исполняемые файлы и предназначен для работы как в Windows, так и в Unix. Однако я использовал его только в Linux.
В коммерческой Chez Scheme также есть компилятор, который создает исполняемые файлы как для Windows, так и для Linux, но я никогда не использовал версия Chez Scheme на любой платформе.
Racket может создавать исполняемые файлы для Windows, Linux и MacOS. Однако язык значительно отличается от Scheme. Например, списки неизменяемы в Racket. Racket имеет большую библиотеку, которая включает в себя такие вещи, как сетевые и графические интерфейсы, полностью переносимые между операционными системами. Компилятор создает большие исполняемые файлы.
SISC работает на JVM, что делает его переносимым на все, на чем работает Java. Однако это интерпретатор, а не компилятор.
Все вышеперечисленное имеет внешние функциональные интерфейсы с C (или с Java в случае SISC).
person
Throw Away Account
schedule
23.05.2015