Skip to the content of the web site.

About the Computer Systems Group

The Computer Systems Group at the University of Waterloo has been a computer science research group since the early 1960s. During this entire period CSG's research has been directed toward creating tools for both application builders and end users in the educational community. The direction of this research has evolved as the needs of these groups have changed. The research has often resulted in practical and usable software systems that have attracted the attention of business and government as well as the educational community; as a result many software development tools from CSG have been distributed world-wide.

CSG research has focused on extensions to existing tools and computer technologies such as operating systems, languages, relational databases or graphical user interfaces (GUIs). This is the direction of the current research, extending these base technologies with software tools while remaining consistent with both current accepted and informal "standards".

The current research program is directed toward the design and creation of components for the building of intelligent software tool sets and to domain-specific tools in: graphical user interfaces, document processing, and document databases. The approaches taken in these areas contain a number of common elements.

The research program on design and creation of components for the building of intelligent software tool sets is focusing on the following specific areas:

  • finding methods to integrate existing application software and graphical user interfaces into new task-specific applications,
  • creating techniques for defining megaobjects for specific application areas,
  • creating tools for technical end-users to "program" new applications from existing applications and GUIs,
  • and creating tools that will allow end users to produce applications by demonstration.

The research program is currently concentrating on the first two items in the previous list, by investigating languages and prototyping some megaobjects.

Writing applications that are easily moved or retargeted to various computer platforms with different graphical user interfaces (GUIs) is a complex task. Yet this concept is important for the application builder, as it is not likely to be clear for many years whether one or two GUIs will survive and become industry "standards" or whether the growth in GUIs will continue because of new developments in human-computer interfaces. The research in this area focuses on providing the application builder with a single user interface abstraction that maps into most of the popular GUIs including Presentation Manager, the MacIntosh Toolbox, Microsoft Windows 3.0, OSF Motif, and OpenLook. The user interface abstraction will be designed to remove all GUI-dependent information from the application so that it can be moved with minimal code changes. Current research results indicate that this approach will be quite successful. As part of this research program we are also investigating programming paradigms that are related to object-oriented programming and which should help to partition applications more easily into GUI-dependent and GUI-independent components.

The use of markup or tagging languages such as SGML for documents has created many interesting research problems. These are being addressed in the research program on document processing and document databases. Markup languages allow the separation of structure and content from appearance, thus allowing the author to concentrate on content while a document expert provides standard layouts. Using a markup language forces the author to remember a large set of tags and their correct placement. Ongoing research into syntax-directed editors that guide the author in the correct placement of document tags has produced the Rita editor, which assists the author in producing tagged documents in SGML.

Identifying structural components in documents with tags from a markup language provides extra keys on which to store and search documents. CSG is investigating storing documents and their associated tags in a relational database and using SQL as the retrieval language. The concept of using a relational database for documents has been tried previously, but this was before markup languages were used for document processing. Initial results indicate that this technique may be successful. Such an approach would be quite advantageous since corporations would only need to maintain a single database system for both structured and document data.

Although these research projects on tools appear to be quite disparate, there are many common threads. The most significant is the use of markup languages for various descriptive tasks within the various projects. Markup languages, although limited, offer the ability to describe many different types of objects encountered in building tools. Almost as significant is the single user interface abstraction, which allows us to retarget various tools to several different computing platforms, thus clarifying our design approach for both the abstraction and the tools.

The Computer Systems Group has produced a large number of high-quality software tools primarily designed to support educational computing. Students are constantly learning new languages and computing techniques, and so there is a need to process a student job quickly, produce clear error diagnostics, and provide easy and frequent access to the computer. For these reasons CSG has concentrated on research in high-speed compilers with good error diagnostics, interactive editors, interactive programming systems, operating systems and local area networks. This research has often resulted in useful and usable software systems that have also proven to be valuable in industrial software development.

Translators for the programming languages BASIC, C, COBOL (WATBOL), FORTRAN (WATFOR and WATFIV), Modula-2, Pascal, and Prolog have been created as well as the local area networks Waterloo JANET and MacJANET and a text formatter for the SCRIPT text markup language. While writing this software the Computer Systems Group has developed a software engineering facility that incorporates many advanced software engineering techniques including software portability and reusability. Such a facility allows both the development of portable software, which can easily be made available on multiple computer systems, and the fast prototyping of new software systems. These techniques have allowed the Computer Systems Group to make many of these software systems available for mainframes, minicomputers and microcomputers from several manufacturers, including IBM, DEC, Hewlett Packard, Commodore, and Apple.

This software, which was designed originally to solve educational problems at the University of Waterloo, has been adopted by over 3000 educational, government and business establishments in more than 40 countries.

Over the years the Computer Systems Group has had joint research arrangements with many Canadian and international companies including: Apple (Canada and U.S.), Bell, Commodore (Canada), DEC (Canada and U.S.), Hewlett Packard (Canada), IBM (Canada, U.S. and Japan), The Mutual Group (Canada), Toshiba (Canada), and WATCOM (Canada).

The long-term goals of the Computer Systems Group are to continue investigating and creating tools for application builders, technical end-users, and end users, with a view to making all these groups more productive. The next decade of research in the area of tool building will be very exciting with the advent of new programming paradigms such as object-oriented computing. Progress in computing has been primarily laying the foundations for what we envision as a quantum leap in the ability to build new and powerful tools.