UWSpace
UWSpace is the University of Waterloo’s institutional repository for the free, secure, and long-term home of research produced by faculty, students, and staff.
Depositing Theses/Dissertations or Research to UWSpace
Are you a Graduate Student depositing your thesis to UWSpace? See our Thesis Deposit Help and UWSpace Thesis FAQ pages to learn more.
Are you a Faculty or Staff member depositing research to UWSpace? See our Waterloo Research Deposit Help and Self-Archiving pages to learn more.

Communities in UWSpace
Select a community to browse its collections.
- The University of Waterloo institution-wide UWSpace community.
Recent Submissions
Item type: Item , The maximal path length of binary trees(University of Waterloo, 1991-10) Cameron, Helen; Wood, DerickWe further refine the bounds on the path length of binary trees of a given size by considering not only the size of the binary tree, but also its height and fringe thickness (the difference between the length of a shortest root-to-leaf path and the height). We characterize the maximum path length binary trees of a given height, size, and fringe thickness. Using this characterization, we give an algorithm to find the maximum path length binary trees of a given size and fringe thickness.Item type: Item , A constraint-based approach to dynamic colour management for windowing interfaces(University of Waterloo, 1991-10) MacIntyre, BlairSelecting harmonious colours for traditional window systems can be a difficult and frustrating endeavour. At the root of this problem is the fact that typical window systems do not allow abstract properties of colour to be specified. Instead, they insist that users specify individual colour values exactly. When many colours are used, the value of each colour must be chosen to satisfy any relationships that exist between it and previously chosen colours. Unfortunately, the difficulty of colour selection often prevents users from taking full advantage of the functional benefits of colour, particularly that of resolving context. A more desirable approach is to allow the aesthetic and functional properties of colours to be specified and to allow users to select values for the colours they wish. The window system can choose the remaining colours using these properties. Another failing of typical window systems is that once a colour value has been determined it will not change without explicit direction from the user. When windows open or close the factors which motivated a choice of colour value may change. Unfortunately, if the user wishes the chosen colour value to change as the environment changes, he or she must typically perform the modifications. A dynamic window system assists the user in making these choices. By specifying colour properties as constraints, a dynamic window system can adjust colour values as the environment changes, to satisfy these constraints. The potential problems with dynamic window systems incorporating colour constraints are investigated in this thesis. An implementation that uses a distributed, jostling, constraint-solver based on a simple dynamical system shows that this approach is possible.Item type: Item , uC++ annotated reference manual (preliminary draft)(University of Waterloo, 1991-10) Buhr, P. A.; Stroobosscher, R. A.The goal of this work is to introduce concurrency into the object-oriented language C++ [Str91]. To achieve this goal a set of important programming language abstractions were adapted to C++, producing a new dialect called {mu}C++. These abstractions were derived from a set of design requirements and combinations of elementary execution properties, different combinations of which categorized existing programming language abstractions and suggested new ones. The set of important abstractions contains those needed to express concurrency, as well as some that are not directly related to concurrency. Therefore, while the focus of this work is on concurrency, all the abstractions produced from the elementary properties are discussed. While we are implementing our ideas as an extension to C++, the requirements and elementary properties are generally applicable to other object-oriented languages such as Eiffel [Mey88], Simula [Sta87] and Smalltalk [GR83]. This manual does not discuss how to use the new constructs to build complex concurrent systems. The manual is strictly a reference manual for {mu}C++. A reader should have an intermediate knowledge of control oow and concurrency issues to understand the ideas presented in this manual as well as some experience programming in C++.Item type: Item , uSystem annotated reference manual version 4.4(University of Waterloo, 1991-10) Buhr, P. A.; Macdonald, H. I.; Stroobosscher, R. A.The goal of this work was to introduce concurrency into the language C. To achieve this goal a set of library routines and definitions were created in C. The set of routines and definitions contains those needed to express concurrency, as well as some that are not directly related to concurrency. Therefore, while the focus of this work is on concurrency, all the abstractions produced from the routines and definitions are considered important. This manual does not discuss how to use the new constructs to build complex concurrent systems. The manual is strictly a reference manual for the {mu}System definitions. A reader should have an intermediate knowledge of control oow and concurrency issues to understand the ideas presented in this manual as well as some experience programming in C. This manual contains annotations set off from the normal discussion in the following way.Item type: Item , Pm numbers, ambiguity, and regularity(University of Waterloo, 1991-09) Cameron, Helen; Wood, DerekWe introduce the pseudo-m-ary (Pm) number system in which numbers are represented by sums of the form Zi>oai(mi+1=1). We characterize the Pm representations that are produced by the greedy algorithm and show that they form a regular set. In addition, we show that the set of Pm representations that are the sole representations for their corresponding numbers is also a regular set.