Sle1617

Team

  • Prof. Ralf Lämmel (B 127)
  • MSc Marcel Heinz (B 011)

Times and places

  • Kick-off meeting: 25 Oct, 6:15pm, A 120
  • Weekly meetings
    • Tuesdays, 6-8pm, A 120
    • Thursdays, 4-6pm, B 017
    • We may try to find a different slot.
  • Other notes:
    • We do not use a strict "lectures versus lab" scheme.
    • We may cancel some slots to make time for team work and consultations.

Target group

This course can be taken by BSc and MSc students in Computer Science, Computer Vision, Education, and Web Science. Please check examination regulations for your particular study program. Please ask the lecturer, if you want to make sure that this course can be counted towards your curriculum.

The course is targeted at MSc students.
The level may be doable for very advanced and committed BSc students.
Much of the student work is about project work; there is no written or oral exam.

The course assumes some background along these areas of computer science:

  • Programming: You must be fluent in 2+ programming languages.
  • Software engineering: You must be aware of basics of software design and testing.
  • Theoretical computer science: You should have completed this subject.
  • Programming language theory: You should have completed this subject.

Links

Summary

Software Language Engineering (SLE) is a particular view on Software Engineering (SE), which pays specific attention to the many software languages that are used in software development. These are not just programming languages, but also modeling languages, query and transformation languages, schema languages, and domain-specific languages. Thus, SLE is concerned with design, definition, implementation, testing, deployment, and evolution of software languages as well as language-based software components.

Lectures

  1. Introduction (Slides: [.pdf]; Script: non-public Google Drive)
  2. Compilation (Script: non-public Google Drive)
  3. Introduction to Assignment 1
  4. The DSL FSML (Script story.pdf; non-public Google Drive)
  5. Concrete syntax: foundations and implementation (Scripts concretef.pdf und concretei.pdf: non-public Google Drive)
  6. Term rewriting (Script techmeta.pdf: non-public Google Drive)
  7. Attribute grammars (Script techmeta.pdf: non-public Google Drive)
  8. Multi-stage programming (Script techmeta.pdf: non-public Google Drive)
  9. Coupled software transformations (http://softlang.uni-koblenz.de/cxrevisited/)
  10. Software language implementation with Xtext (in preparation)
  11. Metaprogramming technology documentation (in preparation)

Assignments

  1. Try out and present a metaprogramming technology.
    • Date issued: 8 Nov 2016
    • Mandatory consultation: 1 Dec 2016
    • Deadline (final presentation): 6 Dec 2016
  2. Develop a machine-checked megamodel of a metaprogramming technology.
    • Date issued: 13 Dec 2016.
    • Mandatory consultation: 10 Jan 2017.
    • Deadline (final presentation): 19 Jan 2017
  3. Develop a component to a megamodeling language processor.
    • Date issued: 24 Jan 2017
    • Supporting lecture: 26 Jan 2017
    • Non-mandatory consultation: 31 Jan 2017
    • Mandatory consultation: 7 Feb 2017
    • Deadline (interim presentation): 14 Feb 2017
    • Deadline (final delivery): 15 March 2017

Exam rules

Neither a written nor an oral exam is exercised. Instead, the exam is directly based on assignments including their presentation (in German: "Hausarbeit mit Vortrag"). Subject to meeting all milestone in terms of deadlines and deliverables and presentations, the grade is determined on the grounds of the final project report and presentation. Feedback is provided during milestone representations. Consultation is offered so that students understand how they score and how they can improve their final score.