License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SNAPL.2015.113
URN: urn:nbn:de:0030-drops-50211
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2015/5021/
Go to the corresponding LIPIcs Volume Portal


Felleisen, Matthias ; Findler, Robert Bruce ; Flatt, Matthew ; Krishnamurthi, Shriram ; Barzilay, Eli ; McCarthy, Jay ; Tobin-Hochstadt, Sam

The Racket Manifesto

pdf-format:
11.pdf (10 MB)


Abstract

The creation of a programming language calls for guiding principles that point the developers to goals. This article spells out the three basic principles behind the 20-year development of Racket. First, programming is about stating and solving problems, and this activity normally takes place in a context with its own language of discourse; good programmers ought to formulate this language as a programming language. Hence, Racket is a programming language for creating new programming languages. Second, by following this language-oriented approach to programming, systems become multi-lingual collections of interconnected components. Each language and component must be able to protect its specific invariants. In support, Racket offers protection mechanisms to implement a full language spectrum, from C-level bit manipulation to soundly typed extensions. Third, because Racket considers programming as problem solving in the correct language, Racket also turns extra-linguistic mechanisms into linguistic constructs, especially mechanisms for managing resources and projects. The paper explains these principles and how Racket lives up to them, presents the evaluation framework behind the design process, and concludes with a sketch of Racket's imperfections and opportunities for future improvements.

BibTeX - Entry

@InProceedings{felleisen_et_al:LIPIcs:2015:5021,
  author =	{Matthias Felleisen and Robert Bruce Findler and Matthew Flatt and Shriram Krishnamurthi and Eli Barzilay and Jay McCarthy and Sam Tobin-Hochstadt},
  title =	{{The Racket Manifesto}},
  booktitle =	{1st Summit on Advances in Programming Languages (SNAPL 2015)},
  pages =	{113--128},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-80-4},
  ISSN =	{1868-8969},
  year =	{2015},
  volume =	{32},
  editor =	{Thomas Ball and Rastislav Bodik and Shriram Krishnamurthi and Benjamin S. Lerner and Greg Morrisett},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2015/5021},
  URN =		{urn:nbn:de:0030-drops-50211},
  doi =		{10.4230/LIPIcs.SNAPL.2015.113},
  annote =	{Keywords: design guidelines, language generation, full-spectrum language}
}

Keywords: design guidelines, language generation, full-spectrum language
Collection: 1st Summit on Advances in Programming Languages (SNAPL 2015)
Issue Date: 2015
Date of publication: 30.04.2015


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI