Dhananjay Madhav Dhamdhere 

Professor 
Department of Computer Science and Engineering 
Indian Institute of Technology 
Powai, Mumbai 400076, India 
Telephone: (+91-22) 2576-7724; (+91-22) 2578-2545, Ext 7724. 
Fax: (+91-22) 2579-4290 E-mail: dmd@cse.iitb.ac.in 

Current Course : CS 614 Advanced Compilers

This course will run in Slot 2 in room SIC-305.

Course home-page 
 


Education 
Teaching Career 
Teaching Interests 
Research Interests 
Research Publications  
Invited Lectures  
Text Books  
Research Themes  
Sponsored Research and Development  
Technology Transfer  
Continuing Education Activities  
Professional Work  
Other Interests  


 

Education   

B. Tech  (IIT Bombay), 1970 
M. Tech (IIT Bombay), 1972 
Ph. D     (IIT Bombay), 1979



Teaching Career

  1. Research Associate, Computer Center, IIT Bombay, Sept 1972 -- May 1974.

  2. Assistant Professor, CSE Department, IIT Bombay, May 1974 -- March 1983

  3. Associate Professor, CSE Department, IIT Bombay, March 1983 -- Sept 1985.

  4. Professor, CSE Department, IIT Bombay, September 1985 --

  5. Visiting Professor, CSE Department, University of Connecticut, August 1986 -- August 1988.

  6. Visiting Professor CSE Department, University of California, Riverside, September 2002 -- December 2003.



Teaching Interests

Undergraduate: Compilers, Operating Systems
Postgraduate:   Advanced Compilers, Distributed Operating Systems


Research Interests
 
Optimizing Compilers, Partial redundancy elimination
Operating Systems
Distributed Systems



Research Publications

 Compiler Publications 

  Other Publications  



Invited Lectures

  1. Unified optimizing transformations, EECS Department, University of California, Los Angeles, 1983.
  2. Strength reduction and register assignment using the unified optimization framework, University of Connecticut, 1986.
  3. Bi-directional data flow analysis, IBM Thomas J. Watson Research Center, 1988.
  4. Unified optimizing transformations, (a series of 10 lectures), CSA Department, Indian Institute of Science, Bangalore, 1991.
  5. Generalized theory of data flow analysis, HP Research Labs, Cupertino, 1992.
  6. Attributed tree pattern matching, Tata Research, Development & Design Center, 1997.
  7. Gensat : A generator for static analysis tools, Tata Infotech, 1998.
  8. Applications of the generalized theory of data flow analysis, Tata Research, Development & Design Center, 1998.
  9. Debugging of optimized programs, IBM Thomas J. Watson Research Center, 1998.
  10. Debugging of programs in the presence of optimization and exception handling, IBM India Research Center, 1999.
  11. Execution histories for debugging, in Code optimization: Trends, Challengers and Perspectives, Dagstuhl workshop #0381, Dagstuhl, Germany, August 2000.
  12. Debugging of optimized programs, Microsoft Research, July 2001.
  13. Debugging of optimized programs, Sun Microsystems, July 2001.
  14. Effective execution histories, University of California at Los Angeles, July 2001.
  15. Debugging of optimized programs, Rutgers University, August 2001.
  16. Efficient dynamic slicing of programs, University of Arizona, Tucson, August 2001.
  17. Efficient dynamic slicing of programs, Georgia Institute of Technology, Atlanta, August 2001.
  18. Efficient dynamic slicing of programs, University of Wisconsin, Madison, August 2001.
  19. Partial redundancy elimination using eliminatability-paths, CS Department, Stanford University, June 2003.
  20. Partial redundancy elimination using eliminatability-paths, EECS Department, University of California, Berkely, June 2003.
  21. Partial redundancy elimination using eliminatability-paths, Microsoft Research, Redmond, November 2003.
  22. New results in partial redundancy elimination using eliminatability-paths, CS department, University of New South Wales, Australia, September 2008.



Text Books


A total of 9 distinct books in Operating Systems, Systems programming, and Compilers, not counting International editions and translations into the Chinese and Spanish languages.

A tenth title is expected to be published in 2010.


