Summer School on Compiler Design and Construction hosted by VIT Pune

co-sponsored by NVIDIA Graphics Pvt Ltd Pune

Dates: 3 to 21 June

Venue: Vishwakarma Institute of Technology Pune, 666 Upper Indira Nagar, Bibvewadi, Pune 411037

Course coordinators: Shekhar Divekar, Anshuman Dhuliya , Shiv Sutar

Brief description of school and list of topics:

Compilers are pervasive and critical for any software application to execute on any Computer System. It is a software that bridges the gap between high level languages and processors on which the programs written in these languages execute. By studying compiler design, you can not only understand the complex process involved in translation of high-level programs into executable programs, but also gain useful insights into the design and implementation of programming languages.

You might be already familiar with the C/C++ compiler used to compile C/C++ source code into an executable. However, did you know that there is a compiler being used when you play your favourite 3D game or browse your favourite HTML5 website? Not just that, Compiler technology has applications beyond the traditional task of generating executables! Today it is used to detect defects in code, catch security issues and even generate HW Designs from software specifications. As the era of Artificial Intelligence dawns with techniques like Machine Learning and Deep Learning helping computer perform some amazing human like tasks the importance of designing great compilers increases many-fold, not just to generate the most optimized programs for latest HW but also to help programmer productivity by translating programs coded in Domain Specific Languages that are custom built for Machine Learning and AI.

This summer school aims at providing you a foundation in theory and practice of optimizing compilers. Further, a study of essential components of program execution environments will provide you with an end-to-end understanding of the life of a program in a computer system. Exposure to different programming paradigms will help you build a new perspective toward programming as well as language design and implementation. With this view, the school includes a full module on Introduction to Functional Programming.

The 3-week school will cover these concepts through lectures as well as hands-on assignments. A high-level module structure is as follows:

  • Introduction to compilers
  • Program analysis
  • Compiler optimizations: machine independent and machine dependent optimizations
  • Support for program execution
  • Introduction to functional programming


  • Uday Khedker, IIT Bombay
  • Amitabha Sanyal, IIT Bombay
  • Abhijat Vichare
  • Girish Bharambe, NVIDIA Pune
  • Krishna Nandivada, IIT Madras
  • R. Govindrajan, IISc

Background/prior courses recommended:

  • Data structures and algorithms
  • Computer organization
  • Programming languages such as C, C++
  • Other requirements will be announced before the school commences