Software Language Engineering
Faculteit | Science and Engineering |
Jaar | 2020/21 |
Vakcode | WBCS016-05 |
Vaknaam | Software Language Engineering |
Niveau(s) | bachelor |
Voertaal | Engels |
Periode | semester I b |
ECTS | 5 |
Rooster | rooster.rug.nl |
Uitgebreide vaknaam | Software Language Engineering | ||||||||||||
Leerdoelen | At the end of the course, the student is able to: - Explain the basic concepts of software language engineering (such as abstract syntax, meta model, interpreter, compiler, type checking etc.) - Construct simple domain-specific languages using state-of-the-art language engineering technology. - Organize the design of domain-specific language implementations in modules, phases, and/or components. - Discuss the value and role of software language engineering in the larger software engineering context. - Design both concrete and abstract syntax of simple software languages. - Clarify the basics of programming language theory, including syntax analysis, operational semantics and type systems. |
||||||||||||
Omschrijving | Software Language Engineering (SLE) is concerned with the principled techniques and concepts for the construction of software languages. Software languages come in many shapes and sizes, including programming languages, modeling languages, data format languages, specification languages etc. In this course students will get acquainted with the basic techniques and concepts of language engineering, and acquire the basic skills to define the syntax and semantics of software languages, as well as know the relevant tools and techniques for implementing various kinds of language processors. The course consists of a series of lectures based on the book on SLE by Ralf Lämmel. During the course students will develop a simple domain-specific language (DSL) using the metaprogramming language Rascal, exercising both foundational and practical aspects of SLE. The final exam will test individual knowledge regarding the key concepts of SLE. | ||||||||||||
Uren per week | |||||||||||||
Onderwijsvorm |
Hoorcollege (LC), Opdracht (ASM)
(Lab exercises, using QL questionnaire language (or other DSL; to be decided) implemented in Rascal) |
||||||||||||
Toetsvorm | Opdracht (AST), Schriftelijk tentamen (WE) | ||||||||||||
Vaksoort | bachelor | ||||||||||||
Coördinator | prof. dr. T. van der Storm | ||||||||||||
Docent(en) | prof. dr. T. van der Storm | ||||||||||||
Entreevoorwaarden | |||||||||||||
Opmerkingen | In the academic year 2020-2021, all CS bachelor courses have limited enrollment: - CS students can always enter each course, regardless of whether the course is mandatory for them or not. - A maximum of only 20 places per course is available for non-CS students. These places are filled on a first-come-first-served basis, with priority given to students with a strong CS-related background (e.g., CS exchange students, AI students, etc.). These students need to meet the course prerequisite requirements as mentioned on Ocasys. For more info about the enrollment procedure, see https://student.portal.rug.nl/infonet/studenten/fse/programmes/bsc-cs/general/vakintekening-procedure#cap This course was registered last year with course code WBCS18001 |
||||||||||||
Opgenomen in |
|