next up previous
Next: Elaboration of Hooks Up: Programming Language Support Previous: Generic Functions in


  It is also relevant to discuss open points in relation to HyperTalk [2]. HyperTalk is the underlying programming language of HyperCard [1], which is a hypermedia application on the Macintosh. HyperTalk is an interpreted language. Pieces of HyperTalk program are attributes of cards and other elements, which are structured in a hypertext web. As a consequence of both the orientation towards interpretation and the flexible structuring, HyperTalk is a dynamic and incremental environment.

HyperTalk is object-oriented in the sense that messages are the basic initiators of actions. The objects manipulated by HyperCard include buttons, cards, and stacks of cards. The objects are organized according to a system-defined hierarchy of concepts. As a result of interacting with HyperCard, one or more system messages are sent to the collection of objects in the system. The receiver is the most specific of the objects (relative to the hierarchy) that has a handler for the event, which caused the message.

Any HyperTalk program contains a variety of open points. An open point is defined by a documented system message. It is, for instance, advertised that the mouseEnter message is ``sent to a button as soon as the mouse pointer is moved within its rectangle''; and the newCard message is ``sent to a card as soon as it has been created'' [2]. An open point in HyperTalk is bound by defining a message handler in an object. Due to the incrementality of the HyperTalk programming environment, the system supports late binding of open points. The open points can, in the same way as in Smalltalk, be bound to defaults by defining handlers at a relatively general level in the hierarchy.

In conclusion we find that the mechanisms in HyperTalk represent a rather full-fledged realization of open points.

Kurt Noermark
Wed Mar 6 09:44:24 MET 1996