Eric Hehner

From Wikipedia, the free encyclopedia
Eric C. R. Hehner
Born (1947-09-16) September 16, 1947 (age 76)
EducationCarleton University (B.Sc., 1969)
University of Toronto (M.Sc., 1970; Ph.D., 1974)
Known forPredicative programming
Formal methods
Quote notation
Scientific career
FieldsComputer science
InstitutionsUniversity of Toronto

Eric "Rick" C. R. Hehner (born 16 September 1947) is a Canadian computer scientist. He was born in Ottawa. He studied mathematics and physics at Carleton University, graduating with a Bachelor of Science (B.Sc.) in 1969. He studied computer science at the University of Toronto, graduating with a Master of Science (M.Sc.) in 1970, and a Doctor of Philosophy (Ph.D.) in 1974. He then joined the faculty there, becoming a full professor in 1983. He became the Bell University Chair in software engineering in 2001, and retired in 2012.[1]

Hehner's main research area is formal methods of software design. His method, initially called predicative programming, later called Practical Theory of Programming, is to consider each specification to be a binary (boolean) expression, and each programming construct to be a binary expression specifying the effect of executing the programming construct. Refinement is just implication. This is the simplest formal method, and the most general, applying to sequential, parallel, stand-alone, communicating, terminating, nonterminating, natural-time, real-time, deterministic, and probabilistic programs, and includes time and space bounds. This idea has influenced other computer science researchers, including Tony Hoare.

Hehner's other research areas include probabilistic programming, unified algebra, and high-level circuit design. In 1979, Hehner invented a generalization of radix complement called quote notation, which is a representation of the rational numbers that allows easier arithmetic and precludes roundoff error.

He was involved with developing international standards in programming and informatics, as a member of the International Federation for Information Processing (IFIP) IFIP Working Group 2.1 on Algorithmic Languages and Calculi,[1][2] which specified, maintains, and supports the programming languages ALGOL 60 and ALGOL 68.[3] and of IFIP Working Group 2.3 on Programming Methodology.[1]


  1. ^ a b c Hehner, Eric C. R. (3 May 2020). "Eric C. R. Hehner". Department of Computer Science. University of Toronto. Retrieved 2020-07-27.
  2. ^ Jeuring, Johan; Meertens, Lambert; Guttmann, Walter (2016-08-17). "Profile of IFIP Working Group 2.1". Foswiki. Retrieved 2020-10-16.
  3. ^ Swierstra, Doaitse; Gibbons, Jeremy; Meertens, Lambert (2011-03-02). "ScopeEtc: IFIP21: Foswiki". Foswiki. Retrieved 2020-10-16.

External links[edit]