Aliasing has been a problem in both formal verification and practical programming for a number of years. To the formalist, it can be annoyingly difficult to prove the simple Hoare formula {x = true} y := false {x = true}. If x and y refer to the same boolean variable, i.e., x and y are aliased , then the formula will not be valid, and proving that aliasing cannot occur is not always straightforward. To the practicing programmer, aliases can result in mysterious bugs as variables change their values seemingly on their own. A classic example is the matrix multiply routine mult(left, right, result) which puts the product of its first two parameters into the third. This works perfectly well until the day some unsuspecting programmer writes the very reasonable statement mult(a, b, a). If the implementor of the routine did not consider the possibility that an argument may be aliased with the result, disaster is inevitable.
Abstracr-Message systems send and receive messagesbut do not manage the information the messages contain. Database management systems manage the information of a global database but do not have a notion of address. In this paper we outline a prototype system which integrates the facilities of message systems and database management systems. The system manages structured messages according to their contents. The messages can be stored within a station and transferred between stations. Information present in the messages can be queried in a distributed manner. Message structure can also be exploited by automatic procedures which recognize triggering conditions and perform user specified actions.
Functions that are guaranteed not to have side effects are common in modern procedural languages, but not in object-oriented languages. Certain types of state changes are essential in object functions; the difficulty lies in permitting these while banning undesirable side effects. A simple way of doing this is presented.Using this as a base, we can introduce islands of objects which can statically ensure nonaliasing properties in a very non-restrictive way. Islands make construction of opaque object components more practical.They also make formal treatment of object behaviour more feasible, since the object structures they encompass can be truly opaque to their clients.
While there are many difficulties in computerizing office tasks, two of the major ones are a lack of appropriate end-user facilities for specifying office tasks and inadequate system-level support for managing office tasks. We are investigating these two issues within the Office Task Manager (OTM) project at the University of Toronto. To address the user-level aspects of specifying office tasks, we believe that a programming-by-example approach to office task specification holds much promise for providing office workers with facilities to help them computerize their own office activities. We outline our approach to such a facility in this paper. To address the system-level aspects of managing office tasks, we believe that object-oriented environments, because of their ability to combine data and operations on the data, can provide the support required for managing office tasks. In this paper, we also outline how office data and tasks are encoded and managed as objects. Initially, we are addressing the problem of supporting structured office tasks and our approach to this problem is the emphasis of this paper.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.