skip to main content
10.1145/1640089.1640132acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

An exploration of program as language

Published:25 October 2009Publication History

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.

References

  1. Anonymous. The Nerd Xmas Carol, 1998. rec.humor.funny.Google ScholarGoogle Scholar
  2. Lewis Carroll. Alice's Adventures in Wonderland. Oxford University Press, April 1865. ISBN 0199536341.Google ScholarGoogle Scholar
  3. Richard P. Gabriel. Personal communication.Google ScholarGoogle Scholar
  4. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. Peter Naur. Programming as theory building. Journal of systems architecture : JSA : the Euromicro journal, 15 (5): 253, 1985.Google ScholarGoogle Scholar
  7. Simon Peyton-Jones. Haskell 98 Language and Libraries. Cambridge University Press, 2003.Google ScholarGoogle Scholar
  8. Charles Simonyi. Hungarian Notation. November 1999.Google ScholarGoogle Scholar

Index Terms

  1. An exploration of program as language

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
      October 2009
      590 pages
      ISBN:9781605587660
      DOI:10.1145/1640089
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 44, Issue 10
        OOPSLA '09
        October 2009
        554 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1639949
        Issue’s Table of Contents

      Copyright © 2009 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 25 October 2009

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Author Tags

      Qualifiers

      • research-article

      Acceptance Rates

      OOPSLA '09 Paper Acceptance Rate25of144submissions,17%Overall Acceptance Rate268of1,244submissions,22%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!