ACM India Eminent Speaker Program (ESP)

### Abhijat Vichare

**Qualifications: ** Ph.D. (Physics)

**Title:** Consultant

**Contact Details:** abhijatv@gmail.com

**Short CV:**

I conducted computer simulations (on HPC systems) of atomic clusters to study the melting transition for my doctoral work in Physics. As a faculty at the Department of Computer Science, University of Pune, I taught programming languages, system software, operating systems etc. At the Department of Computer Science and Engineering at IIT Bombay, I was a Research Scientist working on the GCC (GNU Compiler Collection) system to unearth its architecture given the implementation. Subsequently I have been a Senior Scientist at the Computational Research Laboratories (CRL, now a part of TCS) where I worked on the Eka supercomputer to perform simulations in Physics, and develop work flows for other application domains like Biology (drug discovery), and CFD. Currently I offer my services in system software and compilers. My general interests are in theoretical aspects of computer science, particularly teaching.

**Title of Talk 1: An Introduction to GCC Internals**

**Synopsis:**
The GNU Compiler Collection is an optimizing, highly portable compiler created by the Free Software Foundation (FSF). Its portability and performance have made it the standard reference compiler against which other compilers are compared with today. Industrially, it has enabled organizations - small and large - to reduce their costs of implementation by simply porting the GCC system to their architecture. Academically, the availability of its source has opened up opportunities for teaching and research using a system used in practice to compile almost every open source, as well as other software out there. This talk introduces the essential architecture of the compiler for anyone interested in porting it for commercial as well as academic goals. A first course in compiler construction would be useful to make the most of this talk.

**Title of Talk 2: Alternate Models of Computation**

**Synopsis:**
Most curricula emphasize the Turing model of computation. In this talk we introduce a few other models of computation that are equally powerful. While the mathematical details are crucial, they can be found in reference material. In this talk we attempt an intuitive exposition of the models. The main motivations for this approach are to expose the pedagogic value of these alternate models, to bring out the core conceptual content of these models and enhance the awareness of and toward these models. We will cover models like the l calculus, partial recursive functions and Markov algorithms.

**Title of Talk 3: A Novel Way to Teach Operating Systems**

**Synopsis:**
Operating Systems courses are notoriously difficult to design. The subject matter is complex, the time is limited, and the student preparation levels may not necessarily be adequate. Further, the subject brings together material from a number of other courses and this poses a challenge since the teaching process is linear. In this talk we present a novel approach to a second level OS course that teaches OSes constructively. Instead of trying to linearize the non-linear subject matter, we reduce the non linearity to bare essential but familiar. We then incrementally expand it to gradually reach a working OS. This talk describes the techniques in, and the pros and cons of, our approach. A first course in OS, good C programming, some knowledge of programming languages and an exposure to the GNU tool chain would help in taking the most out of this talk.

**Title of Talk 4: Mathematical Modeling in Computer Science**

**Synopsis:**
This somewhat strangely titled talk is an attempt to encourage a more mathematical approach to computing and is mainly targeted for students intending to pursue advanced studies in Computer Science. We try to bring out the role of mathematics in modeling the world around us - physically and computationally. We illustrate the idea of modeling by considering a few simple examples. We use elementary Logic to illustrate the mathematical thinking style. Some simple Physics is used to illustrate how mathematics is used to model the physical world. Finally, we present the use of mathematics in Computer Science by pointing out the various models of computation, as well as some other specific problems that have been successfully modeled using mathematics. Contrary to what the title might suggest, this talk does not use mathematics; instead it is an attempt to bring out the role of mathematics in modeling CS problems.