@techreport{MaSc92, author = {Matthes, F. and Schmidt, J.W.}, institution = hbg-info, key = {MaSc92}, month = oct, number = {062-92}, title = {Definition of the Tycoon Language - A Preliminary Report}, type = {DBIS Tycoon Report}, year = {1992}, documentdirectory = {1992/MaSc92}, abstract = {This document defines the language TL that is used as the application and system programming language in the Tycoon database environment. The Tycoon project follows an add-on approach to generic database programming that emphasizes type-safe system scalability and extensibility.\\ TL is a polymorphic higher-order functional language with imperative features and inductively defined subtyping rules over types and type operator, extended by language constructs motivated by the needs of database programming.} } @inproceedings{MaSc93a, author = {Matthes, F. and Schmidt, J.W.}, booktitle = {Proceedings of Euro-Arch'93 Congress}, key = {MaSc93a}, month = oct, publisher = springer, title = {System Construction in the Tycoon Environment: Architectures, Interfaces and Gateways}, year = {1993}, documentdirectory = {1993/euro-arch/MaSc93a}, abstract = {This paper outlines the basic concepts and the system architecture of the Tycoon environment. Tycoon is designed for the construction of persistent object systems intended to be available on multiple software and hardware platforms.\\ Tycoon's contribution to system portability and scalability is achieved by strictly separating concerns of data modelling, data manipulation, and data storage into three distinct system layers each of which is based on state-of-the-art system technology (polymorphic programming languages, portable code representations, persistent object stores). Much emphasis is being placed on supporting interoperability between Tycoon applications and off-the-shelf tools and systems, such as database systems, user interface managers, and optimizing code generators.\\ We illustrate how higher-order functions, polymorphic typing and transparent persistence management reduce the amount of repetitive and type-unsafe programming in typical persistent object systems.} } @techreport{GaMa94, author = {Gawecki, A. and Matthes, F.}, institution = hbg-info, key = {GaMa94}, month = aug, number = {FIDE/94/100}, title = {The Tycoon Machine Language TML: An Optimizable Persistent Program Representation}, type = {FIDE Technical Report}, year = {1994}, documentdirectory = {1994/GaMa94}, abstract = {This document provides a brief overview of the Tycoon Machine Language TML which is used as a persistent intermediate program representation within the Tycoon system. TML representations of Tycoon programs provide the basis for extensive tree analysis and rewriting aiming at various optimizations which are independent of source languages and target machines. \\ TML representations are used for both static (compile-time) and dynamic (runtime) optimizations. Dynamic optimizations are of particular importance for performance improvement of large and modular programs. \\ TML is based on Continuation Passing Style (CPS), a powerful yet simple program representation technique developed as a framework for optimizing compilers. The advantage of CPS lies in the significant reduction in number of program constructs to be handled by the Tycoon static and dynamic (reflective) optimizer. \\ We propose that in modern persistent data-intensive applications traditional database query optimization be integrated into a more generalized framework for extensive program analysis and transformation.} } @book{Matt93, author = {F. Matthes}, key = {Matt93}, publisher = springer, title = {Persistente Objektsysteme: Integrierte Datenbankentwicklung und Programmerstellung}, year = {1993}, documentdirectory = {}, abstract = { Unter dem Begriff der Persistenten Objektsysteme werden komplexe Anwendungen zusammengefa{\ss}t, die aufgrund ihrer langen Lebensdauer, ihrer N\"ahe zu Endbenutzern und ihrer Sicherheitsanforderungen auf ein hohes Ma{\ss} an Unterst\"utzung durch externe Diensterbringer angewiesen sind. Beispiele kommerzieller Diensterbringer sind Objektspeicher, Transaktionsmonitore, Datenbanksysteme, Generatoren f\"ur graphische Benutzerschnittstellen oder generische Dienste zur Kommunikation zwischen verteilten Objekten. Bislang sind derartige Diensterbringer weitgehend unabh\"angig voneinander entwickelt worden und k\"onnen nur \"uber historisch gewachsene, schmale Schnittstellen miteinander kommunizieren.\\ Die Qualit\"at zuk\"unftiger persistenter Objektsysteme wird jedoch entscheidend durch die Flexibilit\"at, Effizienz und Korrektheit im Zusammenspiel der Objekte dieser verschiedenartigen generischen Dienste und weniger durch die Leistungsf\"ahigkeit einzelner isolierter Systemkomponenten bestimmt.\\ In diesem Buch wird im Detail die persistente polymorphe Programmierumgebung Tycoon (Typed communicating objects in open environments) beschrieben, die eine Verbesserung der Qualit\"at persistenter Objektsysteme dadurch erreicht, da{\ss} der Anteil der stereotypen, untypisierten Programmiert\"atigkeiten erheblich reduziert werden kann (verglichen etwa mit C, Modula-2 oder C++ L\"osungen).\\ Konkret bietet das Tycoon System spezielle sprachliche und architekturelle Unterst\"utzung f\"ur die vollst\"andig transparente Verwaltung langlebiger Daten- und Programmobjekte, die mengenorientierte Verarbeitung (benutzerdefinierter) Kollektionen, die Implementierung generischer Bibliotheken und die typsichere Anbindung externer Systemsoftware (z.B. SQL Datenbanken oder Fenstersysteme).\\ Das Buch beschreibt die zentralen Komponenten des Tycoon Systems nicht nur aus der Sicht des programmierenden Anwenders, sondern vermittelt auch Einblicke in die interne Systemarchitektur sowie die Algorithmen und Formalismen zur Analyse und \"Ubersetzung generischer persistenter Programme. Schlie{\ss}lich enth\"alt der Text substantielle Beispiele f\"ur die Konstruktion generischer Bibliotheken und Beispiele objekt-orientierter, funktionaler und relationaler Programmiertechniken in Tycoon.} } @inproceedings{MeLa93, author = {Merz, M. and Lamersdorf, W.}, booktitle = {IFIP Workshop on Interfaces in Industrial Systems for Production and Engineering}, key = {MeLa93}, month = mar, title = {Generic Interfaces to Remote Applications in Open Systems}, year = {1993}, keywords = {Distributed Systems, Communications Applications, Information Interfaces and Presentation, General}, documentdirectory = {}, abstract = { Future industrial production and engineering environments will profit substantially from emerging open distributed computer communication network environments. They will, in principle, be able to benefit from a high potential of services available in such environments to support individual client applications. In practice, however, free and flexible client/ server cooperations are frequently hindered by the great and confusing variety of interfaces involved in accessing various and heterogeneous network services. In order to support open client/ server cooperations in distributed systems, this contribution proposes a unifying description mechanism for remote services in computer networks. It describes an application oriented generic communication service, which facilitates client/ server cooperation in open systems. The most important basis for such a service is a uniform service specification mechanism for open server interfaces. Correspondingly, the paper first specifies a specific service interface description language (SIDL). It then shows how such a service interface description could also be used for automatic creation of server-specific local human user interfaces. In combination, a generic network interface description language (NIDL) specification, as proposed here, supports client applications in open systems by providing a common mechanism to access and utilize any service available anywhere in the network.} } @techreport{SchMa92, author = {Schr\"oder, G. and Matthes, F.}, institution = hbg-info, key = {SchMa92}, month = may, number = {061-92}, title = {Using the {Tycoon} Compiler Toolkit}, type = {DBIS Tycoon Report}, year = {1992}, documentdirectory = {1992/SchMa92}, abstract = {This document explains the structure and the use of the Tycoon compiler toolkit, a library of generic modules in the Tycoon system library implemented in P-Quest including a strongly-typed LL(1) parser generator.} } @article{MABD90, author = {Morrison, R. and Atkinson, M.P. and Brown, A.L. and Dearle, A.}, journal = {Information Processing Letters}, key = {MABD90}, number = {2}, pages = {51--55}, title = {On the Classification of Binding Mechanisms}, volume = {34}, year = {1990}, keywords = {Binding, L-Value, R-Value, Mutability} } @article{Man93, author = {Mandelkern, D.}, journal = cacm, key = {Man93,}, number = {4}, pages = {36--39}, title = {Graphical User Interfaces: The Next Generation}, volume = {36}, year = {1993}, keywords = {GUI} } @inproceedings{CHC90, author = {Cook, W.R. and Hill, W.L. and Canning, P.S.}, booktitle = popl90, key = {CHC90}, pages = {125--135}, title = {Inheritance Is Not Subtyping}, year = {1990}, keywords = {recursive types for objects and classes, record types, inheritance, subtyping} } @inproceedings{scheme:86, author = {Rees, J and Clinger, W.}, booktitle = sigplan, pages = {37--79}, title = {The revised$_{3}$ report on the algorithmic language {S}cheme}, year = {1986}, keywords = {Scheme, functional programming, reflection} } @inproceedings{Mae87, author = {Maes, Pattie}, booktitle = oopsla87, pages = {147--155}, title = {Concepts and Experiments in Computational Reflection}, year = {1987}, keywords = {reflection, oo} } @inproceedings{GL85, author = {Gotthard, W. and Lockemann, C.}, booktitle = {Methoden und Werkzeuge zur Entwicklung von Programmsystemen}, pages = {185--210}, title = {Datenbanksysteme f"ur Software-Produktionsumgebungen -- Anforderungen und Konzepte}, year = {1985}, keywords = {integrierte Entwicklungsumgebungen, Datenmodell f"ur SE}, comment = {K MET 9985} } @inproceedings{Octopus, author = {Farkas, A. and Dearle, A.}, booktitle = dbpl93, key = {FD93}, pages = {50--64}, title = {Octopus: A Reflective Language Mechanism for Object Manipulation}, year = {1993}, keywords = {object migration, reflection, binding, type-directed computation} } @manual{StarView93, author = {Busch, A. and Kuehnel, T and Jahnke, A}, address = {Hamburg}, key = {StarView93}, organization = {STAR DIVISION}, title = {{S}tarview 2.0}, year = {1993}, keywords = {GUI}, } @proceedings{LSE87, author = {Digital Equipment GmbH}, key = {LSE}, address = {M"unchen}, title = {Guide to VAX Language-Sensitive Editor}, year = {1987}, keywords = {editieren}, } @manual{McC62, author = {McCarthy, J. and Abrahams, P.W. and Edwards, D.J. and Hart, T.P. and Levin, M.I.}, organization = mit-press, title = {The Lisp Programmars' Manual}, year = {1962}, keywords = {Lisp, functional programming}, } @book{Was81, author = {Anthony I. Wassermann}, key = {Was81}, publisher = {Computer Society Press}, title = {Tutorial: Software Development Environments}, year = {1981}, owner = {}, reg-date = {}, abstract = {}, keywords = {}, directory = {}, comment = {P SOF 8139} } @book{GoRo89, author = {Goldberg, Adele and Robson, David}, publisher = addison-wesley, title = {Smalltalk-80: The Language}, year = {1989}, keywords = {OO, software-environments}, directory = {}, comment = {P GOL 14501} } @book{Mul90, author = {Mark Mullin}, key = {Mul90}, month = {July}, publisher = {Addison-Wesley}, title = {Rapid Prototyping for Object-Oriented Systems}, year = {1990}, owner = {}, reg-date = {}, abstract = {}, keywords = {}, directory = {}, comment = {P MULL 15989} } @proceedings{DCE90, author = {Open Software Foundation}, key = {DCE}, publisher = {Prentice Hall}, title = {OSF DCE Application Development Guide}, year = {1993}, keywords = {distributed systems, rpc}, comment = {Buch, bei Kay ausleihbar} } @book{ARM90, author = {Ellis, M.A. and Stroustrup, B.}, key = {ARM90}, publisher = {Addison-Wesley}, title = {The Annotated {C}++ Reference Manual}, year = {1990}, } @inbook{Mjoellner94, chapter = {23}, editor = {J. L. Knudsen, M. L"ofgren, O. Lehrmann-Madsen, B. Magnusson}, key = {Mjoellner94}, pages = {345--358}, publisher = {Prentice Hall}, series = {Object-Oriented Series}, title = {Object-Oriented Environments: The Mj\olner Approach}, year = {1994}, owner = {}, reg-date = {}, abstract = {}, keywords = {Hypertext, syntax-directed editing, browsing}, directory = {}, comment = {} } @inproceedings{ScMa93, author = {Schmidt, J.W. and Matthes, F.}, address = {Vienna, Austria}, booktitle = {Proceedings of the IEEE International Workshop on Research Issues in Data Engineering, Interoperability in Multidatabase Systems}, key = {ScMa93}, month = apr, pages = {2--16}, title = {Lean Languages and Models: Towards an Interoperable Kernel for Persistent Object Systems}, year = {1993}, keywords = {Tycoon, DBPL, Modules, Signatures, Bindings, Gateway}, abstract = {Reliable interoperation between independently developed systems frequently requires type-safe access to persistent data objects and generic services while today's system architectures and interoperation tools still focus primarily on store-level access to volatile data and simple monomorphic or untyped services. \\ In this paper, we summarize our experience gained in a long-term project that provides persistence abstractions and generic database support in a strongly typed database environment which includes optimizing gateways to commercial relational database servers and module-based distributed programming tools. To keep the presentation focussed, we make use of a uniform language model based on higher-order polymorphic types to capture the essential interoperation semantics including classical cross-language calling mechanisms, remote procedure call models as well as relational and object-based database gateways. \\ This uniform language model is also the conceptual core of the Tycoon database environment being developed at Hamburg University. Tycoon lifts Persistent Object System interoperability to a higher level of genericity and precision while further reducing overall system complexity by a lean approach to languages and models for data, execution and storage. \\ Since it is central to the concept of lean production to substantially reduce production penetration by importing and reusing external services, interoperability is crucial to our approach.} } @inproceedings{DMO92, author = {A. Dearle, C. D. Marlin, P. Dart}, address = {Adalaide, Australia}, booktitle = {Proc. Hyper-Oz '92: A Workshop on Hypertext Activities}, key = {DMP92}, title = {A Hyperlinked Persistent software Development Environment}, year = {1992}, owner = {}, reg-date = {}, abstract = {}, keywords = {}, directory = {}, comment = {hab ich noch nicht} } @inproceedings{DF93, author = {A. Dearle, A. Farkas}, address = {Ney York City}, booktitle = {Database Programming Languages}, editor = {C. Beeri, A. Ohori, D. E. Shasha}, key = {DF93}, pages = {50--64}, publisher = {Springer-Verlag}, series = {Workshops in Computing}, title = {Octopus: A reflective Language Mechanism for Object Manipulation}, year = {1993}, owner = {}, reg-date = {}, abstract = {}, keywords = {reflection, browsing, debugging}, directory = {}, comment = {} } @inproceedings{CAB+93, author = {R. Connor, M. Atkinson, S. Berman, Q. Cutts, G. Kirby, R. Morrison}, address = {Ney York City}, booktitle = {Database Programming Languages}, editor = {C. Beeri, A. Ohori, D. E. Shasha}, key = {CAB+93}, pages = {417--433}, publisher = {Springer-Verlag}, series = {Workshops in Computing}, title = {The Joy of sets}, year = {1993}, owner = {}, reg-date = {}, abstract = {}, keywords = {}, directory = {}, comment = {} } @inproceedings{CCK*94, author = {Connor, R. and Cutts, Q. and Kirby, G.N.C. and Moore, V.S. and Morrison, R.}, address = {Ambleside, Cumbria}, booktitle = {2nd International Workshop on User Interfaces to Databases}, pages = {185--200}, title = {Unifying Interaction with Persistent Data and Program}, year = {1994}, keywords = {hyper-programming, napier}, } @inproceedings{Dea87, author = {A. Dearle}, address = {Appin, Scotland}, booktitle = {Proc. 2nd International Workshop on Persistent Object Systems}, key = {Dea87}, title = {Constructiong Compilers in a Persistent Environment}, year = {1987}, owner = {}, reg-date = {}, abstract = {}, keywords = {}, directory = {}, comment = {} } @inproceedings{Dea89, author = {Dearle, A.}, booktitle = {Proc. HICSS-22, Hawaii}, key = {Dea89}, month = jan, pages = {46--55}, title = {Environments: a flexible binding mechanism to support system evolution}, volume = {II}, year = {1989}, keywords = {Napier Type System, environment, dynamic binding, dynamic typing} } @inproceedings{Mar91, author = {Martin, Bruce}, booktitle = {Usenix Association C++ Conference}, key = {Mar91}, pages = {51--63}, title = {The Separation of Interface and Implementation in {C}++}, year = {1991}, keywords = {C++, interfaces, preprocessing} } @misc{ILU94, author = {Jansen, B. and Severson, D. and Spreitzer, M.}, howpublished = {ftp}, key = {ILU94}, month = {May}, title = {ILU 1.6.4. Reference Manual}, year = {1994}, owner = {}, reg-date = {}, abstract = {}, keywords = {IDL, distributed systems}, directory = {}, comment = {bei Michael ausleihbar} } @proceedings{SUN90, author = {Sun Microsystems, Inc.}, publisher = {Sun Microsystems Inc.}, key = {Sun}, month = {March}, title = {Network Programming Guide}, address = {Mountain View}, year = {1990}, keywords = {distributed systems}, comment = {im IBM-Raum} } @proceedings{OMG91, author = {Object Management Group}, publisher = {Object Management Group}, key = {OMG}, month = {Dezember}, note = {OMG Document Number 91.12.1, Revision 1.1}, title = {The Common Object Request Broker: Architecture and Specification}, year = {1991}, keywords = {distributed systems}, comment = {bei Michael ausleihbar} } @phdthesis{Coo90, author = {R. L. Cooper}, key = {Coo90}, school = {University of Glasgow}, title = {On The Utilization of Persistant Programming Environments}, year = {1990}, comment = {hab ich noch nicht} } @phdthesis{Cut92, author = {Cutts, Q.I.}, school = {University of St Andrews}, title = {Delivering the Benefits of Persistence to System Construction and Execution}, year = {1992}, keywords = {persistence, programming environments, type representation, callable compiler}, comment = {} } @phdthesis{Kir92, author = {G. N. C. Kirby}, key = {Kir92}, school = {University of St Andrews}, title = {Reflection and Hyper-Programming in Persistent Programming Systems}, year = {1992}, keywords = {persistence, programming environments, GUI}, comment = {} } @phdthesis{Dea88, author = {Dearle, A.}, key = {Dea88}, month = mar, school = {University of St Andrews}, title = {On the Construction of Persistent Programming Environments}, year = {1988}, keywords = {persistence, programming environments, callable compiler}, comment = {} } @techreport{MMM93, author = {Mathiske, B. and Matthes, F. and M{\"u}{\ss}ig, S.}, institution = hbg-info, key = {MMM93}, month = dec, number = {212-93}, title = {The {T}ycoon {S}ystem and {L}ibrary {M}anual}, type = {DBIS Tycoon Report}, year = {1993}, documentdirectory = {1993/MMM93}, abstract = {This document provides a practical introduction to the interactive Tycoon system environment and its polymorphic libraries. It explains how to bind external C libraries to Tycoon programs and how to work with persistent stores. Moreover, it proposes formatting und naming guidelines for Tycoon programs.} } @techreport{KCCM93, author = {Kirby, G.N.C. and Cutts, Q.I. and Connor, R.C.H. and Morrison, R.}, institution = {University of St Andrews}, key = {KCCM93}, number = {CS/93/5}, title = {The Implementation of a Hyper-Programming System}, year = {1993}, comment = {}, keywords = {Napier, hyper-programming, browsing} } @techreport{KD90, author = {Kirby, G.N.C. and Dearle, A.}, institution = {University of St Andrews}, number = {CS/90/16}, title = {An Adaptive Graphical Browser for Napier88}, year = {1990}, comment = {}, keywords = {Napier, browsing, reflection} } @inproceedings{DCK90, editor = {Rosenberg, J. and Koch, D.M.}, author = {Dearle, A. and Cutts, Q.I. and Kirby, G.N.C.}, booktitle = {Persistent Object Systems}, pages = {56--69}, publisher = springer, title = {Browsing, Grazing and Nibbling Persistent Data Structures}, year = {1990}, comment = {}, keywords = {Napier, browsing, reflection} } @techreport{FDK*92, author = {Farkas, A. and Dearle, A. and Kirby, G. N. C. and Cutts, Q. I. and Morrison, R. and Connor, R. C. H.}, institution = {University of St Andrews}, key = {FDK*92}, number = {CS/92/52}, title = {Persistent Program Construction through Browsing and User Gesture with some Typing}, year = {1992}, comment = {} } @techreport{SCW*94, author = {Sj{\o}berg, D.I.K. and Cutts, Q.I. and Welland, R. and Atkinson, M.P.}, institution = {University of St Andrews, Oslo and Glasgow}, number = {CS/94/109}, title = {Analysing Persistent Language Applications}, year = {1994}, comment = {} } @techreport{BGV92, author = {Bussche, J. Van den and Gucht, D. Van and Vossen, G.}, institution = {Justus-Liebig-Universit"at Giessen}, number = {9210}, title = {Reflective Programming in the Relational Algebra}, year = {1992}, comment = {R24972} } @inproceedings{KCC*92, author = {Kirby, G.N.C. and Connor, R.C.H. and Cutts, Q.I. and Morrison, R. and Dearle, A. and Farkas, A.M.}, booktitle = {Proc. 5th International Workshop on Persistent Object Systems, San Milano, Italien}, editor = {Albano, A. and Morrison, R.}, key = {KCC*92}, pages = {86--106}, title = {Persistent Hyper-Programs}, publisher = springer, year = {1992}, keywords = {static bindings, hyper programming, workbench} } @techreport{DCC92, author = {Dearle, A. and Cutts, Q.I. and Connor, R.C.H.}, institution = fidecoord, key = {DCC92}, number = {FIDE/92/56}, title = {An Application Architecture using Type-Safe Incremental Linking}, type = fiderep, year = {1992}, keywords = {location bindings, reuse, software evolution, Napier} } @techreport{MCCK94, author = {Morrison, R. and Connor, R.C.H. and Cutt, Q.I. and Kirby, G.N.C.}, institution = fidecoord, number = {FIDE/94/92}, title = {Persistent Possibilities for Software Environments}, type = fiderep, year = {1994}, keywords = {hyper programming, napier, version control} } @techreport{daSilva95, author = {Miguel Mira da Silva}, institution = fidecoord, number = {FIDE/95/114}, title = {Automating Type-safe RPC}, type = fiderep, year = {1995}, keywords = {RPC, dynamic types, napier} } @techreport{MBC*94, author = {Morrison, R. and Baker, C. and Connor, R.C.H. and Cutts, Q.I. and Kirby, G.N.C. and Munro, D.S.}, institution = fidecoord, number = {FIDE/94/98}, title = {Delivering the Benefits of Persistence to System Construction and Execution}, type = fiderep, year = {1994}, keywords = {hyper-programming, optimisation} } @techreport{MMS94, author = {Matthes, F. and M"u"sig, S. and Schmidt, J.W.}, institution = fidecoord, number = {FIDE/94/106}, title = {Persistent Polymorphic Programming In Tycoon: An Introduction}, type = fiderep, year = {1994}, keywords = {Tycoon, polymorphism} } @techreport{START, author = {Kirby, G.N.C. and Connor, R.C.H. and Morrison, R.}, institution = fidecoord, number = {FIDE/94/96}, title = {START: A Linguistic Reflection Tool Using Hyper-Program Technology}, type = fiderep, year = {1994}, keywords = {reflection, Napier, GUI, generators} } @techreport{MCC95, author = {Morrison, R. and Connor, R.C.H. and Cutts, Q.I. and Dunstan, V.S. and Kirby, G.}, institution = fidecoord, number = {FIDE/95/115}, title = {Exploiting Persistent Linkage in Software Engineering Environments}, type = fiderep, year = {1995}, keywords = {Napier, linking, hyper-programming} } @techreport{CK94, author = {Cooper, Richard and Kirby, G.N.C.}, institution = fidecoord, number = {FIDE/94/108}, title = {Type-Safe Linguistic Run-time Reflection: A Practical Perspective}, type = fiderep, year = {1994}, keywords = {reflection, Napier} } @techreport{Lav95, author = {Lavery, D.}, institution = fidecoord, number = {FIDE/95/116}, title = {The Design of Effective Software Visualizations for Persistent Programming Environments}, type = fiderep, year = {1995}, keywords = {visualisation, Napier, programming environments} } @techreport{Kir92a, author = {Kirby, G.N.C.}, institution = fidecoord, number = {FIDE/92/40}, title = {Persistent Programming with Strongly Typed Linguistic Reflection}, type = fiderep, year = {1992}, keywords = {reflection, Napier} } @techreport{Mor*94, author = {Morrison, R. et al}, institution = fidecoord, key = {Mor*94}, number = {FIDE/94/104}, title = {The Napier88 Reference Manual (Release 2.0)}, type = fiderep, year = {1994}, keywords = {Napier} } @proceedings{PPRG88, author = {Persistent Programming Research Group}, publisher = {Persistent Programming Research Group}, key = {Glasgow}, number = {PPRR-12-88}, institution= glasgow, title = {PS-algol Reference Manual, 4th edition}, year = {1988}, keywords = {PS-algol, persistence} } @techreport{Mor*94a, author = {Kirby and Brown and Connnor and Cutts and Dearle and Moore and Morrison and Munro}, institution = fidecoord, number = {FIDE/94/105}, title = {The Napier88 Standard Library Reference Manual (Version 2.2)}, type = fiderep, year = {1994}, keywords = {Napier} } @techreport{M3Bibs, author = {Horning, J. and Kalsow, B. and McJones, P. and Nelson, G.}, institution = src, number = {113}, title = {Some useful {M}odula-3 Interfaces}, year = {1993}, keywords = {interfaces, Modula-3} } @inproceedings{SFSS90, author = {Stemple, D. and Fegaras, L. and Sheard, T. and Socorro, A.}, booktitle = edbt90, key = {SFSS90}, pages = {269--285}, publisher = springer, series = lncs, title = {Exceeding the Limits of Polymorphism in Database Programming Languages}, volume = {416}, year = {1990}, keywords = {Reflection (statically bound and type checked), Natural Join, good references, ADABTPL} } @techreport{ACPP90, author = {Abadi, M. and Cardelli, L. and Pierce, B. C. and Plotkin, G.D.}, institution = src, key = {ACPP90}, month = jun, number = {47}, title = {Dynamic Typing in a Statically Typed Language}, year = {1989}, keywords = {Quest, Operational Semantics, Denotational Semantics, Persistent Storage} } @inproceedings{Matt87, author = {Matthews, D.}, booktitle = dbpl87, key = {Matt87}, month = sep, pages = {43--52}, title = {Static and Dynamic Type Checking}, year = {1987}, keywords = {static, dynamic typing and binding, structural type equivalence, type inference, parametric types, conclusion: dynamic typing needs different schema than static typing} } @inproceedings{ACPR92, author = {Abadi, M. and Cardelli, L. and Pierce, B. and R\'emy, D.}, booktitle = {Proceedings of the ACM SIGPLAN Workshop on ML and its Applications}, key = {ACPR92}, month = jun, title = {Dynamic Typing in Polymorphic Languages}, year = {1992}, keywords = {explicit and implicit polymorphism and abstract data types.} } @inproceedings{Card86, author = {Cardelli, L.}, booktitle = {Combinators and Functional Programming Languages}, key = {Card86}, publisher = springer, series = lncs, title = {Amber}, volume = {242}, year = {1986}, keywords = {Multiple inheritance, persistence, first-class modules, proposal for recursive values, multi-font program text, Mac implementation} } @techreport{Card89, author = {Cardelli, L.}, institution = src, key = {Card89}, month = may, number = {45}, title = {Typeful Programming}, year = {1989}, keywords = {Quest language report, second-order type system} } @techreport{LM91, author = {Leroy, X. and Mauny, M.}, institution = inria, key = {LM91}, month = {Juli}, number = {1491}, title = {Dynamics in ML}, type = {Rapport de Recherche}, year = {1991}, keywords = {dynamic types, ML} } @techreport{CAML90, author = {Weis, Pierre}, institution = inria, number = {121}, title = {Dynamics in ML}, type = {Technical Report}, year = {1990}, keywords = {dynamic types, ML, CAML}, comment = {Hab ich noch nicht} } @mastersthesis{Mues94, author = {M"u"sig, S.}, key = {Mues94}, month = {Juli}, school = hbg-info, title = {Beitr"age zur typsicheren generischen Datenvisualisierung}, year = {1994} } @article{deBr72, author = {{de~Bruijn}, N.G.}, journal = {Indag.~Math.}, key = {deBr72}, number = {5}, pages = {381--392}, title = {Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the {Church-Rosser} theorem}, volume = {34}, year = {1972}, keywords = {scoping, naming, de Bruijn indices, variable capture} } @techreport{ACCL90, author = {Abadi, M. and Cardelli, L. and Curien, P.-L. and L{\'e}vy, J.-J.}, institution = src, key = {ACCL90}, month = feb, number = {54}, title = {Explicit Substitutions}, year = {1990}, keywords = {Quest, De Bruijn notation, lambda calculus, second order type systems, appeared in a journal} } @techreport{CMA94a, author = {Cardelli, L. and Matthes, F. and Abadi, M.}, institution = {Digital Equipment Corporation, Systems Research Center, Palo Alto, California}, key = {CMA94a}, month = feb, number = {121}, title = {Extensible Syntax with Lexical Scoping}, year = {1994}, documentdirectory = {1994/CMA94a}, abstract = { A frequent dilemma in programming language design is the choice between a language with a rich set of notations and a small, simple core language. We address this dilemma by proposing extensible grammars, a syntax-definition formalism for incremental language extensions and restrictions. \\ The translation of programs written in rich object languages into a small core language is defined via syntax-directed patterns. In contrast to macro-expansion and program-rewriting tools, our extensible grammars respect scoping rules. Therefore, we can introduce binding constructs while avoiding problems with unwanted name clashes. \\ We develop extensible grammars and illustrate their use by extending the lambda calculus with let-bindings, conditionals, and constructs from database programming languages, such as SQL query expressions. We then give a formal description of the underlying rules for parsing, transformation, and substitution. Finally, we sketch how these rules are exploited in the implementation of a generic, extensible parser package.\\ This text is a revised and expanded version of [CMA94]} } @book{heuer:92, author = {Andreas Heuer}, address = {Bonn}, publisher = {Addison--Wesley (Deutschland) GmbH}, title = {Objektorientierte Datenbanken}, year = {1992} } @inproceedings{MaSc94, key= {MaSc94}, author= {Matthes, F. and Schmidt, J.W.}, title= {Persistent Threads}, year= 1994, month= sep, booktitle= {Proceedings of the Twentieth International Conference on Very Large Data Bases, VLDB}, pages= {403--414}, address= {Santiago, Chile}, documentdirectory= {1994/MaSc94}, abstract= {Persistent threads are a database programming concept particularly well-suited for applications that manage long-term, distributed or cooperative activities. We introduce persistent threads as a novel form of bindings from data in persistent object stores to activated code and relate them to existing binding concepts found in database programming. We also describe the integration of persistent threads into a polymorphically-typed database language and its supporting layered system architecture with particular emphasis on abstractly-defined thread representations which support thread analysis, optimization and portability.}} @book{MD93, author = {Maslo, P. and Dittrich, St.}, publisher = {Data Becker, D"usseldorf}, title = {Das gro"se Buch zu VisualBASIC 3.0 f"ur Windows}, year = {1993}, } @proceedings{ingres, author = {Ingres Corp.}, publisher = {Ingres Corp.}, key = {Ingres}, howpublished = {Manual}, address = {Alameda}, organization = {Ingres Corp.}, title = {Application Editor User's Guide for INGRES/Windows 4GL for the UNIX and VMS Operation Systems}, year = {1990}, keywords = {4GL, GUI, Ingres}, } @proceedings{Sun92, author = {Sun Microsystems}, key = {Sun}, address = {Mountain View}, organization = {Sun Microsystems, Inc.}, title = {OpenWindows Developers's Guide 2.0 User's Guide}, year = {1992}, keywords = {GUI}, } @inproceedings{DCBM89, key= {DCBM89}, author= {Dearle, A. and Connor, R. and Brown, F. and Morrison, R.}, title= {{Napier88} -- A Database Programming Language?}, booktitle= dbpl89, month= jun, year= {1989}, keywords= {Napier type system description, polymorphism} } @article{ACO85, key= {ACO85}, author= {Albano, A. and Cardelli, L. and Orsini R.}, title= {Galileo: A Strongly-Typed, Interactive Conceptual Language}, journal= tods, volume= 10, number= 2, year= {1985}, pages= {230--260} } @inproceedings{AGO91, key= {AGO91}, author= {Albano, A. and Ghelli, G. and Orsini, R.}, title= {A Relationship Mechanism for a Strongly Typed Object-Oriented Database Programming Language}, booktitle= vldb91, pages= {565--575}, year= {1991}, keywords= {Fibonacci, Relationships, Associations, Objects, Roles?} } @book{MOP91, author = {Kiczales, G and Rivieres, D and Bobrow, G.}, publisher = mit-press, title = {The Art of the Metaobject Protocol}, year = {1991}, keywords= {dynamic types, Lisp, CLOS, OO}, comment = {Michael hat es} } @inproceedings{MaSc91b, key= {MaSc91b}, author= {Matthes, F. and Schmidt, J.W.}, title= {Bulk Types: Built-In or Add-On?}, booktitle= dbpl91, publisher= kaufmann, month= sep, year= {1991}, keywords= {bulk types, iterators, libraries, Tycoon, DBPL}, abstract= {Bulk structures play a central r\^ole in data-intensive application programming. The issues of {\em bulk type} definition and implementation as well as their integration into database programming languages are, therefore, key topics in current DBPL research. \\ In this paper we raise a more general language design and implementation issue by asking whether there should be at all built-in bulk types in DBPLs. Instead, one could argue that bulk types should be realized exclusively as user-definable add-ons to unbiased core languages with appropriate primitives and abstraction facilities. \\ In searching for an answer we first distinguish two substantially different levels on which bulk types are supported. {\em Elementary Bulk} essentially copes with persistent storage of mass data, their identification and update. {\em Advanced Bulk} provides additional support required for data-intensive applications such as optimized associative queries and integrity support under concurrency and failure. \\ Our long-term experience with bulk types in the DBPL language and system clearly shows the limitation of the built-in approach: built-in {\em Advanced Bulk}, as elaborate as it may be, frequently does not cover the whole range of demands of a fully-fledged application and often does not provide a decent pay-off for its implementation effort. On the other hand, restriction to built-in {\em Elementary Bulk} gives too little user-support for most data-intensive applications. \\ We report our current work on open database application systems which favours DBPLs with bulk types as add-ons, and outline some of the technological requirements for highly reusable implementations of languages with advanced user-provided bulk type definitions.} } @manual{TRPL90, key= {TRPL90}, author= {Sheard, T.}, title= {A user's guide to {TRPL}: {A} compile-time reflective programming language}, organization= {University of Massachusetts}, year= {1990} } @manual{ML93, author = {Appel, Andrew and George, Lal and MacQueen, David and Reppy, John}, address = {New Jersey}, organization = {AT\&T Bell Laboratories}, title = {Standard {ML} of New Jersey}, year = {1993}, keywords = {ML, callable compiler}, } @article{CaWe85, key= {CaWe85}, author= {Cardelli, L. and Wegner, P.}, title= {On Understanding Types, Data Abstraction, and Polymorphism}, journal= acmcs, volume= 17, number= 4, month= dec, pages= {471--522}, year= {1985}, keywords= {existentially, universally quantified types}, comments= {excellent introductory text} } @book{knuth:92, author = {Donald E. Knuth}, address = {Leland Stanford Junior University}, publisher = {{Center for the Study of Language and Information}}, title = {Literate Programming}, year = {1992} } @inproceedings{MJML95b, key= {MJML95b}, booktitle= {Proceedings of the Third International Conference on Open Distributed Processing (ICODP '95), Brisbane, Australia}, title= {The TRADEr: Integrating trading into DCE}, editors= {K. Raymond and L. Amstrong}, author= {M\"uller-Jones, K. and Merz, M. and Lamersdorf, W.}, month= feb, year= 1995, documentdirectory= {1995/MJML95b}, abstract= {Client support for locating, accessing, and using arbitrary services in open system environments emerges as one of the most interesting, complex, and practically relevant tasks of realising realistic open distributed systems applications. In the context of Open Distributed Processing (ODP), current standardisation efforts for a trading function play an increasingly important role for open system integration.\\ In addition to ongoing ODP standardisation activities official and de--facto standard system environments such as, e.g., the OSF Distributed Computing Environment (DCE), support efficient development and portability of distributed system applications. Therefore, time seems now ready to analyse and evaluate the use of such platforms also for developing efficient implementations of higher--level system support services, e.g., an ODP trading function.\\ This paper first elaborates on the specific potential of OSF DCE for supporting implementations of ODP trader functions. It then presents an architecture and reports on experiences with such an implementation in the context of system support for general service access, management and coordination in open distributed environments within the TRADE project. Finally, the paper draws the attention to still existing limitations and deficiencies of OSF DCE for realising ODP trader functions and proposes respective extensions to OSF DCE both at a conceptual and a concrete systems implementation level. According to such prototype implementation experiments, ODP trading functions can be integrated smoothly into a uniform standard system support platform (like DCE) and can be implemented efficiently by extending DCE by additional trading functions which specifically support service management, mediation and access for open distributed applications.} } @unpublished{GaMa95a, key= {GaMa95a}, author= {Gawecki, A. and Matthes, F.}, title= {TooL: A Persistent Language Integrating Subtyping, Matching and Type Quantification}, address= hbg-info, note= {(Zur Ver"offentlichung freigegeben.)}, year= 1995, month= may, documentdirectory= {1995/GaMa95a}, abstract={This paper presents the type system of the TooL persistent programming language that captures much of the flavor of Smalltalk within a safe static typing discipline. Following the spirit of Smalltalk providing a highly flexible and extensible programming environment based on a small set of expressive language primitives, TooL provides only few built-in type concepts with rich semantics that achieve power through systematic use and orthogonality. The paper focuses on the language design issues that arise in the course of integrating type concepts that are well-understood in isolation like object types, subtyping, type matching, and type quantification into a practical database programming language. We illustrate these issues by code samples taken from the TooL generic bulk data library. }} @unpublished{MMS95a, key= {MMS95a}, author= {Mathiske, B. and Matthes, F. and Schmidt, J.W.}, title= {On Migrating Threads}, address= hbg-info, note= {(Accepted for publication.)}, year= 1995, month= jun, documentdirectory= {1995/MMS95a}, abstract={Based on the notion of persistent threads in Tycoon, we investigate thread migration as a programming construct for building activity-oriented distributed applications. We first show how astraight-forward extension of a higher-order persistent language can be used to define activities that span multiple (semi-) autonomous nodes in heterogeneous networks. In particular, we discuss the intricate binding issues that arise in systems where threads are first-class language citizens that may access local and remote, mobile and immobile resources. \\ We also describe how our system model can be understood as a promising generalization of the more static architecture of first-order and higher-order distributed object systems. Finally, we give some insight into the implementation of persistent and migrating threads and we explain how to represent bindings to ubiquitous resources present at each node visited by a migrating thread on the network to avoid excessive communication or storage costs. }} @unpublished{MMS95b, key= {MMS95b}, author= {Mathiske, B. and Matthes, F. and Schmidt, J.W.}, title= {Scaling Database Languages to Higher-Order Distributed Programming}, address= hbg-info, note= {(Submitted for publication.)}, year= 1995, month= mar, documentdirectory= {1995/MMS95b}, abstract= {We describe the Tycoon approach to scale the successful notion of a uniform, type-safe persistent object store to communication-intensive applications and applications where long-term activities are allowed to span multiple autonomous network sites. Exploiting stream-based data, code and thread exchange primitives we present several distributed programming idioms in Tycoon. These programming patterns range from client-server communication based on polymorphic higher-order remote procedure calls to migrating autonomous agents that are bound dynamically to networkresources present at individual network nodes. Following Tycoon's add-on approach, these idioms are not cast into built-in syntactic forms, but are expressed by characteristic programming patterns exploiting communication primitives encapsulated by library functions. Moreover, we present a novel form of binding support for ubiquitous resources which drastically reduces communication traffic for modular distributed applications. }} @incollection{haerder:87, author = {Theo H"arder}, address = {Berlin}, booktitle = {Datenbankhandbuch}, chapter = {3.6.8.2}, editor = {P.C. Lockemann and J.W. Schmidt}, pages = {330-335}, publisher = {Springer}, title = {{Behandlung von ad hoc-Anfragen}}, year = {1987} }