Go to:
Logótipo
You are here: Start > M.EIC035

Software Language Engineering

Code: M.EIC035     Acronym: ELS

Keywords
Classification Keyword
OFICIAL Programming

Instance: 2024/2025 - 1S Ícone do Moodle

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
M.EIC 27 Syllabus 2 - 6 39 162

Teaching Staff - Responsibilities

Teacher Responsibility
João Carlos Viegas Martins Bispo

Teaching - Hours

Recitations: 3,00
Type Teacher Classes Hour
Recitations Totals 1 3,00
João Carlos Viegas Martins Bispo 3,00
Mais informaçõesLast updated on 2025-03-13.

Fields changed: Lingua de trabalho

Teaching language

Suitable for English-speaking students

Objectives

This course intends to prepare students for designing and implementing software languages, namely programming languages, modeling languages (visual or textual), and with a focus on domain-specific languages (DSLs). The content of the course includes the software languages engineering stages from concepts, requirements, design, to implementation and generation of code. It includes generalized parsers, tools and techniques to achieve fast and incremental implementation of software languages. During the course, students will work on the engineering of a DSL, to which they will apply most of the knowledge acquired.

Learning outcomes and competences

The students will be capable to:

 O1: understand all the stages of the engineering of a software language

 O2: use contemporary tools to implement software languages

 O3: apply the concepts to engineer a new software language

 O4: implement efficient code generators

 O5: identify and apply the practices that achieve efficient results

Working method

Presencial

Program

P1: Introduction to software languages, models and metamodels

P2: Conceptual foundations of software language engineering

P3: Design of software languages

P4: Implementation of software languages

P5: Integration and composition of software languages

P6: Validation of software languages

P7: Maintenance of software languages

P8: Model analysis and transformations

P9: Language engineering tools and workbenches

Mandatory literature

Martin Fowler, Rebecca Parsons; Domain-Specific Languages, Addison-Wesley. ISBN: 978-0321712943

Complementary Bibliography

Scott, M.L.; Programming Language Pragmatics, Academic Press, 2009. ISBN: 978-0-12-374514-9

Teaching methods and learning activities

The teaching methodology is based on a mix of project-based learning, flipped classroom, and traditional presentations of some topics. The students will face real-life problems regarding the engineering of software languages. During the semester the students will have to engineer a software language, to present and discuss intermediate stages of the engineering and to report and present the final implementation.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Participação presencial 0,00
Teste 40,00
Trabalho prático ou de projeto 60,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Elaboração de projeto 50,00
Estudo autónomo 56,00
Frequência das aulas 56,00
Total: 162,00

Eligibility for exams

Finalizing the lab assignment with a minimum grade of 10 (out of 20).

Calculation formula of final grade

Project (PRJ): during the semester realized by teams of 2 to 3 students (60% of the final grade)

Exam (EX): individual (40% of the final grade)

NF = PRJ*60% + EX*40%

To be approved, students must obey to the terms of frequency, NF >= 10, EX >= 8 e PRJ >= 10.

Recommend this page Top
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2025-06-14 at 03:28:48 | Acceptable Use Policy | Data Protection Policy | Complaint Portal