Lecture 6 - Page 3 : 22
Functional Programming in Scheme
Linguistic abstraction
* Introduction to linguistic abstraction
Linguistic abstraction
Linguistic abstraction in Lisp
Fine grained linguistic abstraction in Lisp
An example of fine grained abstraction
Coarse grained linguistic abstraction in Lisp
An example of coarse grained abstraction
* Language embedding
Embedded languages
Examples of language embedding in HTML
Course home page embedding in Scheme
* Language Mirroring
Mirrored Languages
Course home page mirroring in Scheme (1)
Course home page mirroring in Scheme (2)
Course home pages ala Course Plan
Embedding versus mirroring
* Lisp in Lisp
Why 'Lisp in Lisp'
An overview of Scheme constructs
Scheme in Scheme
The
eval
and
apply
primitives
Linguistic abstraction in Lisp
The are several possible approaches to linguistic abstractions in Lisp
Incremental approaches
Each new construct is defined by a function or a macro
Macros are used for new surface syntax, and in cases where evaluation order issues prevent use of functions
Fine grained linguistic abstraction
Total approaches
Writing an interpreter for the new language
or
Translating the new language to an existing language (compilation)
Coarse grained linguistic abstraction