PFront (and its base language MBase ) extends several target languages βββ the .NET CLR directly (via a Csharp-like embedded DSL), Lisp running on top of this CLR, and LLVM IR (and virtually any target platform supported by LLVM) through C-like built-in DSL.
Any language created within the framework of this structure can be oriented to any of the basic platforms or languages ββand can be expanded with another language - that is, languages ββform a hierarchy, with each new language expanding one or more already defined languages.
Update : to reflect an updated question - there are two ways to expand languages ββin pfront. First, simply expand the language by adding new designs and forms. Secondly, it is an implementation of a limited superset of a language that allows only a subset of the target language. Both methods are used β for example, most Csharp programs are valid subsets of PFront, as well as Lisp.
source share