Automatic program analysis

Website:website containing additional information
Course code:INFOAPA
Credits:7.5 ECTS
Period:periode 4 (week 17 t/m 27, dwz 23-4-2012 t/m 6-7-2012; herkansing week 34)
Timeslot:B
Participants:up till now 23 subscriptions
Schedule:Note: from now on the schedule is to be found in Osiris
Teachers:Dit is een oud rooster!
formgrouptimeweekroomteacher
college   di 9.00-12.4517-21 BBL-115 CLZ Jurriaan Hage
 
23-26 BBL-115 CLZ
do 13.15-16.0017-19 MIN-018
21 MIN-018
23-26 MIN-018
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 may include:
  • plagiarism detection for Java and C#
  • type error feedback
  • software metrics
  • program slicing
  • dynamic analysis, e.g., profiling and bug finding
  • software visualisation
Literature:This year we use various papers (to be made available during the course) and technical reports to study program analysis. In addition there will be many slides, that are based on the book
Principles of Program Analysis
Nielson, Flemming, Nielson, Hanne R., Hankin, Chris
Corr. 2nd printing, ISBN: 3-540-65410-0.
which this year is RECOMMENDED, and not required.
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.
Exam form:There is no written exam. The final grade consists of a weighted average of all the assignments/projects. At this point, I am planning to have two assignments. This year, participation in the course will also count for 10 percent of your grade; you can show participation by showing up at the lectures and asking questions/initiate discussions. 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:At most one of your grades may be below 4.0.
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.
wijzigen?