Essentials of Programming Languages

As used in the Indiana University Course C311




Why study programming languages?


Programming paradigms


Meta-linguistic abstraction

Meta-linguistic abstraction is the solution of problems through custom programming languages.

If you are skilled in the use of meta-linguistic abstraction, and use a programming language that is suited to this programming paradigm,

the only limits on the way you program are in your head!


To use meta-linguistic abstraction effectively, you must

Scheme is the best language we know of for this purpose.

It provides excellent support for the following means of implementing a custom language:


Approaches to teaching programming languages

Traditional study of programming language involves

This course


The meta-language (Scheme)


We emphasize essential


END