Technische Universität Braunschweig
  • Studium & Lehre
    • Vor dem Studium
      • Informationen für Studieninteressierte
      • Studiengänge von A-Z
      • Bewerbung
      • Fit4TU - Self-Assessment
      • Beratungsangebote für Studieninteressierte
      • Warum Braunschweig?
    • Im Studium
      • Erstsemester-Hub
      • Semestertermine
      • Lehrveranstaltungen
      • Studien-ABC
      • Studienorganisation
      • Beratungsnavi
      • Zusatzqualifikationen
      • Finanzierung und Kosten
      • Besondere Studienbedingungen
      • Gesundheit & Wohlbefinden
      • Campusleben
    • Nach dem Studium
      • Exmatrikulation und Vorlegalisation
      • Nach dem Abschluss
      • Alumni*ae
    • Strategien und Qualitätsmanagement
      • Qualitätsmanagement
      • Systemakkreditierung
      • Studienqualitätsmittel
      • TU Lehrpreis
    • Für Lehrende
      • Informationen für Lehrende
      • Konzepte
      • Lernmanagementsystem Stud.IP
    • Kontakt
      • Studienservice-Center
      • Sag's uns - in Studium und Lehre
      • Zentrale Studienberatung
      • Immatrikulationsamt
      • Abteilung 16 - Studium und Lehre
      • Career Service
      • Projekthaus
  • Forschung
    • Forschungsprofil
      • Forschungsschwerpunkte
      • Exzellenzcluster der TU Braunschweig
      • Forschungsprojekte
      • Forschungszentren
      • Forschungsprofile der Professuren
    • Frühe Karrierephase
      • Förderung in den frühen Phasen der wissenschaftlichen Karriere
      • Promotion
      • Postdocs
      • Nachwuchsgruppenleitung
      • Junior Professur und Tenure-Track
      • Habilitation
      • Service-Angebote für Wissenschaftler*innen
    • Forschungsdaten & Transparenz
      • Transparenz in der Forschung
      • Forschungsdaten
      • Open Access Strategie
      • Digitale Forschungsanzeige
    • Forschungsförderung
      • Netzwerk Forschungsförderung
      • Datenbanken und Stiftungen
    • Kontakt
      • Forschungsservice
      • Graduiertenakademie
  • International
    • Internationale Studierende
      • Warum Braunschweig?
      • Studium mit Abschluss
      • Austauschstudium
      • TU Braunschweig Summer School
      • Geflüchtete
      • International Student Support
      • International Career Service
    • Wege ins Ausland
      • Studium im Ausland
      • Praktikum im Ausland
      • Lehren und Forschen im Ausland
      • Arbeiten im Ausland
    • Internationale Forschende
      • Welcome Support for International Researchers
      • Service für gastgebende Einrichtungen
    • Sprachen und interkulturelle Kompetenzvermittlung
      • Deutsch lernen
      • Fremdsprachen lernen
      • Interkulturelle Kompetenzvermittlung
    • Internationales Profil
      • Internationalisierung
      • Internationale Kooperationen
      • Strategische Partnerschaften
      • Internationale Netzwerke
    • International House
      • Wir über uns
      • Kontakt & Sprechstunden
      • Aktuelles und Termine
      • International Days
      • 5. Studentische Konferenz: Internationalisierung der Hochschulen
      • Newsletter, Podcast & Videos
      • Stellenausschreibungen
  • Die TU Braunschweig
    • Unser Profil
      • Ziele & Werte
      • Ordnungen und Leitlinien
      • Allianzen & Partner
      • Hochschulentwicklung 2030
      • Internationale Strategie
      • Fakten & Zahlen
      • Unsere Geschichte
    • Karriere
      • Arbeiten an der TU
      • Stellenmarkt
      • Berufsausbildung an der TU
    • Wirtschaft & Unternehmen
      • Unternehmensgründung
      • Freunde & Förderer
    • Öffentlichkeit
      • Veranstaltungskalender
      • Check-in für Schüler*innen
      • Hochschulinformationstag (HIT)
      • CampusXperience
      • Kinder-Uni
      • Das Studierendenhaus
      • Gasthörer*innen & Senior*innenstudium
      • Nutzung der Universitätsbibliothek
    • Presse & Kommunikation
      • Stabsstelle Presse und Kommunikation
      • Medienservice
      • Ansprechpartner*innen
      • Tipps für Wissenschaftler*innen
      • Themen und Stories
    • Kontakt
      • Allgemeiner Kontakt
      • Anreise
      • Für Hinweisgeber
  • Struktur
    • Leitung & Verwaltung
      • Das Präsidium
      • Stabsstellen
      • Verwaltung
      • Organe, Statusgruppen und Kommissionen
    • Fakultäten
      • Carl-Friedrich-Gauß-Fakultät
      • Fakultät für Lebenswissenschaften
      • Fakultät Architektur, Bauingenieurwesen und Umweltwissenschaften
      • Fakultät für Maschinenbau
      • Fakultät für Elektrotechnik, Informationstechnik, Physik
      • Fakultät für Geistes- und Erziehungswissenschaften
    • Institute
      • Institute von A-Z
    • Einrichtungen
      • Universitätsbibliothek
      • Gauß-IT-Zentrum
      • Zentrale Personalentwicklung
      • International House
      • Projekthaus
      • Transferservice
      • Hochschulsportzentrum
      • Einrichtungen von A-Z
    • Studierendenschaft
      • Studierendenparlament
      • Fachschaften
      • Studentische Wahlen
    • Lehrer*innenbildung
      • Lehrer*innenfortbildung
      • Forschung
    • Chancengleichheit
      • Gleichstellung
      • Familie
      • Diversität
    • Kontakt
      • Personensuche
  • Suche
  • Schnellzugriff
    • Personensuche
    • Webmail
    • cloud.TU Braunschweig
    • Messenger
    • Mensa
    • TUconnect (Studierendenportal)
    • Lehrveranstaltungen
    • Im Notfall
    • Stud.IP
    • UB Katalog
    • Status GITZ-Dienste
    • Störungsmeldung GB3
    • IT Dienste
    • Informationsportal (Beschäftigte)
    • Beratungsnavi
    • Linksammlung
    • DE
    • EN
    • Instagram
    • YouTube
    • LinkedIn
    • Mastodon
    • Bluesky
