This paper describes the OPLA language, an object-oriented (OO) logic programming language layered on Common Lisp Object System. OPLA allows the benefits of the OO approach to the design, organization and realization of large logic programs thanks to an OO programming environment. Thanks to a deep link with the underlying CLOS language, OPLS offers important features of the OO paradigm, such as multiple inheritance, multi-methods (multi-argument discrimination) and constraint-based control flow mechanism. These characteristics play an important role in OO Prolog programming, improving the readability of the code and augmenting the maintainability of the applications. This paper presents the OPLA language and some experiences resulting from the design and implementation of graphic interfaces which have been realized in OPLA itself. The OPLA programming style facilities the management of some difficult problems which are basic issues of user-interface development, such as the management of graphical constraints on windows, the distinction of specifying the graphics of objects from their behaviour, and law-based delegation. The implementation methodology which was adopted to realize the bulk of the OPLA system is completely independent of hardware constraints; it exploits an incremental, abstract implementation technique based on a high-level generator mechanism. Our approach has been evaluated both in terms of software design and in terms of overall performances. The novel features of OPLA are quantitatively discussed by reporting their impact in the realization of the significant applications.
File in questo prodotto:
Non ci sono file associati a questo prodotto.