INF5906 - Selected topics in static analysis
|
||||||||||||||||
|
||||||||||||||||
Course content
Programming errors are, depending on the application, annoying till intolerable. Many theoretical methods have been developed to prove the correctness of programs. However, in practice the effort to verify realistic programs is immense, or often even unmanagable, so these methods are applied only in the most safety-critical applications and/or in special areas, for instance, hardware verification. To routinely eliminate errors in industrial programs, in contrast, only methods which identify a wide range of often encountered program errors efficiently and automatically, are acceptable.
Static analysis is a generic term for many such approaches. Examples of such approaches are
- identify type inconsistencies by type checking,
- potential nil-pointer derefencing,
- security checks when downloading Java-applets,
- estimations of communication overhead, and
- resource bound checkes.
The name ``static'' analysis is justified by the fact that the anylysis is done at compile time, not at run time,
The course treats selected topics from the text book [NNH99] , e.g.,
- data flow analysis and control flow analysis
- interprocedural analysis
- abstract interpretation
- type- and effect systems
- algorithmic questions
[NHH99] Flemming Nielson, H.R. Nielson, C. Hankin. Principles of Program Analysis. Springer-Verlag 1999.
Learning outcomes
The course gives an introduction to static analysis, emphasizing some basic techniques. You will learn about the principles behind static analysis and how to apply basic analysis techniques.
Admission
Students at UiO must apply for courses in StudentWeb.
International applicants, if you are not already enrolled as a student at UiO, please see our information about admission requirements and procedures for international applicants.
The examination in this course is not available for external candidates. Only students admitted to the course may sit for the examination.
Prerequisites
Recommended prior knowledge
logic, for example INF3170 - Logic.
Teaching
2 hours lecture per week.
Teaching takes place throughout the semester.
Exam information
Oral or written exam. General information about the examination.
Assessment and grading
Students are awarded either a passing or a failing grade. Read more about the grading system .
Possibility of make-up exams and re-takes
This subject does not offer new examination in the beginning of the subsequent term for candidates who withdraw during an ordinary examination or fail an ordinary examination. For general information about new examination, see http://www.mn.uio.no/studier/admin/eksamen/utsatt-og-ny-eksamen/index.html and http://www.mn.uio.no/english/studies/admin/examination/retaking-examinations/
Withdrawing from exams and limits on re-takes
A student can sit for this exam up to 3 times. If a student wishes to withdraw from the exam, s/he must do this in StudentWeb at least two weeks prior to the first day of the exam. Failure to do so will be counted as one of the three opportunities to sit for the exam.
Other information
It is strongly recommended to attend the first lecture since it will be given important information.
Contact us
Department of Informatics (Ifi)
Visiting address:
Informatics builidng, First floor, room 2316, Gaustadalléen 23
Visiting hours:
Monday-friday 12:00-15:00
Postal address:
P.o.Box 1080, Blindern
NO-0316 Oslo
Fax: +47 22 85 24 01
E-mail: studieinfo@ifi.uio.no
Web: http://www.mn.uio.no/ifi/english/