Есть много таких переводчиков, начиная с 1980-х годов, я думаю, CHICKEN является хорошим текущим.
Если вы хотите использовать это:
- get CHICKEN;
- собрать и установить его с соответствующим
make
заклинанием (для меня это было безболезненно на OSX, поэтому на Linux это должно быть очень безболезненно, хотя, возможно, это будет сложнее Windows); - sta sh ваш код в файле, который я назову
f.scm
. - , если вы хотите увидеть код C, скомпилируйте с
chicken f.scm
которая выдаст несколько сотен строк непонятного C; - , если вам нужен только исполняемый файл, используйте
csc
для его создания.
Существует обширное руководство , который вам нужно будет прочитать, если вы хотите сделать что-нибудь нетривиальное, например, связать библиотеки C или поговорить с кодом схемы из C.
Не зная, что вы ищете, это пахнет, как будто это может быть XY проблема . В частности:
- если вам нужна система Scheme, которая позволит вам общаться с кодом, написанным на C, то вам, вероятно, нужна система с FFI, а не та, которая компилируется в C;
- если вам нужна система Scheme, которая будет создавать собственные исполняемые файлы, то вам, вероятно, нужна система Scheme, которая будет создавать собственные исполняемые файлы, а не ту, которая компилируется в C.
Есть много примеров каждого из них. Некоторые из этих систем могут также компилироваться или через C, но одна не зависит от другой.
Наконец, если вы хотите понять, как компиляторы Scheme предназначены для C работает (или как компиляторы Scheme нацелены на любой язык, включая ассемблер), тогда традиционный подход, вероятно, все еще работает лучше: найдите хорошо написанный, для которого доступен исходный код, и прочитайте и повозитесь с его исходным кодом.