to design an abstract grammar for those elements that programming languages
have in common in particular, for abstraction, generalization, and modules
and
to integrate the grammar with abstract grammars for a variety of programming
paradigms.
This work is supports ideas developing in Introduction to Programming
Languages where abstraction, generalization and computational models
are used as unifying concepts for understanding programming languages.