Current Sponsor

Previous Sponsor


CEP Course - Compiler Construction with Introduction to GCC
CEP Workshop On
Compiler Construction with Introduction to GCCs
Under the National Mission on Education through ICT, MHRD, New Delhi.
Monday 7th Dec 2009 to Sunday 13th Dec 2009

Workshop Content Duration and Venue Teaching Faculty
Who Should Attend Note Workshop Fee
Accommodation & Travel How to Apply Address For Communication

List of Applicants

This is a one-week workshop aimed at teachers in various colleges. This workshop is organized under the aegis of the GCC Resource Center of the Department of Computer Science and Engineering of IIT Bombay.

Proposed Pedagogy

Modern  day  compilers  are,   to  a  large  extent,  automatically generated  rather  than  hand-crafted.   This workshop  will  provide hands-on  experience  in  building  compilers through  the  use  of  compiler generation tools.  While the tools for generating compile front-ends, lex  and yacc, are now standard  textbook material, the workshop  will also  include  the use  of  a tools  called iburg  for generating back-ends. The main objective of this workshop is to teach how to build a compiler incrementally such that:

  • Each steps supports new source language features rather than a new phase in the compiler. In other words, each steps results in a complete working compiler which generates code which can be executed. We begin with a very small language consisting merely of expression.
  • Tools like  lex, yacc (or flex, bison), and iburg are used before the theory behind scanning, parsing, and instruction selection is covered.

The basic motivation behind this approach is to be able to strike a good balance between theory and practice and make the theory follow the practice instead of the other way round which is what happens in traditional courses.
Our choice of source language is loosely based on C while the target machine is MIPS as defined by the spim simulator (some sample spim programs collected from various resources available on the net). I

In  general, the  delivery plan  for  the workshop  will consists  of several rounds of:

  • Lectures to  introduce (certain aspects)  of the tools.
  • Laboratory exercises  to use the tools to implement a language with a given set of features.
  • Lectures that will utilize the experience gained in the laboratory exercises to provide the theoretical basis of compiler construction.

Participant should have taught some topics in compilers (such as, macroprocessors, linkers and loaders, scanning and parsing, semantic analysis).
Good knowledge of C and familiarity with Unix/Linux is a must.

Workshop Content

  1. Scanning. Expressing tokens through regular expressions, converting regular expressions to DFA, generating scanners from specifications, structure of generated scanners, efficient representation of scanning tables.
  2. Parsing. Expressing syntactic structure through grammars. LR parsing theory, generating parsers from specifications.
  3. Static Semantics. Using attributes for (i) type checking (ii)  calculating variable offsets (iii) Generating abstract syntax trees.
  4. Runtime Environments. Activation records, function prologues and epilogues for allocation and deallocation of activation records.
  5. Code Generation. Optimal code generation for expression trees. Generating code generators from specifications. Simple register allocation.
  6. Introduction to GCC. The compiler generation framework. Retargetability model. Inspecting intermediate represenations of program.
Using  the  compiler generation  tools lex, yacc , and iburg for generating MIPS code accepted by the spim simulator for the following language features:
  1. Constant expressions
  2. Expressions involving variables
  3. Assignment statements
  4. Array references
  5. Declarations
  6. Function calls

These experiments will be preceded by lab exercises on writing simple interpreters.

Duration and Venue

Duration : The workshop duration is one week. It will start at 09:30 am on Monday, 7th Dec, 2009 and will end at 05:00 pm on Sunday, 13th Dec, 2009.
  This will include Theory, Practices and Interactive sessions.

Venue : Room 401, Girish Gaitonde Building, Department of Electrical Engineering, IIT Bombay

Teaching Faculty

Prof. Uday Khedker, Professor, Department of Computer Science and Engineering, IIT Bombay.

Prof. Amitabha Sanyal, Professor, Department of Computer Science and Engineering, IIT Bombay.

Who Should Attend

This workshop is aimed at teachers from various colleges in the area of S/W tools & Compilers.

Note on open source release of contents

Please note that this workshop is conducted Under the National Mission on Education through ICT, MHRD, New Delhi. Live recording of the workshop and other created contents would be released under Open Source through a portal. The recorded CD/DVD of the course lectures would be available for distribution at cost, to any individual/ institution. All participants are required to sign a certificate for such release of contents contributed by them during and after the workshop. The recognition and citation will naturally be made for all contributors.

Workshop Fee

The workshop fee per participant is Rs. 1,000 /- .

Accommodation & Travel

Limited accommodation for outstation participants is available at the IIT Hostel from the evening of December 6th, 2009 to the evening of December 13th, 2009.
Boarding and lodging expenditure will be borne by the sponsoring project.
Travel reimbursement will be made for upto A/C 2-tier return fare, as per GOI entitlement.

How to Apply

Those wishing to attend the course should take the printout of the online application form and attach the DD for Rs. 1,000 in favour of "Registrar, IIT Bombay, (CEP Account)".

The number of seats is limited to 35. Preference will be given to participants meeting the pre-requisite criteria.
The final list will be communicated by email to the selected participants and will also be displayed on
the website on November 23rd, 2009.

Address For Communication:

You can communicate to us related to workshop
For General    queries :       ph: 022-2576-4820

Send DD along with the printout of online application form to:

Nisha Biju,
Programme Manager,
Department of Computer science and Engineering,
Indian Institute of Technology, Bombay
Powai, Mumbai 400 076.
Tel.: +91-22-2576 4710