var Topics = [
   "Overview of static analysis"  ,
   "Syntax and semantics" ,

   "Introduction to the lambda calculus" ,
   "Small-step semantics and a-normal form (ANF)" ,
   "Partial order theory" ,
   "Abstract interpretation of small-step semantics" ,
   "Continuation-passing style (CPS)",
   "<i>k</i>-CFA by abstract interpretation" ,
   "Big-step semantics" ,
   "Constraint-based analyses (0CFA by constraints)" , 
   "Intraprocedural analyses for imperative languages (I)" ,
   "Intraprocedural analyses for imperative languages (II)" ,
   "Interprocedural analysis for imperative languages" ,
   "Static single-assignment form (SSA)" ,
   "Alias analyses (Steensgard, Andersen)" ,
   "Abstract garbage collection" ,

   "Context sensitivity; flow sensitivity" ,
   "Must-* analyses" ,
   "Abstract interpretation (Galois theory)" ,
   "Type-based analyses" ,
   "Dependence analysis and automatic parallelization" ,
   "Escape analysis" ,
   "Predicate-/proposition-based abstractions" ,
   "Numeric- and array-bounds analysis" ,
   "Shape analysis" ,
   "Case study: Analysis of unrestricted ANSI C (I)" ,
   "Case study: Analysis of unrestricted ANSI C (II)"
   ] ;

   
var Fixed = {
   "2009-1-20": "<b>TBD: Matt @ POPL</b>" ,
   "2009-1-22": "<b>TBD: Matt @ POPL</b>" ,
   
   "2009-3-17": "<b>Spring break</b>" ,
   "2009-3-19": "<b>Spring break</b>" 
} ;

   

var S = new Syllabus(2009,1,13,Topics,Fixed) ;
   
S.setEventDay("Tue") ; 
S.setEventDay("Thu") ; 

var Events = S.getEvents() ;

while (Events.length > 0) {
 var e = Events.shift() ;

 document.write("<tr><td>"+e.date+"</td><td>"+e.topic+"</td></tr>") ;
} 
