Graduation date: 1995Multiparadigm languages are languages that are designed to support more than\ud one style of programming. Leda is a strongly-typed multiparadigm programming\ud language that supports imperative, functional, object-oriented, and logic programming.\ud The constraint programming paradigm is a declarative style of programming\ud where the programmer is able to state relationships among some entities and expect\ud the system to maintain the validity of these relationships throughout program execution.\ud The system accomplishes this either by invoking user-defined fixes that impose\ud rigid rules governing the evolution of the entities, or by finding suitable values to\ud be assigned to the constrained entities without violating any active constraint. Constraints,\ud due to their declarative semantics, are suitable for the direct mapping of the\ud characteristics of a number of mechanisms including: consistency checks, constraint-directed\ud search, and constraint-enforced reevaluation, among others. This makes\ud constraint languages the most appropriate languages for the implementation of a\ud large number of applications such as scheduling, planning, resource allocation, simulation,\ud and graphical user interfaces.\ud The semantics of constraints cannot be easily emulated by other constructs\ud in the paradigms that are offered by the language Leda. However, the constraint\ud paradigm does not provide any general control constructs. The lack of general control\ud constructs impedes this paradigm's ability to naturally express a large number\ud of problems. This dissertation presents the language Electra, which integrates the\ud constraint paradigm into the language Leda by creating a unified construct that\ud provides the ability to express the conventional semantics of constraints with some\ud extensions. Due to the flexibility of this construct, the programmer is given the\ud choice of either stating how a constraint is to be satisfied or delegating that task to\ud the constraint-satisfier. The concept of providing the programmer with the ability to\ud express system-maintained relations, which is the basic characteristic of constraints,\ud provided a motivation for enhancing other paradigms with similar abilities. The\ud functional paradigm is extended by adding to it the mechanism of condition-based\ud dispatching which is similar to argument pattern-matching. The object-oriented\ud paradigm is extended by allowing feature exclusion which is a form of inheritance\ud exception. This dissertation claims that the integration provided by the language\ud Electra will enable Leda programmers to reap the benefits of the paradigm of constraints\ud while overcoming its limitations
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.