Menü
  • Struktur
  • Fakultäten
  • Carl-Friedrich-Gauß-Fakultät
  • Institute
  • Institut für Softwaretechnik und Fahrzeuginformatik
  • Lehre
Logo Institut für Softwaretechnik und Fahrzeuginformatik der TU Braunschweig

MDSD Lab

Lab on Model-Driven Software Development: Creating a Model-Based Programming Language

The lab guides students through the process of designing and realizing an own model-based programming language, writing a compiler to an intermediate language and creating an execution environment revolving around the language's interpreter.

MDSD Example Slide 2
MDSD Example Slide 1

Formalities

  • Date:
    • Thursday 13:15 – 16:30 on the dates with class room introductions
    • Thursday 15:00 – 16:30 on dates with class room discussions
    • Deviating dates:
      • 1. Class room session: 24.10.18, 10:00 – 11:45
      • 2. Class room session: 29.10.18, 13:15 – 16:30
    • See the timetable for details.
  • Room: IZ 413a, Terminal Room of ISF
  • Language: The slides and assignments of the lab are in English. The lab will be held in English unless there are exclusively German-speaking participants present.
  • Module: This lab is an instance of the module "Softwaretechnik, vertiefendes Praktikum" (INF-SSE-37) and awards 5 ECTS credits.
  • Passing Criteria: To pass the lab, students have to attend the mandatory class room sessions, complete all assignments, implement at least one extension proactively and present their results at the end of the lab. There will be individual grades for completing the lab.
  • Instructors: Dr.-Ing. Christoph Seidl, Prof. Dr.-Ing. Ina Schaefer
  • Registration: Write an email to c.seidl(at)tu-braunschweig.de to register. To ensure intensive individual tutoring, the attendance for this lab is strictly limited!

Content

In guided tasks, students create a programming language, an intermediate language and the respective execution environment. In a free exercise, students create extensions to the language infrastructure.

Model-Based Programming Language (MPL)
MPL is a Turing complete programming language with variables, calculations, control flow statements and operations. MPL is developed in four revisions with increasing complexity, where the first one is developed in a class-room tutorial and the other three in homework assignments. The resulting metamodel and textual syntax are used to generate an editor.

Model-Based Intermediate Language (MIL)
MIL features an instruction set similar to that of processors with a total of 19 instructions, which are easy to execute. MIL is developed in four revisions that align with those of MPL. In class-room tutorials and homework assignments, students design a metamodel and textual syntax for MIL while learning the semantics of each instruction.

