Abstractions and algorithms are the two pillars of computational thinking. This paper describes how abstractions and algorithms have transformed the field of compiler design for programming languages from an art to a science.

Alfred Aho is the Lawrence Gussman Professor Emeritus of Computer Science at Columbia University. He has a B.A.Sc. in Engineering Physics from the University of Toronto and a Ph.D. in Electrical Engineering/Computer Science from Princeton University.

Professor Aho has received the ACM A.M. Turing Award, the IEEE John von Neumann Medal, and the C&C Prize. He is a member of the National Academy of Engineering, the American Academy of Arts and Sciences, and the Royal Society of Canada. He is a Fellow of the American Association for the Advancement of Science, ACM, Bell Labs, and IEEE. He won the Great Teacher Award from the Society of Columbia Graduates and the Distinguished Faculty Teaching Award from the Columbia Engineering Alumni Association.

Professor Aho has been the Vice President of the Computing Sciences Research Center at Bell Labs and the General Manager of the Information Sciences and Technologies Research Laboratory at Bellcore. He has served as Chair of the Computer Science Department at Columbia University, Chair of ACM’s Special Interest Group on Algorithms and Computability Theory, and Chair of the Advisory Committee for the National Science Foundation’s Computer and Information Science and Engineering Directorate.