|Website:||website containing additional information|
|Period:||periode 4 (week 17 t/m 27, dwz 21-4-2014 t/m 4-7-2012; herkansing week 34)|
|Participants:||up till now 4 subscriptions|
|Schedule:||Note: from now on the schedule is to be found in Osiris|
|Contents:||Every professional compiler performs an analysis of the source code
of the program, to attempt to make the generated code more efficient, or
to validate some aspects of the source code. In this course we study many aspects of program analysis, control flow analysis, data flow analysis and
abstract interpretation, and also devote attention to analyzing higher-order languages by means of type and effect systems.
Finally, there is room for lectures on a variety of related topics, which
|Literature:||This year the following book is required for the course:
Principles of Program Analysis|
Nielson, Flemming, Nielson, Hanne R., Hankin, Chris
Corr. 2nd printing, ISBN: 3-540-65410-0.
A few additional papers, and the slides will need to be studied during the course. These will be communicated through the course website.
|Course form:||Lectures and practical assignments, all of which takes place during combined sessions. The structure is typically free form with discussions on material and working on assignment in alternation. The practical assignments usually allow for a lot of flexibility. For example, you may want to consider Soft Typing for Python or Slicing for C#. Language of implementation is up to the student. There are some minimal requirements regarding functionality, and there will always be a ``standard'' assignment for those who have no particular preference. The idea is to choose something that motivates you the most to work at the material in the course.|
|Exam form:||The final grade consists of a weighted average of all the assignments/projects, and a written exam. At this point, I am planning to have two assignments, and each assignment and the exam count for a third of your grade. Passing the course is subject to the condition that none of the grades is lower than 4.0. You have then passed the course if the average is 5.5 or higher. In some cases the lecturer can demand an oral examination at the end to validate the given grade for any given student.|
|Minimum effort to qualify for 2nd chance exam:||Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.|
|Description:||Topics for this year are dataflow analysis, abstract interpretation, type and effect systems, constraint-based analysis, plagiarism detection, software metrics, type error feedback and software visualisation. Essential ingredients are fixed point computation, widening, lattices, monotonicity, and soundness and completeness.|