Hostname: page-component-78c5997874-dh8gc Total loading time: 0 Render date: 2024-11-19T23:54:11.691Z Has data issue: false hasContentIssue false

“Little language” project modules

Published online by Cambridge University Press:  26 January 2010

JOHN CLEMENTS
Affiliation:
California Polytechnic State University, San Luis Obispo, CA, USA (e-mail: clements@brinckerhoff.org)
KATHI FISLER
Affiliation:
Worcester Polytechnic Institute (e-mail: kfisler@cs.wpi.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Many computer science departments are debating the role of programming languages in the curriculum. These discussions often question the relevance and appeal of programming-languages 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.

Type
EDUCATIONAL PEARL
Copyright
Copyright © Cambridge University Press 2010

References

Abelson, H., Sussman, G. J. & Sussman, J. (1996) Structure and Interpretation of Computer Programs. 2nd ed. McGraw-Hill.Google Scholar
Allen, E., Chase, D., Luchangco, V., Maessen, J.-W. & Guy, L. S. Jr. (2004) Object-oriented units of measurement. ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, pp. 384403.Google Scholar
Antoniu, T., Steckler, P. A., Krishnamurthi, S., Neuwirth, E. & Felleisen, M. (2004) Validating the unit correctness of spreadsheet programs. International Conference on Software Engineering. ACM, pp. 439448.Google Scholar
Bentley, J. (1986) Little languages. Communications of the ACM, August, ACM, 711–721.CrossRefGoogle Scholar
Cardelli, L., Matthes, F. & Abadi, M. (1994) Extensible syntax with lexical scoping. Research Report 121. Digital SRC.Google Scholar
Clements, J., Graunke, P., Krishnamurthi, S. & Felleisen, M. (2001) Little languages and their programming environments. Proceedings of the Monterey Workshop on Engineering Automation for Software Intensive System Integration. ACM, pp. 118.Google Scholar
Clements, J., Felleisen, M., Findler, R., Flatt, M. & Krishnamurthi, S. (2004) Fostering little languages, Dr. Dobb's Journal, March, 29 (3): 1624.Google Scholar
Clinger, W. & Rees, J. (1991) Macros that work. Pages 155–162 of: ACM SIGPLAN Conference on Principles of Programming Languages, ACM.CrossRefGoogle Scholar
Deursen, A. v., Klint, P. & Visser, J. (2000) Domain-specific languages: An annotated bibliography, ACM SIGPLAN Notices, 35 (6): 2636.CrossRefGoogle Scholar
Dybvig, R. K., Friedman, D. P. & Haynes, C. T. (1988) Expansion-passing style: A general macro mechanism, LISP and Symbolic Comput., 1 (1): 5375.CrossRefGoogle Scholar
Felleisen, M., Findler, R. B., Flatt, M. & Krishnamurthi, S. (2001) How to Design Programs. MIT Press.Google Scholar
Felleisen, M., Findler, R. B., Flatt, M. & Krishnamurthi, S. (2009) A functional I/O System or, fun for freshman kids. ACM SIGPLAN International Conference on Functional Programming. ACM, pp. 4758.CrossRefGoogle Scholar
Findler, R. B. & PLT. (2009 July) DrScheme: PLT programming environment. Reference Manual PLT-TR2009-drscheme-v4.2.1. PLT Scheme Inc. Available at: http://plt-scheme.org/techreports/ Accessed 4 January 2010.Google Scholar
Fisher, D., & Shivers, O. (2008) Building language towers with Ziggurat, J. Funct. Program., 18 (5–6): 707780.CrossRefGoogle Scholar
Fisher, K. & Krintz, C. (2008) 2008 SIGPLAN programming language curriculum workshop report, ACM SIGPLAN notices, 43 (11), 2930.CrossRefGoogle Scholar
Flatt, M. & PLT. (2009 July) Reference: PLT scheme. Reference Manual PLT-TR2009-reference-v4.2.1. PLT Scheme Inc. http://plt-scheme.org/techreports/ Accessed 4 January 2010.Google Scholar
Friedman, D. P., Wand, M. & Haynes, C. T. (2001) Essentials of Programming Languages. 2nd ed. MIT Press.Google Scholar
Graham, P. (1994) On Lisp: Advanced Techniques for Common Lisp. Englewood Cliffs, NJ: Prentice-Hall.Google Scholar
Herman, D. & Wand, M. (2008) A theory of hygienic macros. Lect. Notes Comput. Sci., 4960: 4862.CrossRefGoogle Scholar
Hewitt, C., Bishop, P. & Steiger, R. (1973) A universal modular actor formalism for artificial intelligence. International Joint Conference on Artificial Intelligence. pp. 235–245.Google Scholar
Hudak, P. (1996). Building domain-specific embedded languages, ACM Comput. Surv., 28 (4es): 196.CrossRefGoogle Scholar
Kamin, S. N. (1989) Programming Languages: An Interepreter-Based Approach. Addison-Wesley.Google Scholar
Kennedy, A. J. (1997) Relational parametricity and units of measure. ACM SIGPLAN Conference on Principles of Programming Languages. ACM, pp. 442455.Google Scholar
Kohlbecker, E. E., Friedman, D. P., Felleisen, M. & Duba, B. F. (1986) Hygienic macro expansion. ACM Symposium on Lisp and Functional Programming. pp. 151–161.CrossRefGoogle Scholar
Krishnamurthi, S. (2006) Automata via macros, J. Funct. Program., 16 (3): 253267.CrossRefGoogle Scholar
Krishnamurthi, S. (2007) Programming Languages: Application and Interpretation. Self-published.Google Scholar
Mauny, M. & de Rauglaudre, D. (1992) Parsers in ML. ACM Symposium on Lisp and Functional Programming. ACM, pp. 7685.Google Scholar
Rhiger, M. (2009) Type-safe pattern combinators, J. Funct. Program., 19 (2): 145156.CrossRefGoogle Scholar
Sabry, A. (1999) Declarative programming across the undergraduate curriculum. Workshop on functional and declarative programming in education. Rice University TR99-346, online at http://www.ccs.neu.edu/home/matthias/FDPE99/ Accessed 4 January 2010.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.