Next: Implementation
Up: The Language
Previous: Logical VariablesFeature
While a multiparadigm language is often attractive in concept, to make
it practical there must be a consistent method for combining different
paradigms in an application. Depending on the paradigms in question,
this may have a large effect on the feasibility of this mixing.
In general, the main difficulties are: (1) combining the
execution models, and (2) combining the data structures,
introduced in various constructs.
In Prop , this challenge of mixing paradigms is met in a number of ways:
- First, algebraic datatypes (and extensions thereof) are used
as the uniform data structure in all the pattern matching constructs.
- Secondly, different pattern matching constructs are encapsulated in
an object oriented manner using the class structure of C++ . Using
virtual functions (i.e. late binding) and multiple inheritance, different
pattern matching constructs, such as rewriting and inference, can be
seamlessly combined.
Allen Leung
Wed Mar 6 20:55:43 EST 1996