Ciao a tutti, voglio iniziare a usare Scheme e ho due domande. In primo luogo, consiglieresti di usare un interprete o un compilatore per Scheme e perché? Secondo, quale interprete o compilatore di Scheme consiglieresti e perché? Grazie!Qual è il miglior interprete o compilatore Scheme?
risposta
Per un principiante, mi raccomando altamente DrRacket (in precedenza Dr. Scheme), poiché offre un ambiente davvero piacevole in cui lavorare, supporta molti dialetti di Scheme e fornisce ottime informazioni su errori e debug. Credo che la maggior parte delle implementazioni di Scheme siano interpreti, sebbene sia possibile che ci sia un compilatore là fuori.
Se sei un drogato di linea come me, un'alternativa che potresti considerare è di eseguire direttamente l'interprete racket, che è essenzialmente la stessa cosa di Dr. Racket, ma senza l'ambiente grafico e un'interfaccia a riga di comando. In alternativa, avvia il file sorgente con #! /usr/bin/env racket
e rendilo eseguibile con chmod +x source.rkt
.
Dr. Scheme è uno degli interpreti più completi che ho usato. Molto utile per i principianti che rimangono bloccati sulla riga di comando e non possono tradurre i messaggi di errore criptici in cui il codice è sbagliato. – ecounysis
In realtà ci sono più compilatori Scheme di grande nome che interpreti: ikarus, chez (versione non libera), gambit, chicken, bigloo. Infatti mzscheme/DrScheme è JITted nelle versioni correnti. Vedi http://en.wikipedia.org/wiki/Category:Scheme_compilers –
Anch'io sono un drogato da linea di comando, ho usato un po 'il Dr. Scheme, ma darò una prova anche a mzscheme. Ho anche usato un po 'il gambit-c, qualche idea al riguardo? – adhanlon
Mi raccomando di non preoccuparmi se è implementato come un compilatore, un interprete o una combinazione di questi - specialmente per cominciare, la qualità dei file di aiuto (per un esempio) sarà molto più importante di come è implementata .
Per quanto riguarda quale, PLT Scheme è quello che uso (di gran lunga) il più spesso.
Grazie per il suggerimento. Sto usando PLT Scheme e mi piace molto. – adhanlon
So che hai già accettato la risposta, ma per i futuri visitatori di questa domanda, mi raccomando Chicken Scheme. Tende a produrre molto eseguibili più piccoli di mzscheme. Prendiamo il seguente ciao applicazione mondo, per esempio:
(define (say-hello name)
(print (string-append "Hello, " name))
(newline))
(say-hello "Earthling")
compilato con MZC --exec hello.scm mztest: 3.3M
Compilato con CSC hello.scm -o CTest: 16k
E se cerchi il supporto della biblioteca, Chicken fornisce Eggs Unlimited, che è come PlaneT per mzscheme (o gemme per ruby).
PTL Schema è stato rinominato in Racket (http://racket-lang.org/), ma è ancora più o meno lo stesso. Dr. Racket è un ambiente di sviluppo molto elegante con una shell, e per scrivere in Scheme tutto ciò di cui hai bisogno è #lang scheme
nella parte superiore del tuo file.
mi consiglia Gambit-C schema:
- E 'R5RS-conforme.
- Ha sia un interprete che un compilatore. È inoltre possibile compilare in ANSI C.
- È open source.
- È portatile. (Funziona su Linux, Windows, Mac OS X e anche iOS.)
- Dispone di semplici interfacce di funzione esterna (FFI).
Un esame superficiale rivela che Chicken sembra insoddisfacente, mentre Bigloo può essere un serio concorrente. Ma non posso commentare troppo su di loro.
Cosa hai trovato insoddisfacente su Chicken Scheme? –
Non posso rispondere per l'OP, ma nel ristretto numero di benchmark (come sempre, completamente privi di significato) che ho provato quando ho scelto quale utilizzare di recente, Gambit possedeva assolutamente Chicken per le prestazioni. Sembrava che Gambit fosse meglio del doppio della media. Chicken's GC era anche un * lotto * più lento, come dieci volte o qualcosa del genere. – Leushenko
- 1. Qual è il miglior compilatore C++ standard (e spero gratuito)?
- 2. Creazione di un compilatore o di un interprete utilizzando Python
- 3. Googles GOLANG è un interprete o un compilatore?
- 4. Differenza esatta tra compilatore e interprete?
- 5. Qual è il miglior editor per AutoHotkey?
- 6. Qual è il miglior modulo Drupal Survey
- 7. Qual è il miglior blog di XNA?
- 8. Qual è il miglior motore 3D Actionscript3?
- 9. Qual è il miglior editor XLIFF gratuito?
- 10. Qual è il miglior objugatore di javascript?
- 11. Qual è il miglior editor python?
- 12. ifelse annidato() è il peggiore; Qual è il miglior?
- 13. MIT/Scheme come semplice compilatore in Windows
- 14. Qual è il miglior IDE per la programmazione DigitalMars D?
- 15. Qual è la definizione esatta di un interprete Metacircolare?
- 16. Costruire il proprio interprete che può funzionare come compilatore
- 17. qual è il miglior linguaggio di programmazione per l'elaborazione video?
- 18. Qual è il miglior metodo di derivazione in Python?
- 19. Qual è il miglior linguaggio di raschiatura dello schermo?
- 20. Qual è il miglior backend CouchDB per Django?
- 21. Qual è il miglior tipo di dati MYSQL o Maria DB per memorizzare il token JWT?
- 22. Qual è il miglior schema SQL per questo progetto?
- 23. Qual è il miglior ORM con questi requisiti
- 24. Qual è l'idioma di Racket/Scheme appropriato per questo codice?
- 25. Qual è il miglior gestore di newsletter PHP aperto?
- 26. Qual è il miglior font piccolo per Eclipse?
- 27. Qual è il miglior analizzatore di registri Postfix?
- 28. Qual è il miglior tutorial per l'apprendimento di Mongoid?
- 29. Qual è il miglior sostituto per FlowDocument in Silverlight?
- 30. Qual è il miglior visual designer di Apache Camel?
La mia domanda era un po 'diversa da quelle, ma grazie! – adhanlon
BTW, come una domanda "qual è la migliore" senza chiarificare i dettagli, questa sembra terribilmente soggettiva.Se ci fosse un accordo su una singola implementazione del miglior schema (per tutti gli scopi e casi d'uso), ne avremmo solo uno! –
Definitivamente una domanda costruttiva, le persone con più rappresentanti di me dovrebbero riaprire questo –