Summer School on Programming Language Analysis and Optimizations Hosted by IIT Hyderabad (online)

Sponsored by NVIDIA


Dates: 6 to 16 July 2021



Local (from host institute):

Organizing institution: IIT Hyderabad

Platform: Google-Meet/Microsoft Teams

Description of school:
Compilers are pervasive and critical for any software application to execute on any Computer System. 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.

The 2-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 and interpreters
  • Program analysis
  • Compiler optimizations: machine-independent and machine-dependent
  • Interfacing with program execution

Partial list of speakers:

  • R. Govindarajan (IISc Bangalore)
  • Girish Bharambe (NVIDIA, Pune)
  • Krishna V Nandivada (IIT Madras)
  • Ramakrishna Upadrasta (IIT Hyderabad)
  • Jyothi Vedurada (IIT Hyderabad)
  • Uday Khedker (IIT Bombay)

Background/prior courses recommended:

  • Computer Architecture
  • Assembly language programming would be very useful
  • GNU/Linux command line, e.g. “cp <file1> <pathname2>” instead of drag and drop
  • Programming using C