Abstract
This position paper describes an honors introductory Computer Science course focused on designing and implementing domain-specific programming languages. The course presents programming language design as a fundamental tool for software engineering. Students build languages for prototypes of several nontrivial products (such as PowerPoint and TurboTax). The course aims to convey fundamental ideas behind programming languages in a form that mainstream Computer Science students can appreciate early in their careers. The paper includes descriptions of and links to assignments and course materials.
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. How to Design Programs. MIT Press, 2001.Google Scholar
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns : Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google Scholar
Digital Library
- Paul Graham. Beating the averages. Available at http://paulgraham.com/avg.html, 2001.Google Scholar
Index Terms
Implementing domain-specific languages as the foundation of an honors intro CS course
Recommendations
Implementing Closed Domain-Specific Languages
SAIG '00: Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program GenerationA closed domain-specific language (DSL) is a stand-alone, declarative language designed to provide powerful and flexible software solutions specialized to a particular application domain. The users of a closed DSL are expected to be engineers or ...
Bootstrapping domain-specific meta-languages in language workbenches
GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesIt is common practice to bootstrap compilers of programming languages. By using the compiled language to implement the compiler, compiler developers can code in their own high-level language and gain a large-scale test case. In this paper, we ...






Comments