Details of the books:

  1. D. M. Dhamdhere
    Compiler Construction--Principles and Practice, Macmillan India, 1983 (490 pages).
  2. D. M. Dhamdhere
    Introduction to System Software, Tata McGraw Hill, 1986 (400 pages).
    (Reprinted 1987, 1988, 1989, 1990, 1991, 1992).
  3. D. M. Dhamdhere
    System Programming & Operating Systems, Tata McGraw Hill, 1993 (Reprinted 1994, 1995).
  4. D. M. Dhamdhere
    System Programming & Operating Systems, Second edition,
    Tata McGraw Hill, 1997 (710 pages) (Reprinted 1997, 1998).
  5. D. M. Dhamdhere
    Compiler Construction--Principles and Practice, Second edition,
    Macmillan India, 1997 (478 pages).
  6. D. M. Dhamdhere
    System Programming & Operating Systems, Second revised edition, Tata McGraw Hill, 1999 (658 pages)
    (Reprinted several times every year. Currently in thirty-second reprint).

    This book has been translated in Chinese and published in Singapore by a McGraw-Hill company in September 2001.

  7. D. M. Dhamdhere
    Operating Systems--A Concept Based Apparoach, Tata McGraw-Hill, 2002 (750 pages).
  8. D. M. Dhamdhere
    Operating Systems--A Concept Based Apparoach, Second edition, Tata McGraw-Hill, 2006 (789 pages).
    (Reprinted several times every year. Currently in sixth reprint).
  9. This book has been translated in Chinese and Spanish and also published in Singapore by a McGraw-Hill company.

  10. D. M. Dhamdhere
    Operating Systems--A Concept Based Apparoach, McGraw-Hill, 2008 (832 pages).



Adoptions in CS and IT Curricula

Compiler Construction is used as a text for both undergraduate and graduate level courses on Compiler Design in many Universities.

Systems Programming & Operating Systems is used as a text at undergraduate levels for Systems Programming and Operating Systems courses. It is very widely adopted in Indian Universities. The book is also expected to be used in Chinese Universities.

Operating Systems--A Concept Based Apparoach is written as a text for undergraduate courses in Operating Systems. A significant part of this book is devoted to Distributed Operating Systems.



Research Themes

The primary focus of my research is on issues in program analysis and optimizing compilers (see items (i)--(iii)). A secondary focus is on distributed control algorithms for use in operating systems (see item (iv)).

   (i) Generalized theory of data flow analysis and its applications
  (ii) Partial redundancy elimination in compilers
 (iii) Applications of program analysis techniques
 (iv) Distributed control algorithms for operating systems

 Details and research accomplishments .



Sponsored Research & Development

1. Research Grant on Optimizing Compilers by DOE

Department of Electronics, Government of India sponsored a research project entitled ``\mbox{Optimizing} Compilers", with a man-power effort of 20-man years and total personnel and equipment grant amounting to Rs. 7.9 lakhs in 1985. Three major issues were explored

  (i) Unified code optimisation techniques,
 (ii) Effective register allocation techniques and their influence on retargetability,
(iii) Development of a retargetability framework.

Significant research fallouts have been obtained in the areas of development of superior algorithms for register allocation and optimal instruction selection.

2. Grant from Tandem Computers US $ 3000 (1995).

3. Research Grant from Intel US $10,000 + Equipment worth US $4,000 (1998).

4. Research Grant from Microsoft Research US $ 10,000 (2001), US $ 10,000 (2002).

5. Research Grant from Sun Microsystems US $ 25,000 (2001), US $ 25,000 (2002).



Technology Transfer

One of my fond desires has been to package program analysis technology so that it finds practical uses in the Industry. Gensat, a generator for static analysis and transformation (SAT) programs, is such a software system.

The technological know-how of the Gensat technology was transferred to a Company for a sizeable technology transfer fee.

  Brief description of Gensat  .



Professional Work

  1. Editor, Informatics & Computer Science, the Journal of the Computer Society of India for three years (1983-1986).
  2. Examiner for National Standards Test in Programming Competence, Computer Society of India.
  3. Reviewer for reputed journals like ACM Transactions on Programming Languages & Systems and Software---Practice & Experience
  4. Reviewer for conferences like ACM Programming Languages Design & Implementation (PLDI)
  5. Member, Program Committee of ACM Programming Languages Design & Implementation, 2003.
  6. Member, working group on Research, Design and Development of the IT Task-force appointed by the Government of India.
  7. Member, Governing Council of National Center for Software Technology (NCST), Mumbai.
  8. Member, Technology Advisory and Review Board of Tata Research, Design & Development Center, Pune.
  9. Member, board of studies of Bombay University, SNDT and Yashwantrao Chavan Maharashtra Open University.
  10. Member, Experts' committee for Government of Maharashtra's Computerization efforts.
  11. Member, Government of Maharashtra's committee for introduction of IT in the curricula and use of IT in teaching of degree programs.



Continuing Education Activities

Conceptualized and implemented many short-term courses on specific themes for various organizations, e.g.

  1. Operating System Principles for Computer Society of India
  2. Compiler Writing Tools for M/s Datamatics Consultants
  3. Operating System Principles for M/s Larsen & Toubro
  4. Object Oriented Systems for M/s Syntel
  5. Programming Languages Pascal, PL/1 and AD A for M/s Tata Consultancy Services
  6. Object Oriented System s for M/s Tata Infotech Ltd.
  7. Operating System Principles and Object Oriented System s for M/s Videsh Sanchar Nigam Ltd.
  8. Distributed Operating Systems for M/s Wipro Technologies



Other Interests

Trekking, travelling and listening to Hindustani classical music.