web-dev-qa-db-fra.com

Quel est le meilleur interpréteur ou compilateur Scheme?

Salut tout le monde, je veux commencer à utiliser Scheme et j'ai deux questions. Premièrement, recommanderiez-vous d'utiliser un interpréteur ou un compilateur pour Scheme et pourquoi? Deuxièmement, quel interprète ou compilateur pour Scheme recommanderiez-vous et pourquoi? Merci!

44
adhanlon

Pour un débutant, je recommanderais vivement DrRacket (anciennement Dr. Scheme), car il vous offre un environnement vraiment agréable pour travailler, prend en charge de nombreux dialectes de Scheme et donne de très bonnes informations sur les échecs et le débogage. Je crois que la plupart des implémentations de Scheme sont des interprètes, bien qu'il soit possible qu'il existe un compilateur.

Si vous êtes un drogué de la ligne de commande comme moi, une alternative que vous pourriez envisager est d'exécuter directement l'interpréteur racket , qui est essentiellement la même chose que Dr. Racket, mais sans l'environnement graphique et sans interface de ligne de commande. Ou, démarrez votre fichier source avec #! /usr/bin/env racket et le rendre exécutable avec chmod +x source.rkt.

26

Je sais que vous avez déjà accepté la réponse, mais pour les futurs visiteurs de cette question, je recommande Chicken Scheme . Il a tendance à produire beaucoup des exécutables plus petits que mzscheme. Prenez par exemple l'application Hello World suivante:

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

(say-hello "Earthling")

Compilé avec mzc --exec mztest hello.scm: 3.3M

Compilé avec csc hello.scm -o ctest: 16k

Et si vous recherchez le support de la bibliothèque, Chicken fournit Eggs Unlimited , qui est comme PlaneT pour mzscheme (ou des gemmes pour Ruby).

28
Shaun

Je recommanderais Gambit-C schéma:

  • Il est conforme au R5RS.
  • Il a à la fois un interprète et un compilateur. Vous pouvez également compiler vers ANSI C.
  • C'est open source.
  • C'est portable. (Il fonctionne sous Linux, Windows, Mac OS X et même iOS.)
  • Il possède des interfaces de fonction étrangère simples (FFI).

Un examen rapide révèle que Chicken semble insatisfaisant, tandis que Bigloo peut être un concurrent sérieux. Mais je ne peux pas trop en parler.

10
Ji Han

Je recommande de ne pas se soucier de savoir s'il est implémenté en tant que compilateur, interprète ou combinaison de ceux-ci - en particulier pour commencer, la qualité des fichiers d'aide (par exemple) importera beaucoup plus que la manière exacte dont il est implémenté.

En ce qui concerne lequel, PLT Scheme est ce que j'utilise (de loin) le plus souvent.

9
Jerry Coffin

PTL Scheme a été renommé Racket ( http://racket-lang.org/ ), mais c'est toujours à peu près la même chose. Dr. Racket est un environnement de développement très astucieux avec un Shell, et pour écrire dans Scheme, tout ce dont vous avez besoin est #lang scheme en haut de votre fichier.

3
ine