Jump to content

David Gries

From Wikipedia, the free encyclopedia

David Gries
David Gries in 2022
Born(1939-04-26)April 26, 1939(age 85)
Alma mater
Known forFirst text onCompiler construction(1971)[4][5]
Interference freedom
Contributions toprogramming methodology,algorithms,CS education
Awards
Scientific career
FieldsComputer science
InstitutionsU.S. Naval Weapons Laboratory
Stanford University
University of Georgia
Cornell University
Doctoral advisorsFriedrich L. Bauer
Josef Stoer
Doctoral studentsSusan Graham(1971)
Susan Owicki(1975)
Jennifer Widom(1989)
T. V. Raman(1994)
Michael E. Caspersen(2007)[3]
Websitecs.cornell.edu/gries

David Gries(born April 26, 1939) is an Americancomputer scientistatCornell University,mainly known for his booksThe Science of Programming(1981) andA Logical Approach to Discrete Math(1993, withFred B. Schneider).

He was associate dean for undergraduate programs at theCornell University College of Engineeringfrom 2003–2011. His research interests include programming methodology and related areas such asprogramming languages,relatedsemantics,andlogic.His son, Paul Gries, has been a co-author of an introductory textbook to computer programming using the languagePythonand is a teaching stream professor in the Department of Computer Science at theUniversity of Toronto.

Life

[edit]

Gries earned aBachelor of Science(B.S.) fromQueens Collegein 1960. He spent the next two years working as a programmer-mathematician for theUnited States Naval Weapons Laboratory,where he met his wife, Elaine.

He earned aMaster of Science(M.S.) inmathematicsfrom theUniversity of Illinois at Urbana-Champaignin 1963. While at Illinois, Gries worked withManfred Pauland Ruediger Wiehle to write a fullcompilerfor the languageALGOL 60for theIBM 7090mainframe computer.He earned hisDr. rer. nat.in 1966 from theTH München,studying underFriedrich L. BauerandJosef Stoer.

Gries is member emeritus ofIFIP 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 anassistant professoratStanford Universityfrom 1966–1969 and then became an associate professor atCornell UniversityinIthaca, New York.He spent the next 30 years there, including time aschairof the computer science department from 1982–1987. Gries had aGuggenheim Fellowshipin 1984–1985. He spent 1999–2002 at theUniversity of GeorgiainAthensand returned to Cornell in January 2003.

Gries was an advocate of treatingformal methodsin 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,he lives inIthaca, New York.

Textbooks

[edit]

Gries' 1971 workCompiler Construction for Digital Computerswas the first textbook to be published on designing and implementinglanguage compilers.[5][11]It was also one of the first textbooks to be written and produced using computers, in this casepunched cardsinput to a text-formatting program that ran on anIBM System/360 Model 65;[5]the early technology used eventually resulted in the book having a somewhat dated appearance.[11]Compiler Construction for Digital Computerssold well and went through more than twenty printings,[5]although over time it would be eclipsed in renown by "the Dragon Book",Alfred V. AhoandJeffrey D. Ullman's 1977 volumePrinciples of Compiler Design.[12]Nonetheless, Dutch computer scientistDick Grunehas written ofCompiler Construction for Digital Computersthat "entire generations of compiler constructors have grown up with it and they have not regretted it."[11]

The textbookAn Introduction to Programming: A Structured Approach Using PL/I and PL/Cwas co-written with his computer scientist collegeRichard W. Conwayand published in 1973. It used thePL/Cdialect developed at Cornell and went through several editions and adaptations. It stressed the discipline ofstructured programmingthroughout, becoming one of the most prominent textbooks to do so,[13]and introduced considerations ofprogram correctness,becoming the first introductory textbook to do so.[14]

