ContactPerson: tambay@cse.buffalo.edu Remote host: pollux.cse.buffalo.edu ### Begin Citation ### Do not delete this line ### %R 2003-01 %U /projects/tambay/CobManual/manual.pdf %A "Tambay P. %A Jayaraman B." %T The Cob Programmer's Manual %D February 05, 2003 %I Department of Computer Science and Engineering, SUNY Buffalo %K Constrained Objects, Constraints, Logic Programming, Object-Oriented, Modeling %Y Languages %X Cob is a programming language and execution environment based on the concept of constrained objects for compositional and declarative modeling of engineering structures. A constrained object is an object whose internal state is governed by a set of (declarative) constraints. When several constrained objects are aggregated to form a complex object, their internal states might further have to satisfy interface constraints. The resultant behavior of the complex object is obtained by logical inference and constraint satisfaction. For the domain of engineering modeling, the paradigm of constrained objects is superior to both a pure object-oriented language as well as a pure constraint language. While the concept of an object and its attributes capture the structural aspects of an engineering entity, the concept of constraint captures its behavioral properties. Our current prototype includes tools for authoring constrained-object class diagrams; a compiler that translates class diagrams to CLP(R) code; and domain-specific visual interfaces for building and testing constrained objects. This manual describes version 1.0 of the Cob programming language.