Execution Environment
Instead of executing MPL directly, it is compiled to MIL by model-to-model transformation. Students devise and implement appropriate translations from MPL constructs to MIL instructions. The execution environment for MIL is a hybrid stack/register machine students implement in Java. The implementation is relatively straight forward, which makes it portable so that MIL instructions and, thus, MPL code can be executed on different platforms when necessary.

Extensions to Language Infrastructure
Students follow up on the guided tasks in free exercises where they can choose from a number of potential topics to extend and refine the language infrastructure, e.g., introducing a type system to MPL, creating a graphical programming language that compiles to MIL, writing a debugger for MIL or compiling MIL to a binary format with an interpreter for embedded devices. To complete the lab, students have to realize at least one free exercise topic.

When Starting this Lab, ...

You must...

  • ... know Java programming
  • ... have a background in MDSD
  • ... know Ecore and the Eclipse Modeling Framework (EMF)

You should...

  • ... know some basics of compilers
  • ... be interested in ...
    • ... MDSD
    • ... compiler construction
    • ... language design
    • ... software engineering

When Completing this Lab, ...

You will have...

  • ... created a programming language
  • ... generated a parser
  • ... implemented a compiler
  • ... created an intermediate language
  • ... written a stack/register machine
  • ... implemented an interpreter
  • ... integrated components into Eclipse

You may have...

  • ... implemented a debugger
  • ... designed a type system
  • ... created a graphical programming language using the intermediate language
  • ... written a compiler to binary byte code
  • ... ported the interpreter to a different programming language

Lab Organization

Structure

  • Three class room sessions with interleaved tutorials
  • Three assignment sheets
  • Free exercise

To pass this lab...

  • ... attend mandatory class room sessions
  • ... follow the tutorials
  • ... complete all assignments
  • ... implement at least one free-exercise assignment
  • ... present your final results

Lab Assignments

Assignment 1: MPL & Constraints Assignment 2: MIL & Interpreter Assignment 3: Compiler
Create metamodel Create metamodel Devise encoding of MPL to MIL
Create grammar (parser & editor) Create grammar (parser & editor) Create MPL to MIL compiler (operative semantics)
Create constraints (static semantics) Write interpreter (execution environment) Integrate into Eclipse
- Integrate into Eclipse -

Timetable

Week Date and Time Class Room Session Lab Work
1 24.10.18, 10:00 – 11:45 18.10.18, 13:15 – 16:30 Introduction: Lab Overview & Recap Setup Eclipse and MDSD
2 29.10.18, 13:15 – 16:30 25.10.18, 13:15 – 16:30 Introduction: MPL – The Model-Based Programming Language Work on MPL
3 01.11.18 Discussion: MPL Assignment Work on MPL
4 08.11.18, 15:00 – 16:30 Discussion: MPL Assignment Work on MPL
5 15.11.18, 13:15 – 16:30 Introduction: MIL – The Model-Based Intermediate Language Work on MIL
6 22.11.18 - Work on MIL
7 29.11.18, 15:00 – 16:30 Discussion: MIL Assignment Work on MIL
8 06.12.18, 13:15 – 16:30 Introduction: The MPL to MIL Compiler Work on Compiler
9 13.12.18, 13:15 – 16:30 Discussion: Compiler Assignment, Introduction: Free Exercise Work on Compiler
10 20.12.18, 13:15 – 16:30 - Work on own Extensions
x 03.01.19 -
11 10.01.19 - Work on own Extensions
12 17.01.19, 15:00 – 16:30 Feedback: Free Exercise Work on own Extensions
13 24.01.19 - Work on own Extensions
14 31.01.19, 13:15 – 15:30 Final Presentations -
Bildnachweise dieser Seite

Für alle

Stellen der TU Braunschweig
Jobbörse des Career Service
Merchandising
Sponsoring- & Spendenleistungen
Drittmittelgeförderte Forschungsprojekte
Vertrauenspersonen für Hinweisgeber

Für Studierende

Semestertermine
Lehrveranstaltungen
Studiengänge von A-Z
Informationen für Erstsemester
TUCard

Interne Tools

Status GITZ-Dienste
Handbuch für TYPO3 (Intern)
Corporate Design-Toolbox (Intern)
Glossar (DE-EN)
Meine Daten ändern
Hochschulöffentliche Bekanntmachungen

Kontakt

Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
Postfach: 38092 Braunschweig
Telefon: +49 (0) 531 391-0

Anreise

© Technische Universität Braunschweig
Impressum Datenschutz Barrierefreiheit

Zur anonymisierten Reichweitenmessung nutzt die TU Braunschweig die Software Matomo. Die Daten dienen dazu, das Webangebot zu optimieren.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.