Emil Sekerinski
Winter Term 11/12


Regular Classes

  1. Mondays, 15:30 - 16:20, ETB 224

  2. Tuesdays, 16:30 - 17:20, ETB 224

  3. Thursdays, 15:30 - 16:20, ETB 224

Guest Lectures With Required attendance:

  1. Mike Kucera, IBM Canada: Parsing and Analyzing C/C++ code in the Eclipse IDE, Thursday, March 1, 15:30 - 16:20, ITB 139.

  2. Abstract: The Eclipse CDT Project provides a fully functional multi-platform C/C++ Integrated Development Environment. At the core of CDT is the parsing and indexing infrastructure used to analyze C/C++ code, which provides a platform on which to build the advanced functionality that users expect. This talk describes the inner workings of the CDT core, including: lexing, preprocessing, parsing, generating an AST, the visitor pattern, resolving ambiguities, generating an index and supporting content assist. The talk will also touch on the performance issues encountered and the rationale behind certain design decisions. There will be a quick demo of CDT as well.

  3. About the speaker: Mike relieved a Master's degree in Computer Science from McMaster university in 2006 under the supervision of Dr Jacques Carette. For the last 5 years he has been working for IBM Rational at the IBM Markham Software Lab. There he has been working on designing a variety of Developer tools, including extensible parsers for Eclispe CDT, remote development tools for AIX and most recently performance analysis tools for C/C++ applications running on AIX and Linux. Mike also spent some time on the Java JIT compiler team developing language extensions for Java.

  4. Ian McIntosh, IBM Canada Lab, Compiler Back End Support and Development: Autopsy of a Crash, Thursday, March 8, 15:30 - 16:20, ITB 139.

  5. Abstract: Many bugs live hidden for years or decades. Some are loners, others live in packs. Even innocent looking ones can turn vicious, especially when a group reaches critical mass, they mutate, or their environment changes. This presentation shows how easily even short reliable functions can harbour deadly infections, and how some catastrophes can be prevented.

  6. The speaker will be available for discussion after the class.

  7. About the speaker: Ian McIntosh has played 19 years with the optimizing back end used in a variety of IBM compilers, developing new optimizations and features, maintaining others, and is the team lead for back end service and quality. Pre-IBM activities included operating system internals, tools, communication protocols, performance measurement and improvement, optimizing microcode and other fun stuff.

  8. Diego Novillo, Google Canada, Thursday, March 15, 15:30 - 16:20, ITB 139.

  9. Abstract: At Google, we deal with very large problems, for which we develop very large programs that run on very large cluster farms.  This presents unique challenges and opportunities.  In this talk, I will describe how these challenges and opportunities shape the activities of the Compiler Team.  I will use several current and past compiler projects as motivating examples.  Particularly, why open source technologies play such an important role, and why scale matters..

  10. About the speaker: Diego Novillo was born in Cordoba, Argentina and holds a PhD in Parallel Computing from the University of Alberta, Canada.  He is a Software Engineer at Google, currently working for the compiler group.  He has been working on GCC since 1999 and is one of the main architects of GCC's global optimization framework.  Diego is a global reviewer for GCC and maintains various modules including OpenMP, link-time optimization and SSA-based optimizers.


  1. Tuesday, 31 January 2012, in class.

  2. Monday, 26 March 2012, in class

  3. Tuesday, 3 April 2012, in class.

Midterm Test

  1. Thursday, 2 February 2012, 50 min, during class time, MMC T29 105.

Final Exam

  1. Wednesday, 25 April 2012, 3h, closed book. Check with Office of the Registrar.