Questions and issues to Walter Cazzola.
Following the ideas of software product lines, a language product line facilitates the process of language development, which can be customized by selecting individual language features. Similar, to software product lines a language could be designed to specifically suit a certain use case or application domain.
For instance, you can find in the literature several variants of state machine languages and the description of how these variants could be modeled as one single family of programming languages. Nonetheless, this is also true for general-purpose programming languages, from which dialects may be defined for DSL purposes.
On one side, specialized versions of full-fledged programming languages can be employed in case of security purposes (e.g., Java Card) or teaching programming. Language extension, on the other side, can be useful to embed new language features into an existing programming language, such as type-checked SQL queries.
AiDE
AiDE is a tool to guide language developers towards a valid language configuration by employing the
Neverlang language development framework. We show that
the presented approach and tooling is suitable to create,
maintain, and extend a real world programming language
Downloads
TBD
LPL and AiDE Who's Who
The language product line research and the AiDE tool development are led by Walter Cazzola.
- Edoardo Vacchi, designed and implemented some of the CVL construction algorithms used by AiDE (See [SLE'13, SPLC'14])
- Diego Mathias Olivares designed and implemented the AiDE GUI (See [SPLC'15, TETC'16])
- Luca Favalli, made AiDE a library that can be used standalone or from FeatureIDE
References
Language Product Lines.
- Edoardo Vacchi, Walter Cazzola, Suresh Pillay, and Benoît Combemale, Variability Support in Domain-Specific Language Development, in Proceedings of 6th International Conference on Software Language Engineering (SLE'13), Indianapolis, USA, October 2013, LNCS 8225, pp. 76--95, Springer. [SLE'13].
- Edoardo Vacchi, Walter Cazzola, Benoît Combemale, and Mathieu Acher, Automating Variability Model Inference for Component-Based Language Implementations, in Proceedings of the 18th International Software Product Line Conference (SPLC'14)</em>, Patrick Heymans and Julia Rubin, Eds., Florence, Italy, September 2014, pp. 167--176, ACM. [SPLC'14].
- Thomas Kühn and Walter Cazzola, Apples and Oranges: Comparing Top-Down and Bottom-Up Language Product Lines, in Proceedings of the 20th International Software Product Line Conference (SPLC'16), Beijing, China, September 2016, pp. 50–59, ACM. [SPLC'16].
AiDE.
- Thomas Kühn, Walter Cazzola, and Diego Mathias Olivares, Choosy and Picky: Configuration of Language Product Lines, in Proceedings of the 19th International Software Product Line Conference (SPLC'15), Nashville, TN, USA, July 2015, pp. 71--80, ACM. [SPLC'15].
Application of LPLs (Teaching, IDE, ...).
- Walter Cazzola and Diego Mathias Olivares, Gradually Learning Programming Supported by a Growable Programming Language, IEEE Transactions on Emerging Topics in Computing, 4(3):404--415, September 2016. [TETC'16].
- Thomas Kühn, Ivo Kassin, Walter Cazzola, and Uwe Aßmann, Modular Feature-Oriented Graphical Editor Product Lines, in Proceedings of the 22th International Software Product Line Conference (SPLC'18), Gothenburg, Sweden, September 2018, pp. 76–86, ACM. [SPLC'18].
- Thomas Kühn, Walter Cazzola, Nicola Pirritano Giampietro, and Massimiliano Poggi, Piggyback IDE Support for Language Product Lines, in Proceedings of the 23rd International Software Product Line Conference (SPLC'19), Paris, France, September 2019, ACM. [SPLC'19].