1. A Framework for Teaching Programming Languages
- Author
-
Kent D. Lee
- Subjects
Computer science ,Functional logic programming ,Comparison of multi-paradigm programming languages ,Computer programming ,computer.software_genre ,Extensible programming ,Prolog ,Very high-level programming language ,Third-generation programming language ,Reactive programming ,Programming domain ,Fifth-generation programming language ,computer.programming_language ,Declarative programming ,Functional programming ,business.industry ,Programming language ,Type inference ,Second-generation programming language ,Standard ML ,Python (programming language) ,Programming language implementation ,Inductive programming ,Procedural programming ,Type checking ,High-level programming language ,Programming paradigm ,Fourth-generation programming language ,Compiler ,business ,First-generation programming language ,Software engineering ,computer ,Programming language theory - Abstract
This paper provides a description of a framework for programming language implementation that is accessible to students in a one semester course focused on programming languages. Rather than concentrating solely on language features, this paper describes a framework where imperative, functional, and logic programming languages are all used to develop a compiler for a non-trivial subset of a functional programming language. Provided by the framework are a virtual machine, a disassember of Python programs, a partial implementation of a Standard ML compiler with suggested tests, and a partial implementation of a type inference system implemented using Prolog, again with suggested tests. Classroom experience gained while using this framework is also shared. A suggested fourteen week sequence is provided. Real reactions from students and reflections on coverage of the ACM 2013 Curricula guildelines conclude the paper.
- Published
- 2015
- Full Text
- View/download PDF