"A Semantically Enhanced Library Language (a SEL language or a SELL) is a dialect created by supersetting a language using a library and then subsetting the result using a tool that “understands” the syntax and se- mantics of both the underlying language and the library. The resulting language can be about as expressive as a special- purpose language and provide as good semantic guarantees as a special-purpose language. However, a SELL can rely on the tool chain and user community of a major general- purpose programming language." --Bjarne Stroustrup in "A rationale for semantically enhanced library languages".
This project is a collection of library languages exploring, using and following the SELL approach. SELLs don't have to be built on top of C++ even though that was the language of choice for our exploration of the idea.
- Mach7 - Pattern Matching for C++
- Par7 - Experimental playground for grammars
- XTL - eXtensible Typing Library
Yuriy Solodkyy, Jaakko Jarvi. "Extending Type Systems in a Library: Typesafe XML-processing in C++", Science of Computer Programming, 2010.
Bjarne Stroustrup and Gabriel Dos Reis. "Supporting SELL for High-Performance Computing". LCPC05. October 20-22, 2005
Bjarne Stroustrup. "A rationale for semantically enhanced library languages". LCSD05. October 16, 2005