I need to choose a Scheme standard for an academic compiler implementation. It has to be simple enough, but should still be a powerful language. There are several (RRS–R7RS) standards of Scheme. Is there a public comparison of these reports for choosing? If no, which one would you recommend for a first compiler?
Is there a digest for different "RnRS" Scheme standards?
1.6k views Asked by Necto At
2
There are 2 answers
0
Sylwester
On
The easies to start with is a R5RS subset and it would be not too hard to make it a R7RS-small later. The R5RS is not very big so it's almost a digest on it's own.
You can compare them by their language changes part of the different reports. R7RS-small even have a list both against R5RS and R6RS.
Related Questions in COMPILER-CONSTRUCTION
- Reference: Crafting Interpreters. Print statement is not able to evaluate expression. Help me fix this (details below)
- Load function written in amd64 assembly into memory and call it
- I have implemented till Statements and State in Tree Walk Interpreter. I am pissed with an error
- Resolve shift/reduction conflict in grammar for expressions in PLY for calls to embedded functions
- Grammar for access to properties and calls to embedded functions
- LLVM code generation causes problems with pointer arithmetic
- what does react compiler mean actually?
- Errors on Recursive Descent Parsing Java
- Java CUP produces Shift-Reduce conflict when parsing a grammar for a C++ type language
- Three-Address-Code (TAC) and Conjunction/Disjunction
- How do I write an implicit cast for my strongly typed interpreter? (C++)
- Yacc parser not reducing specific production rules as intended
- Why is the function version tag consistently "Base" in HDF5 library?
- Sly parser, how are recursively defined types implemented?
- Does a non terminal token need an explicit definition?
Related Questions in LISP
- How to copy and paste an autocad table using python
- common lisp type vector of fixnums
- LISP to Batchplot (Publish) Multiple .dwg Models into One PDF
- Make changes to a LISP code for AutoCAD, it is possible?
- FeatureLines civil3d
- Detecting shared structure in tree made of cons cells
- How to load FRL into Clisp?
- Scheme Question - How can I check if there are a list of pairs
- do v. do*: Why does the same code produce a different result?
- undefined variable: COMMON-LISP:PROGN when running DO
- Making an SBCL program stop
- Getting arguments from the command line within SBCL
- "undefined variable: COMMON-LISP-USER::PRIMELIST" warning, using SBCL
- Counting vowels in Lisp
- Exercise 12.10 from the book Scheme and the art of programming
Related Questions in SCHEME
- Lambda function not returning any value
- Encode "ä", "ö", "ü" and "ß" in scheme (file-output-port)
- How to programmatically expand the let* family of functions in racket
- Is there a way to implement named let as macro to make it work with Petrofsky let
- Scheme Question - How can I check if there are a list of pairs
- call/cc with Break procedure
- How to return in Scheme?
- SiCP Exercise 1.45
- Exercise 12.10 from the book Scheme and the art of programming
- How to write a Scheme function that uses call/cc to calculate factorial?
- Why can't a Scheme macro with the name "if" be defined?
- How to implement "if" in normal order in Scheme?
- Collision with syntax-rules identfiers and global names
- How to use let-values in Gambit Scheme?
- Racket: Issue with Sorting Strings in Ascending Order
Related Questions in R5RS
- Need assistance with a scheme(R5RS) coding project (I feel like I'm missing something simple)
- How to return either a multiplied value in a list or boolean in Scheme (R5RS)?
- Is it possible to use 'append' or 'cons' to create a make-list function in Scheme that repeats values based on a given size parameter?
- Use of literals in hygienic macros in Scheme
- R5RS circular dependency (cycle in loading)
- Which identifier am I supposed to use to close my library in R7RS/Scheme?
- How to "load" a file only once in scheme r5rs?
- How can I recursively iterate and compare values of a single list in scheme?
- Defining a "purely functional" R5RS env
- Searching within sublists in Racket
- Getting a scheme macro keyword to match only if at least two arguments are given to it
- How would I Implement a repeat function that would make a stream full of a repeating int?
- How to convert String to Binary in Scheme
- What is the difference between of code written in DrRacket in "R5RS" vs "#lang racket"?
- call a foreign program to do work in your current program in scheme
Related Questions in R6RS
- Encode "ä", "ö", "ü" and "ß" in scheme (get german text from file)
- How to convert r6rs macro involving syntax-case to racket?
- How to export the same code as both an R6RS and R7RS library
- Why might the Scheme `filter` form not process list elements 'in order'?
- Is it possible to load an entire file from disk efficiently in Scheme R6RS?
- Left shift into fixnum sign bit
- Forcing left-to-right evaluation order in procedure call
- notation in r6rs grammar for complex numbers
- include vs. load in mit-scheme
- Scheme to C translator
- Chez Scheme: macro import at top level
- Hygienic macro r7rs : Return second expression value
- Rotating a matrix, why isn't it working as a function, yet it does in line command?
- R6RS: Does the syntax expression form applied to the empty list return a wrapped syntax object?
- Racket R6RS support: syntax-case
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
You can use the "Language changes" sections in the standard documents themselves to compare them. Here are links to these sections in public HTML versions: