David Gries | |
---|---|
Born | |
Alma mater | |
Known for | First text on Compiler construction (1971) [1] [2] Interference freedom Contributions to programming methodology, algorithms, CS education |
Awards |
|
Scientific career | |
Fields | Computer science |
Institutions | U.S. Naval Weapons Laboratory Stanford University University of Georgia Cornell University |
Doctoral advisors | Friedrich L. Bauer Josef Stoer |
Doctoral students | Susan Graham (1971) Susan Owicki (1975) Jennifer Widom (1989) T. V. Raman (1994) Michael E. Caspersen (2007) [5] |
Website | cs.cornell.edu/gries |
David Gries (born April 26, 1939) is an American computer scientist at Cornell University, mainly known for his books The Science of Programming (1981) and A Logical Approach to Discrete Math (1993, with Fred B. Schneider).
He was associate dean for undergraduate programs at the Cornell University College of Engineering from 2003–2011. His research interests include programming methodology and related areas such as programming languages, related semantics, and logic. His son, Paul Gries, has been a co-author of an introductory textbook to computer programming using the language Python and is a teaching stream professor in the Department of Computer Science at the University of Toronto.
Gries earned a Bachelor of Science (B.S.) from Queens College in 1960. He spent the next two years working as a programmer-mathematician for the United States Naval Weapons Laboratory, where he met his wife, Elaine.
He earned a Master of Science (M.S.) in mathematics from the University of Illinois at Urbana-Champaign in 1963. While at Illinois, Gries worked with Manfred Paul and Ruediger Wiehle to write a full compiler for the language ALGOL 60 for the IBM 7090 mainframe computer. He earned his Dr. rer. nat. in 1966 from the TH München, studying under Friedrich L. Bauer and Josef Stoer.
Gries is member emeritus of IFIP Working Group 2.3, [6] whose aim is to increase programmers' ability to compose programs, and he edited Programming Methodology: a Collection of Articles by Members of IFIP WG2.3, [7] which highlights the work of this group in its first ten years.
Gries was an assistant professor at Stanford University from 1966–1969 and then became an associate professor at Cornell University in Ithaca, New York. He spent the next 30 years there, including time as chair of the computer science department from 1982–1987. Gries had a Guggenheim Fellowship in 1984–1985. He spent 1999–2002 at the University of Georgia in Athens and returned to Cornell in January 2003.
Gries was an advocate of treating formal methods in programming as a core computer science topic and teaching it to undergraduates, a stance that found large amounts of debate within the computer science education community. [8] Around 700 students and fellow faculty members were in attendance for his final lecture, given to his "Programming and Data Structures" class, in May 2022. [9]
He is author, co-author, or editor of seven textbooks and 75 research papers. His papers are archived at Cornell. [10]
As of 2021 [update] , he lives in Ithaca, New York.
Gries' 1971 work Compiler Construction for Digital Computers was the first textbook to be published on designing and implementing language compilers. [2] [11] It was also one of the first textbooks to be written and produced using computers, in this case punched cards input to a text-formatting program that ran on an IBM System/360 Model 65; [2] the early technology used eventually resulted in the book having a somewhat dated appearance. [11] Compiler Construction for Digital Computers sold well and went through more than twenty printings, [2] although over time it would be eclipsed in renown by "the Dragon Book", Alfred V. Aho and Jeffrey D. Ullman's 1977 volume Principles of Compiler Design . [12] Nonetheless, Dutch computer scientist Dick Grune has written of Compiler Construction for Digital Computers that "entire generations of compiler constructors have grown up with it and they have not regretted it." [11]
The textbook An Introduction to Programming: A Structured Approach Using PL/I and PL/C was co-written with his computer scientist college Richard W. Conway and published in 1973. It used the PL/C dialect developed at Cornell and went through several editions and adaptations. It stressed the discipline of structured programming throughout, becoming one of the most prominent textbooks to do so, [13] and introduced considerations of program correctness, becoming the first introductory textbook to do so. [14]
In 1981, Gries published The Science of Programming, a textbook that covers program verification. [15] It presents propositional calculus and uses it to formalize the treatment of preconditions, postconditions, invariants, and related entities, [16] and then provides practical stratagems for program development via identifying those logical entities from a problem specification. [17] A review in SIGSOFT Software Engineering Notes found the book to be valuable in the logic and stratagem aspects, but too focused on low-level programming with no abstract data types discussed other than the simple array. [15] Writing in Communications of the ACM , computer scientist Jon Bentley said The Science of Programming was "an excellent introduction to the field" and said that professional programmers could benefit from studying it and using program verification techniques in their own projects. [17]
A Logical Approach to Discrete Math was co-authored with Fred B. Schneider and published in 1993. [8] A paper from a faculty member at Southwestern University advocating teaching the subjects the book covered to first-year undergraduates and called it "an ideal text covering predicate calculus for use in programming." [18] Similarly, a faculty member at Pepperdine University stated that, "My experience with A Logical Approach to Discrete Math convinced me that formal methods are easily mastered at the undergraduate level." [8]
The first text on compiler writing.[2]
Came with a CD called 'Program Live' with videos.
Free online text with over 50 videos.
{{cite book}}
: CS1 maint: location missing publisher (link)Edsger Wybe Dijkstra was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist.
Alfred Vaino Aho is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.
Juris Hartmanis was a Latvian-born American computer scientist and computational theorist who, with Richard E. Stearns, received the 1993 ACM Turing Award "in recognition of their seminal paper which established the foundations for the field of computational complexity theory".
PL/C is an instructional dialect of the programming language PL/I, developed at the Department of Computer Science of Cornell University in the early 1970s in an effort headed by Professor Richard W. Conway and graduate student Thomas R. Wilcox. PL/C was developed with the specific goal of being used for teaching programming. The PL/C compiler, which implemented almost all of the large PL/I language, had the unusual capability of never failing to compile a program, through the use of extensive automatic correction of many syntax errors and by converting any remaining syntax errors to output statements. This was important because, at the time, students submitted their programs on IBM punch cards and might not get their output back for several hours. Over 250 other universities adopted PL/C; as one late-1970s textbook on PL/I noted, "PL/C ... the compiler for PL/I developed at Cornell University ... is widely used in teaching programming." Similarly, a mid-late-1970s survey of programming languages said that "PL/C is a widely used dialect of PL/I."
James Jay Horning was an American computer scientist and ACM Fellow.
Franco P. Preparata is a computer scientist, the An Wang Professor, Emeritus, of Computer Science at Brown University.
Michael Kölling is a German computer scientist, currently working at King's College London, best known for the development of the BlueJ and Greenfoot educational development environments and as author of introductory programming textbooks. In 2013 he received the SIGCSE Award for Outstanding Contribution to Computer Science Education for the development of the BlueJ.
Mark Joseph Guzdial is a Professor in the College of Engineering at the University of Michigan. He was formerly a professor in the School of Interactive Computing at the Georgia Institute of Technology affiliated with the College of Computing and the GVU Center. He has conducted research in the fields of computer science education and the learning sciences and internationally in the field of Information Technology. From 2001–2003, he was selected to be an ACM Distinguished Lecturer, and in 2007 he was appointed Vice-Chair of the ACM Education Board Council. He was the original developer of the CoWeb, one of the earliest wiki engines, which was implemented in Squeak and has been in use at institutions of higher education since 1998. He is the inventor of the Media Computation approach to learning introductory computing, which uses contextualized computing education to attract and retain students.
Dexter Campbell Kozen is an American theoretical computer scientist. He is Professor Emeritus and Joseph Newton Pew, Jr. Professor in Engineering at Cornell University.
Fred Barry Schneider is an American computer scientist, based at Cornell University, where he is the Samuel B. Eckert Professor of Computer Science. He has published in numerous areas including science policy, cybersecurity, and distributed systems. His research is in the area of concurrent and distributed systems for high-integrity and mission-critical applications.
Susan Owicki is a computer scientist, Association for Computing Machinery (ACM) Fellow, and one of the founding members of the Systers mailing list for women in computing. She changed careers in the early 2000s and became a licensed marriage and family therapist.
Susan Beth Horwitz was an American computer scientist noted for her research on programming languages and software engineering, and in particular on program slicing and dataflow-analysis. She had several best paper and an impact paper award mentioned below under awards.
Jayadev Misra is an Indian-born computer scientist who has spent most of his professional career in the United States. He is the Schlumberger Centennial Chair Emeritus in computer science and a University Distinguished Teaching Professor Emeritus at the University of Texas at Austin. Professionally he is known for his contributions to the formal aspects of concurrent programming and for jointly spearheading, with Sir Tony Hoare, the project on Verified Software Initiative (VSI).
Daniel Zingaro is an associate professor at the University of Toronto Mississauga. His main areas of research are in evaluating Computer science education and online learning. He has co-authored over 80 articles in peer-reviewed journals and conferences; and also authored a textbook, "Invariants: a Generative Approach to Programming.
The Outstanding Contribution to Computer Science Education award is a prize granted by the Association for Computing Machinery (ACM) Special Interest Group (SIG) on Computer science education (SIGCSE). Outstanding contributions can include curriculum design, innovative teaching methods, authorship of textbooks, and the development of novel teaching tools. The award has been granted annually since 1981. The SIGCSE website contains more information about the awardees.
In computer science, interference freedom is a technique for proving partial correctness of concurrent programs with shared variables. Hoare logic had been introduced earlier to prove correctness of sequential programs. In her PhD thesis under advisor David Gries, Susan Owicki extended this work to apply to concurrent programs.
IFIP Working Group 2.3 on Programming Methodology is a working group of the International Federation for Information Processing (IFIP). Its main aim is to increase programmers’ ability to compose programs. To this end, WG2.3 provides an international forum for discussion and cross-fertilization of ideas between researchers in programming methodology and neighboring fields. Generally, members report on work in progress and expect suggestions and advice. Discussions are often broadened by inviting "observers" to meetings as full participants, some of whom eventually become members.
Richard Walter Conway was an American industrial engineer and computer scientist who was the Emerson Electric Company Professor of Manufacturing Management, Emeritus in the Johnson Graduate School of Management at Cornell University. Conway spent his entire academic career, both as a student and a professor, at Cornell and held faculty positions at Cornell in several different areas: industrial engineering, operations research, computer science, and management science. He was especially known for his work and publications in foundational questions about computer simulation methodology; in writing about production scheduling theory; in developing computer languages and language compilers, including the widely used PL/C dialect of IBM's PL/I language; in authoring or co-authoring textbooks about computer programming; and in developing simulation software for manufacturing. He was also the first director of the Office of Computing Services at Cornell.
Danish computer scientist Michael Edelgaard Caspersen has spent his academic life furthering computer science education, at all levels. His research interests are computing education, programming didactics, programming methodology, and object-oriented programming. He is best known for his work on computing education research and development, particularly his work to promote informatics as a fundamental discipline for all.
The first text on compiler writing.