Integration of Macros and Constraints in Editors

Integration of Macros and Constraints in Editors

Takashi Hattori

WISS'96 発表予定. 日本ソフトウェア科学会, December 1996.


概要

The executable constraint is proposed to maintain relations among objects intended by the user during editing. It is basically a sequence of editing operations defined by demonstration, just like a macro operation. It can have side effect such as creation of a new object. The operation sequence is automatically executed when necessary, where its semantics as a constraint is that the result is a fixed-point of the operations. Every executable constraint has a partially ordered priority which is used to select one among several executable constraints competing with each other. An executable constraint can have a condition to be satisfied and may avoid execution of another executable constraint if its result fails to satisfy the condition. The condition, together with priorities, allows to select the most adequate executable constraint in the current situation. The priorities are inferred from the user's response to the output of the system. A user-extensible graphic editor utilizing executable constraints is also described.