Modulo di Ingegneria del Software 2010/2011
Programmazione Orientata ai Linguaggi
Riccardo Solmi
Programma del corso
- Ingegneria dei linguaggi: concetti; sviluppo orientato ai linguaggi; Language Workbenches
- Linguaggi di dominio: design standalone vs. componibile, notazioni, persistenze; integrazione di linguaggi
- Linguaggi diretti da modello: anatomia; metamodellazione; design; linguaggi di modellazione; esempi
- Programmazione generativa: interpretazione e trasformazione di modelli; metaprogrammazione; linguaggi di interrogazione e di trasformazione; esempi
- Queries, Commons, Workflows
- Linguaggi di integrazione: definizione di formati con grammatiche; manipolazione di artefatti su file system e worksapce; estensione dell'ambiente di sviluppo (tooling); esempi
- Grammars, Artifacts, Actions
- Unit testing: unit testing del modello, della persistenza e del comportamento; linguaggi di testing; esempi.
- Linguaggi legacy metamodelli e servizi di linguaggi mainstream da usare come input e output di trasformazioni
- Java, XML, XSD, XSI, Text
Materiale didattico
- Lucidi
- Articoli
- Video
- Esempi e Tutorial
- Strumenti di sviluppo
Progetto
Progettazione ed implementazione di uno strumento generativo diretto da modello che operi su uno dei domini proposti