=============================== ABSTRACTS OF TECHREPORTS 1994 =============================== PROG - TECHREPORTS ------------------ #Reference: vub-prog-tr-94-01 "Compressing Sparse Tables using a Genetic Algorithm" Karel Driesen Published in GRONICS'94 proceedings #Abstract: A genetic algorithm is applied on a sparse table compression technique. The latter takes the form of a variant of the knapsack problem. Since this problem is NP-complete, weak search strategies are promising in giving acceptable solutions in general. The genetic algorithm, with carefully constructed genotype and genetic operators, shows good performance on random samples. #Keywords: #Reference: vub-prog-tr-94-02 "A Generic, Customisable, Hybrid Structure-Oriented Editor" Koen De Hondt Published in GRONICS'94 proceedings #Abstract: After a brief evaluation of some design choices of existing structure-oriented editors, several design aspects of the Agora Structure Editor (ASE) are discussed. In the design of ASE ergonomics has played a very important role. This contrasts strongly with existing systems, which seem to neglect it altogether. #Keywords: Agora, structure-oriented editing, programming environments #Reference: vub-prog-tr-94-03 "Encoding Conceptual graphs by Labeling RAAM" M. de Gerlache, A. Sperduti, A. Starita Published in ICAAN'94 #Abstract: The meaning of medical texts is not automatically recognized by computers. A representation of this information is strongly recommended to allow medical texts databases queries. The conceptual graph formalism developed by Sowa is a knowledge representation lagnguage initially designed to capture the meaning of natural language. Conceptual graphs have been used in many natural language understanding works [see ref. in the paper]. In this paper we discuss the possibility to memorize and retrieve natural language sentences and especially medical language sentences given in this kind of formalism with the use of the LRAAM model developed by A. Sperduti. #Keywords: #Reference: vub-prog-tr-94-04 "Using Labeling RAAM to Encode Medical Conceptual graphs" M. de Gerlache, A. Sperduti, A. Starita Published in NNESMED'94 proceedings #Abstract: We present a neural network based approach to the extraction of information from a medical database. Medical copncepts are encoded by using conceptual graphs, which have been demonstrated useful for this purpose. The medical conceptual graphs are encoded into a particular neural network architecture,i.e., the Labeling RAAM, which allows the processing of structures both using pointers (reduced descriptors) and by content. Associative queries to the database are implemented by Generalized Hopfield networks, which are generated "on the fly" by opportunely composing the weights of the LRAAM. Complex concepts are retrieved starting from basic or partial concepts conveyed by medical sentences. #Keywords: #Reference: vub-prog-tr-94-05 "Agora: Message Passing as a Foundation for Exploring OO Language Concepts" Wim Codenie, Koen De Hondt, Theo D'Hondt, Patrick Steyaert Published in SIGPLAN Notices, December 1994 #Abstract: Agora is a framework for exploring object-oriented languages. In this paper we will discuss a particular prototype-based instance of Agora that features a general mixin-based approach to (multiple) inheritance. One of the major innovations of Agora is that many important features of object-orientation including inheritance, slot access, reification, cloning and inline objects are introduced by means of message passing rather than by ordinary programming structures. The syntax and semantics of Agora is explained and illustrated with examples. Furthermore, an FTP-site is given where a Smalltalk implementation of Agora can be found. #Keywords: Agora, Object-orientation #Reference: vub-prog-tr-94-06 "A Layered Approach to Dedicated Application Builders Based on Application Frameworks" Patrick Steyaert, Koen De Hondt, Serge Demeyer, Marleen De Molder Published in OOIS'94 Proceedings #Abstract: In this paper we investigate what is needed to make user interface builders incrementally refinable. The need for dedicated user interface builders is motivated by drawing a parallel with programming language design and object-oriented application frameworks. We show that reflection techniques borrowed from the programming language community can be successfully applied to make user interface builders incrementally refinable. #Keywords: User Interfaces, User Interface Builder, Object-oriented Framework, Reflection #Reference: vub-prog-tr-94-07 "Modular Inheritance of Objects Through Mixin-Methods" Carine Lucas, Patrick Steyaert Published in JMLC'94 Proceedings #Abstract: In object-oriented programming languages the class concept is heavily overworked. To simplify things, there is a tendency to unbundle the different roles they play by trying to create more modular inheritance operators [Bracha&Lindstrom92]. This offers the advantage that classes can be composed in a modular way. Prototype-based languages on the other hand, also provide a simpler view on object-oriented programming, but there modular composition is totally neglected. We introduce a generalisation of mixin-based inheritance that combines the advantages of both classes and prototypes. Mixin-methods introduce modular composition in prototype-based languages. #Keyword Codes: D.1.5, D.3.2, D.3.3 #Keywords: Object-oriented Programming, Language Classifications, Language Constructs and Features #Reference: vub-prog-tr-94-08 "An Informal Tour On Denotational Semantics" Wolfgang De Meuter, Niels Boyen Unpublished #Abstract: This paper presents a semi-formal overview of the most important topics from the theory of denotational semantics. The emphasis has been laid on the natural introduction of most concepts of the semantic realm. Since this theory is usually hard to understand and accept in a seemingly intuitive discipline as computer science, we try to introduce them from a computer scientist point of view. By this, we mean that most mathematical constructions will be presented in a manner as if they were trivially connected to reasoning about real computer programs. One of the most important intentions of this paper is to give the reader a brief overview of the existing results, while laying adequate pointers to relevant literature. We hope that the way in which the material is presented, will contribute to the popularization of semantics theory. #Keywords: denotational semantics, domain, state, continuations #Reference: vub-prog-tr-94-09 "Continuation-Passing-Style as an Intermediate Representation for Compiling Scheme" Kris De Volder Published in "GRONICS-94 Proceedings" (CS-N 9401 University of Groningen) #Abstract: This paper describes the implementation of a small experimental Scheme compiler, using Continuation Passing Style (cps) as an intermediate representation for the source code. cps is a form of code that makes control flow and control information explicit. This, in combination with a solid theoretical basis (lambda-calculus) makes it an excellent medium for representing intermediate code. #Keywords: continuation, compiler, compilation, Scheme, continuation-passing-style #Reference: vub-prog-tr-94-10 "Virtual Hypertext based on Paths and Warm Links" Serge Demeyer Unpublished #Abstract: Throughout the last years a huge amount of work has been devoted to the definition of hypertext models. Even more resources have been directed towards the domain of virtual (dynamic/ computational) hypertext, among others motivated by the idea of building open systems. Surprisingly enough, almost nobody stressed the role of the underlying model in such virtual systems. That is precisely the aim of this text: to define a general hypertext model that is able to support the notion of virtuality. Our assertion is that the combination of the ancient concepts 'Paths' and 'Warm Links' provide just the extra support needed. Moreover this allows for a model where links are but one of the possible ways to relate nodes. While experimenting with the model, an interesting question arose: do bi-directional links fit into a virtual modelÊ? This paper attempts to answer the question. We chose a constructive approach, because our aim was to create a laboratory where ideas concerning virtual hypertext might be explored. We applied recent viewpoints from the field of software engineering (namely object oriented frameworks and mixins) to assist the iterative design process. In order to show the value of the work, we have implemented two prototype applications. The first is a browser for viewing (Smalltalk) source code which includes query facilities, the second is an electronic agenda. These experiments demonstrate three desired properties of the model: the applicability (considering the differences between the prototypes), the open endedness (since it is able to establish hypertext structures on top of underlying foreign constructions) and the extensibility (while building the applications, we continued to expand the model). #Keywords: Virtual Hypertext, Open Hypertext, Extensible Architecture for Hypertext, Path, Warm Links #Reference: vub-prog-tr-94-11 "Techniques For Building Open Hypermedia Systems" Serge Demeyer Presented at the first workshop on open hypermedia systems (Edingburg, UK Ñ 1994) #Abstract: This paper describes a methodology the authors found very useful in the development of open systems for object-oriented languages, user- interface builders and hypermedia. We promote the idea of "open designs" as being a key factor for success and discuss software engineering techniques useful in implementing such designs. #Keywords: Hypermedia, Open hypermedia systems, Open Implementation, Open Design. #Reference: vub-prog-tr-94-12 "Generalised Mixin-based Inheritance to Support Multiple Inheritance" Niels Boyen, Carine Lucas, Patrick Steyaert Presented through a poster session at OOPSLA '94 #Abstract: The semantics of multiple inheritance is still very much a subject of debate. Before a clearer view on the issue is obtained, multiple inheritance will not enjoy wide-spread use. As stated by Alan Snyder in [Shan&al.93] "it is easy to design a multiple inheritance model that supports any given example; it is not clear how to design one that supports new examples". We argue that it is possible to construct a simple, comprehensible, and general multiple inheritance mechanism. This is achieved by fragmenting the functionality of multiple inheritance. For this purpose a generalised form of mixin-based inheritance is introduced. We show that these generalised mixins are exactly the right building blocks, and provide exactly the right balance between exposure and encapsulation of inheritance to express multiple inheritance hierarchies. #Keywords: Object-oriented Programming, Mixins, Languages =============================================================================== TINF - TECHREPORTS ------------------ #Reference: vub-tinf-tr-94-01 "An Introduction to Polymorphic Lambda Calculus with Subtyping" Kim Mens Unpublished #Abstract: In this paper, an elaborate overview is presented of several extensions of standard lambda calculus. We start out with a description of untyped lambda calculus. Then we add explicit types and show how polymorphism can be introduced. Next we give a description of a higher-order polymorphic typed lambda calculus. In this system (called F-omega) types, type constructors, constructors of type constructors and so on can all be considered as first class values. The system can still be augmented with a notion of subtyping, yielding system F-omega-sub. The importance of F-omega-sub lies in its ability to model a variety of fundamental concepts of object oriented programming. To facilitate this description of object oriented features some further extensions are sometimes made. More specifically, records are often introduced to model objects, existential quantification to model encapsulation, and recursive types to model late binding of self. #Keywords: types, lambda calculus, polymorphism, type constructors, kinds, subtyping, records, universal quantification, existential quantification, recursive types #Areas: lambda calculus, typing, models for object oriented programming #Reference: vub-tinf-tr-94-02 "OPUS: a Formal Approach to Object-Orientation" Tom Mens, Kim Mens, Patrick Steyaert Published in FME '94 Proceedings #Abstract: OPUS is an elementary calculus that models object-orientation. It expresses in a direct way the crucial features of object-oriented programming such as objects, encapsulation, message passing and incremental modification. This is illustrated by numerous examples. Thanks to the way objects are constructed in this calculus, we can deal with self-reference, recursion and even mutual recursion in a straightforward way. We also illustrate that it is relatively easy to model different kinds of inheritance mechanisms. Finally, we argue to which extent our calculus can be used for modeling and investigating object-oriented concepts. #Keywords: Formal Calculus, Encapsulation, Inheritance, Incremental modification, OO model, Recursion, Object-Orientation #Areas: Linking Formal and Informal Methods, Object-Orientation #Reference: vub-tinf-tr-94-03 "A survey on formal models for OO" Tom Mens Unpublished #Abstract: In this text, an overview is presented of different kinds of formal models for OO that have been proposed over the years. We discuss both concurrent and sequential models. Within the realm of sequential models we make a distinction depending on whether the formalisms are based on lambda-calculus or not. #Keywords: formal model, calculus, object orientation, concurrency #Reference: vub-tinf-tr-94-04 "OPUS: a Calculus for Modelling Object-Oriented Concepts" Tom Mens, Kim Mens, Patrick Steyaert Published in OOIS '94 Proceedings #Abstract: We propose a very concise calculus for modelling object-oriented concepts such as objects, message sending, encapsulation and incremental modification. We show how to deal with recursion and provide some object-oriented examples. State and encapsulated inheritance are modelled by means of an incremental modification operator. #Keywords: calculus, encapsulated objects, message sending, incremental modification, encapsulated inheritance #End ABSTRACTS OF DISSERTATIONS 1994 ------------------------------- #Reference: vub-prog-phd-94-01 "Open Design of Object-Oriented Languages, A Foundation for Specialisable Reflective Language Frameworks" Patrick Steyaert PhD thesis 1994, unpublished #Abstract: This thesis develops an open design of a reflective object-oriented programming language. The focus of the thesis is on how programming language concepts, rather than mere implementations thereof, can be made explicit for refinement, extension and recombination in their fullest abstract form. Therefore a mixture of techniques is studied. For the particular case of developing an open design for an object-oriented language, we look at object-oriented frameworks and how they can be used to make explicit the major design issues of a programming language. Emphasis is put on those specialisations of a framework that respect the design of the framework. In particular, concretisation into a computational system and, additionally, refinement and extension of a framework are discussed. The notions of full abstraction and compositionality are adopted from programming language semantics to judge whether programming language concepts are represented in their fully abstract form in the framework. The notion of reflection is studied in order to make the open design self-contained. As a case study, a two layered framework is developed in which two object-oriented languages are expressed. The first language (Simple) is an object-based programming language. Its semantics is given by a calculus for objects. The second language (Agora) is an object-oriented programming language that features a generalised form of mixin-based inheritance. Simple is defined in the context of a framework that essentially features encapsulated polymorphic objects that accept a well defined set of messages. For the definition of Agora it is shown that a layer can be added to the framework to include the generalised form of mixin-based inheritance. Descriptions of extensions to Agora are given. Among others, extensions are described that allow flexible, controllable and dynamic construction of multiple inheritance hierarchies. In a final stage the framework is extended with reflection. The link between open systems and reflection is studied. Open designs and linguistic symbiosis replace the conventional meta-circular interpreters in the account of reflective systems presented in the dissertation. It is concluded that systems with an open design form an excellent basis for the definition of reflective systems. Moreover it is concluded that they are an important step in the demystification of reflection. #Keywords: Object-orientation, reflection, Agora #End