Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1227310.1227460acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
Article

Teaching compiler construction and language design: making the case for unusual compiler projects with postscript as the target language

Published: 07 March 2007 Publication History

Abstract

This paper presents an unusual programming language, textttklx, illustrating the type of compiler construction projects the author uses successfully to accompany a mostly traditional lecture on compilers.The target processor of textttklx is the PostScript interpreter, and the paper argues that this is a very good choice. A PostScript interpreter simulates an elegant stack machine with built-in graphic capabilities. It is the perfect target for languages like textttklx, making them easy to implement and fun to use. The exact definition of the source language is an integral part of the student project.The use of non standard languages and a non standard target fosters student creativity in language design and implementation. It invites "out of the box" thinking, and prepares the knowledge transfer from the rich tradition of compiler construction to new and forthcoming areas of computer science.

References

[1]
Adobe Systems Inc. PostScript language reference manual (2nd ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1990.
[2]
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: principles, techniques, and tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1986.
[3]
S. Debray. Making compiler design relevant for students who will (most likely) never design a compiler. In SIGCSE '02: Proceedings of the 33rd SIGCSE technical symposium on Computer science education, pages 341--345, 2002.
[4]
W. Kandinsky. Punkt und Linie zu Fläche: Beitrag zur Analyse der malerischen Elemente. A. Langen, München, 1926.
[5]
klx example code. http://www.cs.fhm.edu/~ruckert/compiler/klx/ex3/.
[6]
klx project description. http://www.cs.fhm.edu/~ruckert/compiler/klx/.
[7]
R. Lang. Ghostscript's home page. http://www.cs.wisc.edu/~ghost/, 2004.
[8]
M. Lesk and E. Schmidt. Lex---a lexical analyzer. Technical Report 39, Bell Laboratories, Murray Hill, NJ 07974, 1975.
[9]
M. Ruckert. Compiler construction lab on video (in german). Available on request from the author.
[10]
SAX homepage. http://www.saxproject.org/.
[11]
S. C. Johnson. Yacc: Yet another compiler compiler. Computing Science Technical Report 32, Bell Laboratories, Murray Hill, NJ 07974, 1975.
[12]
R. W. Sebesta. Concepts of Programming Languages. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2001.
[13]
M. Werner. A parser project in a programming languages course. J. Comput. Small Coll., 18(5):184--192, 2003.
[14]
XML homepage. http://www.xml.org/.
[15]
L. Xu and F. G. Martin. Chirp on crickets: Teaching compilers using an embedded robot controller. In SIGCSE '06: Proceedings of the 37th SIGCSE technical symposium on Computer science education, pages 82--86, 2006.

Cited By

View all
  • (2014)Attribute grammars made easier: EvDebugger a visual debugger for attribute grammars2014 International Symposium on Computers in Education (SIIE)10.1109/SIIE.2014.7017699(23-28)Online publication date: Nov-2014
  • (2010)MieruCompilerProceedings of the 41st ACM technical symposium on Computer science education10.1145/1734263.1734268(7-11)Online publication date: 10-Mar-2010
  • (2016)An Experience Report on Teaching Compiler Design Concepts Using Case-Based and Project-Based Learning Approaches2016 IEEE Eighth International Conference on Technology for Education (T4E)10.1109/T4E.2016.052(216-219)Online publication date: Dec-2016
  • Show More Cited By

Index Terms

  1. Teaching compiler construction and language design: making the case for unusual compiler projects with postscript as the target language

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science education
    March 2007
    634 pages
    ISBN:1595933611
    DOI:10.1145/1227310
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 March 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Yacc
    2. compiler construction
    3. design of programming languages
    4. lex
    5. postscript

    Qualifiers

    • Article

    Conference

    SIGCSE07
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 1,595 of 4,542 submissions, 35%

    Upcoming Conference

    SIGCSE Virtual 2024
    1st ACM Virtual Global Computing Education Conference
    December 5 - 8, 2024
    Virtual Event , NC , USA

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 28 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2014)Attribute grammars made easier: EvDebugger a visual debugger for attribute grammars2014 International Symposium on Computers in Education (SIIE)10.1109/SIIE.2014.7017699(23-28)Online publication date: Nov-2014
    • (2010)MieruCompilerProceedings of the 41st ACM technical symposium on Computer science education10.1145/1734263.1734268(7-11)Online publication date: 10-Mar-2010
    • (2016)An Experience Report on Teaching Compiler Design Concepts Using Case-Based and Project-Based Learning Approaches2016 IEEE Eighth International Conference on Technology for Education (T4E)10.1109/T4E.2016.052(216-219)Online publication date: Dec-2016
    • (2014)A new practicum in compiler constructionComputer Applications in Engineering Education10.1002/cae.2056622:3(429-441)Online publication date: 1-Sep-2014

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media