Module: | Language-Oriented Programming |
Module number: | 41.4960 |
Language: | english |
Study programme: | Dualer Master 2021 - Katalog AS: Anwendungs- und systemorientierte Module Master 2021 - Katalog AS: Anwendungs- und systemorientierte Module Dualer Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module Dualer Master 2013 - Vertiefung SE: Software-Engineering JIM 2013 - Elective Catalogue J Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module Master 2013 - Vertiefung SE: Software-Engineering JIM 2006 - Courses Master 2006 - Katalog AS: Anwendungs- und systemorientierte Module Master 2006 - Vertiefung AE: Application Engineering MN Data Science 2016 - Katalog M-I_I: Allgemeine Wahlpflicht Informatik |
Type of course: | VP = Lecture with integrated Practical |
Weekly hours: | 6 |
Credit Points: | 9 |
Exam: | oral exam |
Registering for exam | explicitly and independent of booking |
Frequency of offering: | each year (lastly in SS 2022) |
Required knowledge: | - English language skills (understanding, speaking, reading, writing)
- Sound software design experience
- Proficiency in at least two programming languages, best in different language styles (e.g., object-oriented and functional)
|
Learning objectives: | The students shall achieve the following skills in advanced programming and design:
- Be proficient in different programming language styles, e.g., objectoriented, functional, and logic
- Be familiar with the concepts of domain-specific languages (DSLs) and meta-programming using extensible programming languages
- Be proficient in particular DSLs, e.g., for queries, workflows, and for tests
- Be proficient in designing new DSLs
- Be proficient in implementing new DSLs
- Be proficient in integrating components, implemented in different languages, within a complex application
|
Content: | - The Lisp programming language, including Lisp macros
- Functional programming
- Advanced object-oriented programming
- Logic programming
- Using pre-defined DSLs
- Improving DSLs
- Designing and implementing new DSLs using DSL stacking
- Integrating components, implemented in different languages, within a complex application
The skills will be practised in the laboratory by implementing a complex, realistic business information system using Common Lisp. |
Literature: | - Martin P.Ward. Language-Oriented Programming. Software - Concepts and Tools, 15(4):147{161, 1994.
- Sergey Dmitriev. Language Oriented Programming: The Next Programming Paradigm: http://www.onboard.jetbrains.com/is1/articles/04/10/lop, 2005.
- Jack Greeneld. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools: http://msdn.microsoft.com/en-us/library/ms954811.aspx, 2004.
- W. F. Clocksin and Chris Mellish. Programming in Prolog, 3rd Edition. Springer, 1987.
- Peter Seibel: Practical Common Lisp. Apress. 2005
- Guy L. Steele. COMMON LISP: The Language. Digital Press, 12 Crosby Drive, Bedford, MA 01730, USA, 1984.
|
Lecture style / Teaching aids: | - Workshop-style lecture and laboratory interleaved
- Team work with notebooks and shared code
- Media: presentations, white board, Wiki, integrated development environment, books and current articles
|
Responsibility: | Bernhard Humm |
Released: | SS 2015 |
Offered in SS 22: | Humm |