“Much of the technology for doing this translation for modern programming languages owes its beginnings to Aho and Ullman.”
Association of Computing Machinery
A poorly written code can cost an airline billions of dollars, topple banks, delay vaccination drives and even crash an autonomous vehicle. NIST’s two-decade-old study found that software defects cost the economy $60 billion annually and account for 80% of software development costs. Programming has come a long way since then, with no-code being the latest buzz word. However, the fundamentals of programming still stay the same.
Modern-day computing stands on the shoulders of giants. The origin of many tools ranging from coding to databases, from smartphone apps to no code machine learning platforms, can be attributed to two computer scientists — Alfred Aho and Jeffrey Ullman, the recipients of the prestigious Turing Award for the year 2020.
List of applications whose working can be traced to Aho and Ullman
- Smartphone apps
- Artificial Intelligence
- Self-driving cars
- Supercomputers
- Quantum computers and wherever programming is used.
Last week, the Association for Computing Machinery (ACM) named Alfred Vaino Aho and Jeffrey David Ullman as the 2020 ACM A.M. Turing Award recipients for their contributions to the fundamentals of programming language. Since 1966, Turing Awards — named after British computer science legend Alan M. Turing — has been awarded to contributions pushing computer science boundaries.
In the case of Aho and Ullman, the awards are a recognition of the contributions they made to the field of programming language compilers. Compiling is the process of translating a computer program written in a human-understandable language, such as C++, to lower-level language machines understand.
Ullman and Aho joined Bell Labs after completing their doctorates at Princeton University. At Bell Labs, they shaped the foundations of programming language theory, algorithm design and analysis. After a brief stint, Ullman left Bell for Princeton and settled at Stanford. Meanwhile, Aho continued in the corporate setting for three decades before joining the faculty at Columbia.
Ullman and Aho initially worked on algorithm design and analysis techniques. According to ACM, Aho and Ullman have guided generations of programmers and researchers up to the present day. “While countless researchers and practitioners have contributed to these technologies, the work of Aho and Ullman has been especially influential,” said ACM President Gabriele Kotsis.
“In terms of computer science education, their textbooks have been the gold standard for training students, researchers, and practitioners.”
Jeff Dean
According to Google’s Senior Fellow, Jeff Dean, Aho and Ullman’s fundamental ideas about algorithms, formal languages, compilers, and databases have been instrumental in developing modern-day programming and the software landscape. “They have also illustrated how these various disciplines are closely interconnected. Aho and Ullman introduced key technical concepts, including specific algorithms, that have been essential,” added Dean.
Modern-day quantum computing researchers owe a lot to Aho and Ullman. In an interview with the NYT, Microsoft researcher Krysta Svore said she and her colleagues draw on Aho and Ullman’s work for their quantum computing research.
“If you’re developing a computer game, that doesn’t matter much. But if you’re programming a pacemaker, it’s a matter of life and death.”
Alfred Aho
Aho’s work focused on how to get reliable software from unreliable programmers. He estimates most commercial software has 1,000 to 10,000 defects per million lines of code.
The Turing award recipients have dedicated their careers to build systems that will make better use of compilers. For Aho, building compilers is like inspecting a building. According to him, the program’s technical specifications are similar to inspecting a building’s structure, wiring, and plumbing against schematics and code.
Software, explained Aho in an interview with Columbia University, is more complex. A source program can have a million code lines, written by several different people with different variables.
These subtle changes can cost the companies dearly as they make it incredibly difficult to track errors. A plus function, said Aho, might use different data types than an add function and produce unequal results. Even a programmer may discover a problem involving add functions but might miss the plus functions to see if the same problem exists. Bad code still exists and might continue to do so. But, it could have been far worse if not for Aho and Ullman.