General
Domain Specific Languages (DSL)
Linguagens para Domínios Específicos (LDE)
Lecturer: Vasco Amaral (e-mail: vasco.amaral@di.fct.unl.pt)
Programme: DSL/LDE is a 6 ECTS (6 x 28 hours of work) optional course from Mestrado em Engenharia Informática (MEI - 2º ciclo) with a 2 hours lecture and a 2 hours lab session.
Day of the week |
From |
To |
Classroom
|
|
Lecture |
Monday |
9h00 |
11h00 |
Bldg. VII Room 1.6 |
Lab |
Monday |
11h00 |
13h00 |
Bldg.II Room 121 |
Summary:
How is it possible to improve the productivity of the specialists of a certain application domain, when they have to develop constantly software products of the same family? How can we increase efficiency of the development phase of those products without having to make use of complex general purpose languages, but at the same time, without loosing the power of specification's flexibility? How do we model small specific languages (textual or visual) that are adequate to a certain domain in order to automate the generation of final application products? How different is the design of visual and textual languages? What methodology and both theoretical and practical tools do we currently have at our hands to build successfully a Domain Specific Language (DSL)? What are the examples of DSLs at different domains?
A DSL is a programming language that offers expressive power oriented to a specific domain ( software engineering; Cryptography algorithms; system management; data bases; multimedia; telecommunications; bio-informatics; simulation; CAD; hardware control; data mining; financial computations). This course will approach methodologies and tools for developing a DSL.
NEWS
(16/7/2009) Notas do Exame de Recurso 2008/2009 pdf
Revisão Segunda-feira dia 27 de Julho às 11h
(contactar docente via e-mail para confirmar comparência)
(6/7/2009) Notas do Exame de Época Normal 2008/2009 pdf
Revisão Quarta-feira dia 8 de Junho às 11h
(contactar docente via e-mail)
(6/7/2009) Artigo para levar para o Exame de Época de Recurso pdf
Estrutura aproximada dos exames LDEs
Estruturado em 5 grupos de perguntas:
Grupo I (5 valores) - dedicado a perguntas de interpretação sobre o artigo recomendado que é diferente de exame para exame (geralmente pode-se pedir para meta-modelar a linguagem e restrições OCL, e/ou derivar um diagrama de features, e/ou uma pergunta relativa à categorização do tipo de dsl em questão)
Grupo II - (3 valores) Quatro Perguntas Verdade/Falso (com justificação) de cariz teórico relativas à definição de conceitos relevantes à cadeira (todos definidos nas aulas teóricas).
Grupo III (4 valores) - Pergunta de cariz prático relativas aos conceitos de
graph grammars e graph, transformations, ATL.
Grupo IV (5 valores) - Pergunta relativa a detalhes da implementação do projecto RobotAct.
Grupo V (3 valores) - Pergunta relativa ao tópico da Usabilidade
("Disclaimer": os valores são apenas sugestões aproximadas, podendo sofrer umas alterações pontuais)
O exame é com consulta apenas do paper recomendado. A nota mínima do exame é de 8,5 valores.
Não é necessário trazer folhas suplementares, pois o exame é resolvido no próprio enunciado e serão fornecidas folhas extra caso surja essa necessidade.
1ª época normal de 2007/2008 pdf
2ª época de recurso de 2007/2008 pdf
1ª época normal de 2008/2009 paper pdf
Paper submission 3/6/2009. For submission instructions and get the template file access the workshop website
Schedule and Slides
Lecture |
Date |
Lecture |
Lab | |
---|---|---|---|---|
1 |
16/2/09 |
20/2/09 |
Canceled (lack of beamer in the lecture room) |
Course Intro ( slides ). Motivation ( slides ). |
23/2/09 |
27/2/09 |
National Holiday |
National Holiday | |
2 |
2/3/09 |
6/3/09 |
Domain Engineering. Software Product Lines. Model Driven Development. |
|
3 |
9/3/09 |
13/3/09 |
MDD. Models and Metamodels. ( slides ) MDA. Metamodeling the Petri-nets formalism. ( slides ) |
Textual Language Workbench: Invited speaker Ricardo Mateus: Xtex Openarchitectureware ( slides tutorial ) |
4 |
16/3/09 |
20/3/09 |
Language Syntax and Semantics - The need of being Formal ( pdf ) |
Introduction to the project ( pdf legodsl.xtx Main.xtp ). Presentation of the last year project by a former DSL course student, André Rosa ( slides ). |
5 |
23/3/09 |
27/3/09 |
Language Workbenches. XMI. EMF and GMF. Metamodeling the Statemachines notation ( pdf ) |
Meta-modeling tools: tutorial GMF/EMF. Example Turing Machine. |
6 |
30/3/09 |
3/4/09 |
Well-formdness rules: context constraints with OCL ( pdf ). | Meta-modeling tools: exercise Petri Nets with GMF/EMF ( pdf ) |
6/4/09 | 10/4/09 | Easter Holidays | Easter Holidays | |
13/4/09 |
17/4/09 |
Easter Holidays |
Easter Holidays | |
7 |
20/4/09 |
25/4/09 |
Transformation: Model to Model an Model to text. Generation: Types of generator facilites. Transformation with Graph Grammars. ( pdf pdf pdf ) |
Model Transformation and Code Generation: Tools: ATL exercises (ATL site) |
8 |
27/4/09 |
1/5/09 |
Project support |
OCL: exercises ( pdf ) |
9 |
4/5/09 |
8/5/09 |
Graph Grammars: DPO and SPO. Examples. ( pdf ) Language Usability Evaluation Issues ( pdf ). |
Testing the java code on the Lego Robots. |
10 |
11/5/09 |
15/5/09 |
DSL Examples: Robot Simulation with Microsoft DSL Tools DSL Examples 1: Domain of Augmented Reality |
Testing the java code on the Lego Robots |
11 |
18/5/09 |
22/5/09 |
How to write a paper - guidelines. ( pdf ) |
Testing the java code on the Lego Robots |
12 |
25/5/09 |
29/5/09 |
How to give a talk - general guidelines (suggested to read pdf , ppt ) |
Testing the java code on the Lego Robots |
13 | 1/6/09 | 5/6/09 | Project evaluation session. | Project evaluation session. |
14 | 8/6/09 | 12/6/09 |
Workshop (8/6/09)- 3/6/09 paper Submission
|
Workshop (8/6/09)
|
Assessment
Project: 70%
-
Domain Analysis 10%
-
Language Design 15%
- Language Editor/Parser + Generator Engine 20%
-
(8-10 pages) Paper (describing the running project) 30%
-
Oral presentation (workshop) 20%
- Paper Review and Presentation critique 5%
Examination: 30%
Tools
O aluno Rui Domingues gentilmente cedeu aos colegas uma versão do Captain Feature corrigida por si para correr sobre o SDK mais recente. Esta ferramenta pode ser útil para modelar o Feature Diagram no projecto. Rui Domingues has gently made available his version of CaptainFeature hacked to run in a recent version of SDK. The students might find it useful for modeling the Feature Diagrams of the first report. http://pessoa.fct.unl.pt |
References
Books:
"Software Languages Engineering", Anneke Kleppe, Addison Wesley Professional, 2008.
"Generative Programming Methods, Tools and Applications", Krzystof Czarnecki, Ulrich Eisenecker,Addison-Wesley, 2000.
"Domain Specific Modeling", Steven Kelly and Juha-Pekka Tolvanen, Wiley, 2008.
"Introduction to the Theory of Programming Languages", bertrand Meyer, Prentice Hall, 1990.
Sugested extra-reading (other related books):
"Domain-Specific Development with Visual Studio DSL Tools", Cook,Jones,Kent,Wills, Addison-Wesley 2007
"Software Factories", Jack Greenfield and Keith Short, Wiley Publishing , 2004.
Tools:
Eclipse Ganimede:
"EMF Eclipse Modeling Framework", Dave Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks, Wiley Publishing, 2008.
Plugins (openarchitectureware and FMP):
Suggested Papers:
S. Nakajima and N. Ubayashi, "Lightweight Formal Analysis of FODA Feature Diagrams", Rapid Integration of Software Engineering - RISE, LNCS, Springer-Verlag, 2007. (pdf)
David Harel and Bernhard Rumpe, "Modeling Languages: Syntax, Semantics and All That Stuff Part I:The Basic Stuff", Technical Report MCS00-16, The Weizmann Institute of Science, Israel, September 2000. (pdf)
K. Czarnecki and S. Helsen, "Feature-based survey of model transformation approaches". IBM Systems Journal, Vol 45, N 3, 2006. (pdf)
M. Emerson and J. Sztipanovits, "Techniques for Metamodel Composition",The 6th OOPSLA Workshop on Domain-Specific Modeling, OOPSLA 2006, (Portland, OR), ACM, Oct 2006. (pdf)
A. Deursen, P. Klint, J. Visser, "Domain-Specific Languages: An Annotated Bibliography" , SIGPLAN Notices, 35(6):26-36, June 2000. (pdf)
T. Gjøsæter, I. Fivelstand Isfeldt, and A. Prinz, "A software language for Sudoku", Proc. 1st International Conference on Software Languages Engineering, LNCS, Springer, 2009.
K. Czarnecki and S. Helsen. Feature-Based Survey of Model Transformation Approaches. IBM Systems Journal, special issue on Model-Driven Software Development. 45(3), 2006, pp. 621-645
Suggested Thesis:
Scott Thibault, "Domain-Specific Languages: Conception, Implementation and Application", Université de Rennes, October 1998
Old news:
9/6/09 - Corrected broken links to slides on OCL, transformations and usability
-Review form for the presentations at form
-The reviews were assigned to each group see more details at the submissions website ( http://www.easychair.org ). Each group needs to submit only one form for the assigned paper (deadline for the submission is Monday 8 at 24h00).
-Added slides on how to give a talk (see below)
-Proposed Schedule of the talks at website. Each group is responsible for filling the evaluation form for 8 talks at their choice (deadline for the submissions is Wednesday 10 of June at 24h00).