This course can be taken by (old and new) BSc and MSc Computer Science and Computer Vision.
Times and places
Lecture, tuesdays, 5:30 pm - 7:00pm, H 010
Team
- Lecture: Prof. Ralf Lämmel
- Lab: Andrei Varanovich
Links
- Timeless course portal (Wiki)
- KLIPS: lecture; lab
- Curriculum: Module 04IN2037
- An annotated bibliography [.pdf]
- SVN: https://svn.uni-koblenz.de/softlang/main/courses/sle1314/students/ + Uniko Login
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, implementation, testing, deployment, and evolution of software languages as well as language-based software components.
The lecture focuses on fundamental subjects of software language engineering including foundations of related technologies. The lab exercises some technologies and SLE problems in a more hands-on manner. Much emphasis is placed on the assignments as they are designed to equip attendees with operational intelligence in the field. This is both about reading and development assignments.
Lecture
Lectures start "ct".
Topic | Educational objective | Material |
---|---|---|
Introduction | Observe SLE in the computer science context | (.pdf) |
An SLE bibliography | Getting familiar with basic SLE literature | (.pdf) |
A DSL primer | Understand basics of modeling DSLs | (.pdf) |
Grammars and parsing | Implement parsers / frontends of language processors | (.pdf) |
Megamodeling | Understand technologies linguistically | (.html) |
Attribute grammars | Implement semantic analysis for languages | (.pdf) |
Rewriting & strategies | Implement software transformations in language processors | (.pdf) |
Automated refactoring | Discover challenges of refactoring across languages | (.pdf) |
Grammar-based testing | Testing language processors in grammar-aware manner | (.pdf) |
Code generation | Understand basics of compiler backends | (.pdf) |
See previous edition for more inspiration.
http://softlang.wikidot.com/course:sle13
Assignments
No. | Topic | Date of issue | Deadline |
---|---|---|---|
1 | Reading I/II | 29.10.13 | 12.11.13 |
2 | Development I/II | 28.11.13 | 09.01.14 |
1 | Reading II/II | 14.01.14 | 23.01.14 |
4 | Development II/II | 18.01.14 | 27.02.14 |
Results
http://softlang.wikidot.com/course:sle1314-results
Exam rules
Neither a written nor an oral exam is exercised.
Instead, the exam is directly based on the assignments including their presentation (in German: "Hausarbeit mit Vortrag").
The grade is computed as the rounded average of the assignment grades.
The grade is communicated, discussed, and possibly adjusted (based on a final presentation) during an individual consultation.
This will be explained in more detail in the first lecture.
This model has been used (more or less like this) in the past two editions. Students were very satisfied.