In 1981, Gries publishedThe Science of Programming,a textbook that coversprogram verification.[15]It presentspropositional calculusand uses it to formalize the treatment ofpreconditions,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 inSIGSOFT Software Engineering Notesfound the book to be valuable in the logic and stratagem aspects, but too focused on low-level programming with noabstract data typesdiscussed other than the simplearray.[15]Writing inCommunications of the ACM,computer scientistJon BentleysaidThe Science of Programmingwas "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 Mathwas co-authored withFred B. Schneiderand published in 1993.[8]A paper from a faculty member atSouthwestern Universityadvocating 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 atPepperdine Universitystated that, "My experience withA Logical Approach to Discrete Mathconvinced me that formal methods are easily mastered at the undergraduate level. "[8]

Selected works

[edit]
  • Gries, D. (1971).Compiler Construction for Digital Computers(in English, Spanish, Japanese, Chinese, Italian, and Russian). New York: John Wiley and Sons.ISBN0-471-32776-X.The first text on compiler writing.[5]
  • Gries, D.; Conway, R. (1973).An Introduction to Programming: a structured approach, Edition 1.Cambridge: Winthrop.
  • Owicki, S.; Gries, D. (1976)."Verifying properties of parallel programs: an axiomatic approach".Communications of the ACM.19(5): 279–285.doi:10.1145/360051.360224.S2CID9099351.
  • Owicki, S.; Gries, D. (1976)."An axiomatic proof technique for parallel programs I".Acta Informatica.6(4). Berlin: Springer (Germany): 319–340.doi:10.1007/BF00268134.S2CID206773583.
  • Gries, D., ed. (1979)Programming Methodology: a Collection of Articles by Members of IFIP WG2.3[7]
  • Gries, D. (1981).The Science of Programming.Monographs in Computer Science (in English, Spanish, Japanese, Chinese, Italian, and Russian). New York: Springer Verlag.doi:10.1007/978-1-4612-5983-1.ISBN978-0-387-96480-5.S2CID37034126.
  • Gries, D.; Feijen, W.H.J.; van Gasteren, A.J.M.; Misra, J., eds. (1990).Beauty is our Business.Monographs in Computer Science. New York: Springer Verlag.doi:10.1007/978-1-4612-4476-9.ISBN978-1-4612-8792-6.S2CID24379938.
  • Gries, D.; Schneider, F. B. (1993).A Logical Approach to Discrete Math.Monographs in Computer Science. New York: Springer Verlag.doi:10.1007/978-1-4757-3837-7.ISBN978-1-4419-2835-1.S2CID206657798.
  • Gries, D.; De Roever, W. P., eds. (1998).Programming Concepts and Methods PROCOMET '98.IFIP Advances in Information and Communication Technology. London: Springer.doi:10.1007/978-0-387-35358-6.ISBN978-1-4757-6299-0.S2CID30793173.
  • Gries, D.; Gries, P. (2004).Multimedia Introduction to Programming Using Java.New York: Springer Verlag.doi:10.1007/b138328.ISBN0-387-22681-8.Came with a CD called 'Program Live' with videos.
  • Gries, D. (2022).JavaHyperText and Data Structures.Ithaca, New York.Free online text with over 50 videos.{{cite book}}:CS1 maint: location missing publisher (link)

Awards

[edit]

References

