ABSTRACT
In this paper we explore the idea that the code that constitutes a program actually forms a higher-level, program specific language. The symbols of the language are the abstractions of the program, and the grammar of the language is the set of (generally unwritten) rules about the allowable combinations of those abstractions. As such, a program is both a language definition, and the only use of that language. This specificity means that reading a never-before encountered program involves learning a new natural language, and that porting code from one program to another requires translation from one natural language into another. We suggest that the complexity and depth of the program language is affected by the gap between the program semantics (what the program is meant to do) and the code semantics (the way in which the machine runs). We believe that in seeing that programs are languages, we gain new insight into our own experience as programmers, and are able to gain new perspective on the intense complexity of code and its creation.
- Anonymous. The Nerd Xmas Carol, 1998. rec.humor.funny.Google Scholar
- Lewis Carroll. Alice's Adventures in Wonderland. Oxford University Press, April 1865. ISBN 0199536341.Google Scholar
- Richard P. Gabriel. Personal communication.Google Scholar
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional, 1995. Google Scholar
Digital Library
- Donald E. Knuth. Literate Programming (Center for the Study of Language and Information -- Lecture Notes). Center for the Study of Language and Inf, June 1992. ISBN 0937073806. Google Scholar
Digital Library
- Peter Naur. Programming as theory building. Journal of systems architecture : JSA : the Euromicro journal, 15 (5): 253, 1985.Google Scholar
- Simon Peyton-Jones. Haskell 98 Language and Libraries. Cambridge University Press, 2003.Google Scholar
- Charles Simonyi. Hungarian Notation. November 1999.Google Scholar
Index Terms
An exploration of program as language
Recommendations
An exploration of program as language
OOPSLA '09In this paper we explore the idea that the code that constitutes a program actually forms a higher-level, program specific language. The symbols of the language are the abstractions of the program, and the grammar of the language is the set of (...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Language Design for Program Manipulation
The design of procedural and object-oriented programming languages is considered with respect to how easily programs written in those languages can be formally manipulated. Current procedural languages such as Pascal, Modula-2 and Ada; generally support ...







Comments