(Course#72.1)
Programmers spend a lot of time studying and improving their tools (editors, debuggers, IDEs, libraries, code generators, etc.). They follow the motto: "It is a hard world outside there - use every tool and every technical toy that you can get".
Thinking this way, it is easy to lose an overview about the tools and technologies that really matter. The most important technology is arguably the programming language itself. Languages may enable or disable a certain solution, they can save or waste development time, they are in the very focus of software development. Even more important is that programming languages determine the set of concepts in which we are thinking when we are trying to solve a problem.
The goal of this lecture is to develop a deeper understanding about programming languages and to answer questions like:
Instead of a stereotypical and relatively useless classification of programming languages into functional, object-oriented, imperative, etc., we will study the fundamental elements on which they are based in detail and we will implement them in interpreters.
We will develop interpreters in Scheme using the DrScheme development environment. The course will be based mainly on this book. Please install the extension plai-350.plt that you will find on the website of the book. Please use version v360 of DrScheme!
Prof. Dr.-Ing. Mira Mezini
MSc.-Inform. Vaidas Gasiunas
Dipl.-Inform. Karl Klose
Lecture: Thursday 9.50-11.30 in S202/C120
Exercises: Friday 9.50-11.30 in S202/C120
If you are going to attend the lecture, please register in our mailing list and visit our forum.