Programming language · 1994
Racket
Functional and contractual programming language, with strong, dynamic and reflective typing, derived from Scheme.
Official site ›What is Racket written in?
What Racket is used for
Racket is a descendant of Scheme built for creating new programming languages, plus teaching and scripting. It ships with the DrRacket environment and powerful macro system.
Notable software: the "How to Design Programs" curriculum and many domain-specific languages built on Racket.
Quick Facts
- Developer
- Matthias Felleisen
- First released
- 1994
- Typing
- dynamic
- License
- GNU Lesser General Public License, Apache Software License 2.0, and MIT License
- Filename extension
- .rkt, .rktl, .rktd, .plt, .ss, .scm
- Website
- racket-lang.org
About Racket
Racket is a functional and contractual programming language, with strong, dynamic and reflective typing, derived from Scheme. It is a dynamically typed and garbage-collected language that compiles to bytecode that runs on a virtual machine. It supports functional and multi-paradigm programming. Compiling to bytecode for a virtual machine is the same model the JVM and .NET use: the VM, not the CPU, interprets or JIT-compiles the bytecode.
Racket first appeared in 1994. Development is led by Matthias Felleisen. Racket is now used mainly in specialized niches and by dedicated communities.
How Racket is implemented
In the Language Lineage dataset, Racket is self-hosting, so its own compiler is written in Racket itself and its runtime is implemented in Chez Scheme. Reaching self-hosting, where a language is mature enough to compile itself, is a milestone that proves the language can handle a large, real-world program.
Racket in the language family tree
Racket drew on ideas from Scheme and Common Lisp and went on to influence Julia.
Sources: Wikipedia · Wikidata · Official site
Frequently Asked Questions
Evidence Sources
- https://racket-lang.org/
- https://racket-lang.org/blog/2019/01/rebuilding-racket-on-chez-scheme-experience-report.html
- https://github.com/racket/racket
- https://en.wikipedia.org/wiki/Racket_(programming_language)
- https://en.wikipedia.org/wiki/Julia_(programming_language)
- Racket on Wikidata (Q1254148)