EDUCATIONAL PEARL "Little language" project modules

Many computer science departments are debating the role of programming languages in the curriculum. These discussions often question the relevance and appeal of programminglanguages content for today’s students. In our experience, domain-specific, “little languages” projects provide a compelling illustration of the importance of programming-language concepts. This paper describes projects that prototype mainstream applications such as PowerPoint, TurboTax, and animation scripting. We have used these exercises as modules in non-programming languages courses, including courses for first year students. Such modules both encourage students to study linguistic topics in more depth and provide linguistic perspective to students who might not otherwise be exposed to the area.

[1]  Jonathan Rees,et al.  Macros that work , 1991, POPL '91.

[2]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[3]  Matthias Felleisen,et al.  Validating the unit correctness of spreadsheet programs , 2004, Proceedings. 26th International Conference on Software Engineering.

[4]  奥乃博 1984 ACM Symposium on LISP and Functional Programming報告 , 1984 .

[5]  Mitchell Wand,et al.  A Theory of Hygienic Macros , 2008, ESOP.

[6]  David Fisher,et al.  Building language towers with Ziggurat , 2008, Journal of Functional Programming.

[7]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[8]  Paul Graham On LISP: Advanced Techniques for Common LISP , 1993 .

[9]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[10]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[11]  R. Kent Dybvig,et al.  Expansion-passing style: A general macro mechanism , 1988, LISP Symb. Comput..

[12]  S. Krishnamurthi,et al.  Automata via Macros , 2005 .

[13]  Michel Mauny,et al.  Parsers in ML , 1992, LFP '92.

[14]  Matthias Felleisen,et al.  How to design programs: an introduction to programming and computing , 2001 .

[15]  Morten Rhiger Type-safe pattern combinators , 2009, J. Funct. Program..

[16]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[17]  Amr Sabry Declarative Programming Across the Undergraduate Curriculum , 1999 .

[18]  Andrew Kennedy,et al.  Relational parametricity and units of measure , 1997, POPL '97.

[19]  Mitchell Wand,et al.  Essentials of programming languages , 2008 .

[20]  Matthias Felleisen,et al.  Fostering Little Languages , 2004 .

[21]  Shriram Krishnamurthi,et al.  Programming languages - application and interpretation , 2003 .

[22]  Shriram Krishnamurthi,et al.  EDUCATIONAL PEARL: Automata via macros , 2006, Journal of Functional Programming.

[23]  Martín Abadi,et al.  Extensible Syntax with Lexical Scoping , 1994 .

[24]  Matthias Felleisen,et al.  Little Languages and Their Programming Environments , 2001 .

[25]  Matthias Felleisen,et al.  A functional I/O system or, fun for freshman kids , 2009, ICFP.

[26]  Chandra Krintz,et al.  SIGPLAN programming language curriculum workshop: Workshop report summary , 2008, SIGP.