J. Palmer, and E. Hillenbrand. Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, page 1007--1014. New York, NY, USA, ACM, (2009)
DOI: 10.1145/1639950.1640072
Abstract
In this paper we describe Ginger, a new language with first class support for literate programming. Literate programming is a philosophy that argues computer programs should be written as literature with human readability and understanding of paramount importance. While the intent of literate programming is to make understanding computer programs simpler, most literate programming systems are quite complex and consist of three different languages corresponding to 1) an implementation language, 2) a documentation language, and 3) a literate programming glue language. In Knuth's original implementation these were Pascal, TeX, and WEB respectively. Antithetical to the goals that literate programming espouses, this three language paradigm creates a truly challenging environment for new programmers. In this paper we reimagine literate programming as a core programming language feature and describe a novel system for literate programming based on G-expression transformations. We show that Ginger code can be used to naturally represent code, prose, and literate connections, which in turn unifies, simplifies and significantly extends the literate programming experience.
%0 Conference Paper
%1 Palmer:2009:RLP:1639950.1640072
%A Palmer, James Dean
%A Hillenbrand, Eddie
%B Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
%C New York, NY, USA
%D 2009
%I ACM
%K education literate programming
%P 1007--1014
%R 10.1145/1639950.1640072
%T Reimagining literate programming
%U http://doi.acm.org/10.1145/1639950.1640072
%X In this paper we describe Ginger, a new language with first class support for literate programming. Literate programming is a philosophy that argues computer programs should be written as literature with human readability and understanding of paramount importance. While the intent of literate programming is to make understanding computer programs simpler, most literate programming systems are quite complex and consist of three different languages corresponding to 1) an implementation language, 2) a documentation language, and 3) a literate programming glue language. In Knuth's original implementation these were Pascal, TeX, and WEB respectively. Antithetical to the goals that literate programming espouses, this three language paradigm creates a truly challenging environment for new programmers. In this paper we reimagine literate programming as a core programming language feature and describe a novel system for literate programming based on G-expression transformations. We show that Ginger code can be used to naturally represent code, prose, and literate connections, which in turn unifies, simplifies and significantly extends the literate programming experience.
%@ 978-1-60558-768-4
@inproceedings{Palmer:2009:RLP:1639950.1640072,
abstract = {In this paper we describe Ginger, a new language with first class support for literate programming. Literate programming is a philosophy that argues computer programs should be written as literature with human readability and understanding of paramount importance. While the intent of literate programming is to make understanding computer programs simpler, most literate programming systems are quite complex and consist of three different languages corresponding to 1) an implementation language, 2) a documentation language, and 3) a literate programming glue language. In Knuth's original implementation these were Pascal, TeX, and WEB respectively. Antithetical to the goals that literate programming espouses, this three language paradigm creates a truly challenging environment for new programmers. In this paper we reimagine literate programming as a core programming language feature and describe a novel system for literate programming based on G-expression transformations. We show that Ginger code can be used to naturally represent code, prose, and literate connections, which in turn unifies, simplifies and significantly extends the literate programming experience.},
acmid = {1640072},
added-at = {2011-12-01T11:34:49.000+0100},
address = {New York, NY, USA},
author = {Palmer, James Dean and Hillenbrand, Eddie},
biburl = {https://www.bibsonomy.org/bibtex/2ea535ce0b367373d755194dbd3847ecb/ji},
booktitle = {Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications},
description = {Reimagining literate programming},
doi = {10.1145/1639950.1640072},
interhash = {d764af10e999a80b63c8a6a770badf4d},
intrahash = {ea535ce0b367373d755194dbd3847ecb},
isbn = {978-1-60558-768-4},
keywords = {education literate programming},
location = {Orlando, Florida, USA},
numpages = {8},
pages = {1007--1014},
publisher = {ACM},
series = {OOPSLA '09},
timestamp = {2011-12-01T11:34:50.000+0100},
title = {Reimagining literate programming},
url = {http://doi.acm.org/10.1145/1639950.1640072},
year = 2009
}