Interpreters, Compilers, and Virtual Machines
|
| Reload |
Welcome! This is the ICVM/F03 course web site. The goal of this course is to study the connection between programming-language interpreters, compilers, and virtual machines. For a number of paradigms (imperative, functional, and object-oriented), we will start from an interpreter and derive the corresponding compiler and virtual machine. Besides highlighting the connection between interpreters, compilers, and virtual machines, this style of derivation shows how to design and how to construct virtual machines, and how to make them support programming features such as proper tail recursion, functions as values, objects, first-class continuations, threads, distributed computations, and mobile code. This style of derivation is strongly influenced by concepts from the area of partial evaluation, which we will also describe. Note that this kind of derivation is a well-known process in some paradigms (especially the functional paradigm), whereas it is less completely explored in others. Hence, the treatment will not be identical with all paradigms. The course is organized such that roughly the first half of the lectures are given by Olivier Danvy, and the remaining lectures are given by Erik Ernst. We may also invite other lecturers, to cover specific topics.
This is a pass/fail course. To pass the course, you must deliver a number of programming exercises, each of which will also require to write a small report. To take this course you must have taken the course dOvs. It is beneficial if you have also taken dSprogSem. The lectures will generally be in English, but if everybody attending a given lecture speaks Danish then we may choose to do it in Danish. For international comparisons and transfer of credits: This course counts as 10 points in the European Credit Transfer System (ECTS).
The other pages in this course web site contain information about the changes made to this site; how to reach the lecturers; the place, date, and time of lectures etc.; a list of participants; information about the course exercises; a list of literature; and some external WWW links to related material. Navigation is achieved by pressing the buttons in the left hand frame, e.g., the button labeled "Schedule" to go to the schedule page, where information about time/place/etc. is given. Note that the buttons will only work if your browser allows execution of Javascript code. You can create your own bookmarks or links directly to the right-hand frame pages (the content of the site) by copying the URL given at the very bottom of each page.
Use the local news group daimi.icvm to ask questions related to the course, to provide interesting links, or whatever you like. |