Skip to main navigation Skip to Content

Computer Science

University of Toronto
  • U of T Portal
  • Site Map
  • Contact
  • About DCS At U of T
    • Why Study CS at U of T
    • Career Options
    • History of DCS
    • Giving to DCS
    • Information for Prospective Undergraduate Students
    • Information for Prospective Graduate Students
    • Computer Science at UofT Mississauga
    • Computer Science at UofT Scarborough
    • Contact
  • Programs & Courses
    • Prospective Undergraduate Students
    • Current Undergraduate Students
    • Prospective Graduate Students
    • Current Graduate Students
  • Research
    • Research Groups
    • Industrial Relations
    • Research In Action Showcase
    • Research Profiles
    • Research Sponsors & Partners
    • Awards and Accolades
    • UTRECS - Undergraduate Toronto Research Experience in Computer Science
  • Our People
    • Faculty
    • Staff
    • In Memoriam
    • People Profiles
    • Alumni and Friends
    • Women in Computer Science
    • Graduate Student Society
    • Undergraduate Student Union
    • Undergraduate Artificial Intelligence Group
  • News & Events
    • Current News
    • DCS Events Calendar
    • DCS in the Media
    • @dcs Newsletter
    • Undergrad News
    • Distinguished Lecture Series
    • Awards and Accolades
    • DCS Facebook Page
    • DCS Twitter Feed
    • RSS Feed - News
    • RSS Feed - Events
You are viewing: > Home > Research > Research Groups > Programming Languages & Methodologies
  • Applied & Discrete Mathematics
  • Artificial Intelligence
  • Computational Biology
  • Computer Graphics
  • Computer Systems & Networks
  • Database Systems
  • Human Computer Interaction
  • Numerical Analysis
  • Programming Languages & Methodologies
  • Software Engineering
  • Theory of Computation

Programming Languages & Methodologies

In the area of programming languages and methodology, we are interested in the design, implementation and use of programming languages, and in the methods and mathematics of program construction. Effective programming in all areas of computer science and in all applications requires good language design, reliable and efficient implementation and good programming methods. Our department has a history of innovation in this area, including the influential Euclid project on verifiable programming, the SP/k teaching subsets of PL/1, variable precision constructs and exception handling for numerical computation and the Turing language currently in use in many schools.

Our research includes the integration of Turing and an advanced programming environment for the management of software architectures (component relationships). We are also developing an algebra of software architectures. In cooperation with others, we are designing and implementing data-parallel language features. Also in cooperation with the IBM Toronto research lab, we are implementing highly-optimizing and parallel compilers, and investigating how they can be used to simplify the design of hardware while improving performance.

On the theoretical side, we are also interested in the logical foundation of programming. We have developed a programming logic that enables us to describe computations using a single boolean expression, and express the programming refinement order as ordinary implication. It applies to both terminating and nonterminating computation, to sequential and parallel computation, to stand-alone and interactive computation. In the future, this may have a practical benefit: a programming system that can report logic errors in programs just as it now reports syntax errors. Some initial investigations suggest that the programming logic may be as good for deriving VLSI circuits as for deriving programs.

Faculty

Marsha Chechik
Azadeh Farzan
Eric C.R. Hehner
Dave Wortman

Computer Science

All rights reserved copyright Computer Science, University of Toronto