[edit]
  1. ^"Taylor L. Booth Education Award".IEEE-CS.April 3, 2018.RetrievedJuly 9,2022.
  2. ^"ACM Karl V. Karlstrom Outstanding Educator Award".ACM.1995.RetrievedJuly 20,2022.
  3. ^"David Gries".mathgenealogy.org.Mathematics Genealogy Project.RetrievedAugust 7,2022.
  4. ^Gries, D. (1971).Compiler Construction for Digital Computers.New York: John Wiley and Sons.ISBN0-471-32776-X.The first text on compiler writing.
  5. ^abcde"David Gries' Compiler book Source".Computer History Exhibits.Stanford University.RetrievedOctober 4,2022.
  6. ^"IFIP Working Group 2.3 on Programming Methodology".Archived fromthe originalon June 30, 2022.RetrievedJuly 15,2022.
  7. ^abGries, D., ed. (1979).Programming Methodology: a Collection of Articles by Members of IFIP WG2.3.Monographs in Computer Science. New York: Springer Verlag.doi:10.1007/978-1-4612-6315-9.ISBN978-1-4612-6317-3.S2CID29484154.
  8. ^abcWarford, J. Stanley (September 1995)."An experience teaching formal methods in discrete mathematics".SIGCSE Bulletin.27(3): 60–64.doi:10.1145/209849.209860.S2CID14599744.
  9. ^DiPietro, Louis; LaRocca, David (May 25, 2022)."David Gries Receives 2022 Tau Beta Pi Professor of the Year Award and Delivers Final Lecture at Cornell".Cornell Bowers CIS.
  10. ^"David Gries papers, #16-13-4524. Division of Rare and Manuscript Collections, Cornell University Library".RetrievedOctober 12,2023.
  11. ^abcGrune, Dick (May 20, 2010)."Compiler Construction before 1980".dickgrune.com.
  12. ^"ACM Turing Award Honors Innovators Who Shaped the Foundations of Programming Language Compilers and Algorithms"(Press release). Association for Computing Machinery. March 31, 2021.
  13. ^"Computer Text Is Updated".The Ithaca Journal.June 30, 1975. p. 6 – via Newspapers.com.
  14. ^abc"Cornell Department of Computer Science -50 Years of Innovation".Cornell Dept of Computer Science.RetrievedSeptember 2,2022.
  15. ^abGerhart, Susan L. (April 1982). "Two recent books on programming".SIGSOFT Software Engineering Notes.7(2): 63–64.doi:10.1145/1005937.1005948.S2CID40374643.
  16. ^Henderson, Peter (1987). "Modern introductory computer science".Proceedings of the eighteenth SIGCSE technical symposium on Computer science education (SIGCSE '87).Association for Computing Machinery. pp. 183–190.doi:10.1145/31820.31756.ISBN0-89791-217-9.
  17. ^abBentley, Jon (December 1983)."Programming pearls: Writing correct programs".Communications of the ACM.26(12): 1040–1045.doi:10.1145/358476.358484.S2CID6134319.
  18. ^Denman, Richard; Naumann, David A.; Potter, Walter; Richter, Gary (1994). "Derivation of programs for freshmen".Proceedings of the twenty-fifth SIGCSE symposium on Computer science education (SIGCSE '94).Association for Computing Machinery. pp. 116–120.doi:10.1145/191029.191077.ISBN0-89791-646-8.
  19. ^"Lifetime Achievement Award for Teaching".Cornell Bowers CIS,Cornell.RetrievedJuly 10,2022.
  20. ^"Tau Beta Pi Professor of the Year".CEAA Alumni Association, College of Engineering,Cornell.RetrievedJuly 10,2022.
  21. ^"ACM SIGCSE Technical Symposium Top Ten Papers of All Time Award".SIGCSE.RetrievedJuly 10,2022.
  22. ^Gries, David(February 1974)."What should we teach in an introductory programming course?".ACM SIGCSE Bulletin.6(1): 81–89.doi:10.1145/953057.810447.
  23. ^"Awards".Cornell Bowers CIS - Computer Science.RetrievedSeptember 8,2022.
  24. ^The Cornell CS Department Timeline[14]announces this doctorate
  25. ^The Cornell CS Department Timeline[14]announces this doctorate
  26. ^"Weiss Presidential Fellow (for contributions to undergraduate education)".Cornell.RetrievedJuly 10,2022.
  27. ^"Audio System for Technical Readings"(PDF)(PhD thesis).RetrievedJuly 9,2022.
  28. ^"ACM Fellows".ACM.1994.RetrievedJuly 9,2022.
  29. ^"David Gries: ACM Fellow".ACM.1994.RetrievedJuly 9,2022.
  30. ^"Distinguished Service Award".CRA.January 16, 2015.RetrievedJuly 10,2022.
  31. ^"Historic Fellows, AAAS".AAAS.RetrievedJuly 10,2022.
  32. ^"David Gries - John Simon Guggenheim Memorial Foundation".1983.RetrievedJuly 10,2022.
  33. ^"ACM Programming Systems and Languages Paper Award".ACM.1977.RetrievedJuly 7,2022.
[edit]