What is the best Scheme interpreter or compiler? [closed]

人走茶凉 提交于 2019-12-04 07:33:46

问题


Hey everyone, I want to start using Scheme and I have two questions. First, would you recommend using an interpreter or a compiler for Scheme and why? Second, which interpreter or compiler for Scheme would you recommend and why? Thanks!


回答1:


For a beginner, I would highly recommend DrRacket (formerly Dr. Scheme), since it gives you a really nice environment to work in, supports many dialects of Scheme, and gives very good failure and debugging information. I believe most implementations of Scheme are interpreters, although it is possible that there is a compiler out there.

If you are a commandline junkie like me, an alternative you might consider is to run the racket interpreter directly, which is essentially the same thing as Dr. Racket, but without the graphical environment and a commandline interface. Or, start your source file with #! /usr/bin/env racket and make it executable with chmod +x source.rkt.




回答2:


I know you already accepted the answer, but for future visitors to this question, I recommend Chicken Scheme. It tends to produce much smaller executables than mzscheme does. Take the following hello world application, for instance:

(define (say-hello name)
  (print (string-append "Hello, " name))
  (newline))

(say-hello "Earthling")

Compiled with mzc --exec mztest hello.scm: 3.3M

Compiled with csc hello.scm -o ctest: 16k

And if you're after library support, Chicken provides Eggs Unlimited, which is like PlaneT for mzscheme (or gems for ruby).




回答3:


I'd recommend Gambit-C scheme:

  • It's R5RS-conformant.
  • It has both an interpreter and a compiler. You can also compile to ANSI C.
  • It's open source.
  • It's portable. (It runs on Linux, Windows, Mac OS X and even iOS.)
  • It has simple foreign function interfaces (FFI).

A cursory examination reveals that Chicken seems unsatisfactory, while Bigloo may be a serious contender. But I cannot comment too much about them.




回答4:


I'd recommend not being concerned about whether it's implemented as a compiler, interpreter, or combination thereof -- especially to start with, the quality of help files (for one example) will matter far more than exactly how it's implemented.

As far as which one, PLT Scheme is what I use (by far) the most often.




回答5:


PTL Scheme has been renamed to Racket (http://racket-lang.org/), but it's still pretty much the same. Dr. Racket is a very nifty development environment with a shell, and to write in Scheme all you need is #lang scheme at the top of your file.



来源:https://stackoverflow.com/questions/2521477/what-is-the-best-scheme-interpreter-or-compiler

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!