ContactPerson: bharat@cse.buffalo.edu Remote host: castor.cse.buffalo.edu ### Begin Citation ### Do not delete this line ### %R 2004-04 %U /projects/tambay/Drafts/PPDP2003/paper.ps %A Tambay P. and Jayaraman B. %T Implementation Techniques for Constrained Objects %D February 29, 2004 %I Department of Computer Science and Engineering, SUNY Buffalo %K constraints, objects, translation, partial evaluation, debugging, constraint satisfaction %X This paper presents the implementation of constrained objects. A constrained object is an object whose attributes are subject to constraints. When a constrained object aggregates other objects, it may impose further constraints on the attributes of these objects. As shown in a recent paper, this programming paradigm is very useful for modeling various systems, especially in the engineering domain. Here, a constraint may be simple, quantified, conditional, or non-linear. A constrained object (Cob) program consists of Java-like class definitions except that methods are replaced by constraints. These constraints may also refer to user-defined CLP-like predicates. Hence our implementation is based on a translation from Cob classes to CLP predicates. Execution of the translated CLP predicates will not yield adequate performance for large-scale systems. Hence we develop a partial execution technique for optimized code generation. This approach also enables developing a visual debugger for Cob programs and also interfacing with a system such as Maple for solving non-linear constraints. The paper presents the syntax and examples of Cob programs, and the scheme for translation and partial execution. The techniques described in this paper have been implemented.