@inproceedings{A*89, key= {A*89}, author= {Albano, A. and Dearle, A. and Ghelli, G. and Martin, C. and Morrison, R. and Orsini, R. and Stemple, D.}, title= {A Framework for Comparing Type Systems for Database Programming Languages}, booktitle= dbpl89, month= jun, year= {1989}, pages= {203--212} } @article{ABCCM83, key= {ABCCM83}, author= {Atkinson, M.P. and Bailey, P.J. and Chisholm, K.J. and Cockshott, W.P. and Morrison, R.}, title= {An approach to persistent programming}, journal= {Computer Journal}, volume= 26, number= 4, year= {1983}, month= nov } @incollection{ABW*90, key= {ABW*90}, author= {M. Atkinson and F. Bancilhon and D. De Witt and K. Dittrich and D. Maier and S. Zdonik}, title= {The Object-Oriented Database System Manifesto}, booktitle= {Deductive and Object-oriented Databases}, publisher= elsevier, year= {1990} } @article{ACC81a, key= {ACC81a}, author= {Atkinson, M.P. and Chisholm, K.J. and Cockshott, W.P.}, title= {{PS-algol}: An Algol with a Persistent Heap}, journal= sigplan, volume= 17, number= 7, month= jul, year= {1981} } @techreport{ACPP90, key= {ACPP90}, author= {Abadi, M. and Cardelli, L. and Pierce, B. C. and Plotkin, G.D.}, title= {Dynamic Typing in a Statically Typed Language}, institution= src, number= 47, month= jun, year= {1989}, keywords= {Quest, Operational Semantics, Denotational Semantics, Persistent Storage} } @book{AFS89, key= {AFS89}, author= {Abiteboul, S. and Fischer, P.C. and Schek, H.J.}, title= {Nested Relations and Complex Objects in Databases}, series= lncs, volume= 361, publisher= springer, year= {1989}, keywords= {NF2, collection of all relevant models} } @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?} } @article{AKN89, key= {AKN89}, author= {A{\"i}t-Kaci, H. and Nasr, R.}, title= {Integrating logic and functional programming}, journal= {Lisp and Symbolic Computation}, volume= 2, pages= {51--89}, year= {1989}, keywords= {is there a better reference on Life? Ask Hassan} } @inproceedings{ART91, key= {ART91}, author= {Atkinson, M. and Richard, P. and Trinder, P.}, title= {Bulk Types for Large Scale Programming}, booktitle= eastwest91, series= lncs, volume= {504}, month= apr, year= {1991}, keywords= {type quarks, set comprehensions, bulk types} } @book{ASU87, key= {ASU87}, author= {Aho, A.V. and Sethi, R. and Ullmann, J.D.}, title= {Compilers: Principles, Techniques and Tools}, publisher= addison-wesley, year= {1987}, keywords= {compiler, scanner, parser, attribute grammars} } @inproceedings{AgGh89b, key= {AgGh89b}, author= {Agrawal, R. and Gehani, N.H.}, title= {Rationale for the Design of Persistence and Query Processing Facilities in the Database Programming Language {O++}}, booktitle= dbpl89, month= jun, year= {1989}, keywords= {O++ and ODE, C++, persistence} } @book{App92, key= {App92}, author= {Appel, A.}, title= {Compiling with Continuations}, publisher= cambridge-press, year= {1992}, keywords= {closures, Standard ML, compiling, higher-order functions, continuations, cps} } @article{AtBu86, key= {AtBu86}, author= {Atkinson, M.P. and Bunemann, P.}, title= {Types and Persistence in Database Programming Languages}, journal= acmcs, year= {1987}, month= jun, volume= {19}, number= 2, keywords= {classical overview article. type algebra, type completeness, bulk data types} } @article{AtMo85a, key= {AtMo85a}, author= {Atkinson, M.P. and Morrison, R.}, title= {First class persistent procedures}, journal= toplas, volume= 7, number= 4, month= oct, year= {1985}, keywords= {PS-algol, higher-order functions, persistent functions} } @incollection{AtMo85, key= {AtMo85}, author= {Atkinson, M.P. and Morrison, R.}, title= {Types, Bindings and Parameters in a Persistent Environment}, editor= {Atkinson, M.P. and Buneman, P. and Morrison, R.}, booktitle= {Data Types and Persistence}, series= tis, publisher= springer, year= {1988}, keywords= {Napier, delayed bindings, environments, name spaces} } @inproceedings{AtMo88, key= {AtMo88}, author= {Atkinson, M.P. and Morrison, R.}, title= {Polymorphic Names and Iterations}, booktitle= dbpl87, month= sep, year= {1987}, keywords= {bindings, records, environments, scoping, first-class names} } @article{B*88, key= {B*88}, title= {Common Lisp Object System Specification}, author= {Bobrow, D.G. and De Michiel, L.G. and Gabriel, R.P. and Keene, S.E. and Kiczales, G. and Moon, D.A.}, journal= sigplan, volume= 23, month= sep, year= {1988}, keywords= {CLOS, multiple inheritance, generic functions, meta-object protocol} } @techreport{B*91, key= {B*91}, author= {Brown, A.L. and Mainetto, G. and Matthes, F. and M{\"u}ller, R. and McNally, D.J.}, title= {An Open System Architecture for a Persistent Object Store}, year= {1991}, month= sep, institution= st-andrews, type= {Persistent Programming Research Report}, number= {CS/91/9}, keywords= {Napier, Staple, Galileo, P-Quest}, comment= {prefer \cite{B*92}} } @inproceedings{BCD89, key= {BCD89}, author= {Bancilhon, F. and Cluet, S. and Delobel, C.}, title= {A Query Language for the O$_2$ Object-Oriented Database System}, booktitle= dbpl89, month= jun, year= {1989}, keywords= {O2SQL, O2 Query Lanugage: Violate Encapsulation, embedded query languages} } @book{BDK92, key= {BDK92}, author= {Bancilhon, F. and Delobel, C. and Kanellakis, P.}, title= {Building an Object-Oriented Database System: The Story of O$_{2}$}, publisher= kaufmann, year= {1992}, keywords= {O2, object-oriented database system, persistence, storage manager, client-server architecture}, comment= {most chapters are reprints of articles} } @article{BDSSW93, key= {BDSSW93}, title= {Merging Application-centric and Data-centric Approaches to Support Transaction-oriented Multi-system Workflows}, author= {Breibart, Y. and Deacon, A. and Schek, H.-J. and Sheth, A. and Weikum, G.}, month= sep, journal= sigmodrec, year= {1993}, volume= {12}, number= {3}, pages= {23--30}, abstract= {Workflow management is primarily concerned with dependencies between the tasks of a workflow, to ensure correct control flow and data flow. Transaction management, on the other hand, is concerned with preserving data dependencies by preventing execution of conflicting operations from multiple, concurrently executing tasks or transactions. In this paper we argue that many applications will be served better if the properties of transaction and workflow models are supported by an integrated architecture. We also present preliminary ideas towards such an architecture.} } @inproceedings{BHR82, key= {BHR82}, author= {Bunemann, P. and Hirschberg, J. and Root, D.}, title= {A Codasyl Interface to Pascal and Ada}, booktitle= bncod82, year= {1982}, publisher= cambridge-press, keywords= {Preprocessor- and Library-based DBMS interface, exploit generic modules of Ada to capture polymorphic DBMS operations} } @inproceedings{BJS86, key= {BJS86}, author= {B{\"o}ttcher, S. and Jarke, M. and Schmidt, J.W.}, title= {Adaptive Predicate Managers in Database Systems}, booktitle= vldb86, year= {1986}, keywords= {DBPL, CPMS, integration of optimistic and pessimistic concurrency control} } @inproceedings{CMA93, key= {CMA93}, author= {Cardelli, L. and Matthes, F. and Abadi, M.}, title= {Extensible Grammars for Language Specialization}, booktitle= dbpl93, editor= {Beeri, C. and Ohori, A. and Shasha, D.E.}, series= {Workshops in Computing}, publisher= springer, pages= {11--31}, month= feb, year= 1994, keywords= {hygienic macros, static scoping, compile-time reflection, syntactic sugar, name clashes, SQL, binding}, abstract= { A frequent dilemma in the design of a database programming language is the choice between a language with a rich set of tailored notations for schema definitions, query expressions, etc., and a small, simple core language. We address this dilemma by proposing extensible grammars, a syntax-definition formalism for incremental language extensions and restrictions based on an initial core language. \\ 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 SQL-style query expressions. We then give a formal description of the underlying parsing, transformation, and substitution rules. Finally, we sketch how these rules are exploited in the implementation of a generic, extensible parser package.} } @incollection{BMS93, key= {BMS93}, author= {Borgida, A. and Mylopoulos, J. and Schmidt, J.}, title= {The TaxisDL Software Description Language}, pages= {65--84}, editor= {Jarke, M.}, booktitle= {Database Application Engineering with {DAIDA}}, publisher= springer, year= {1993}, keywords= {The purpose of the TaxisDL language is to express the conceptual design of an information system. The focus of the design process includes the data classes of the proposed system, the functions and transactions manipulating them, and the larger conceptual groupings of these actions into long-term activities, which we call scripts. The design of the language is based on ideas from semantic data models and formal specification languages.} } @inproceedings{BSW88, key= {BSW88}, author= {Beeri, C. and Schek, H.-J. and Weikum, G.}, title= {Multi-Level Transaction Management, Theoretical Art or Practical Need?}, booktitle= edbt88, publisher= springer, series= lncs, volume= 303, year= {1988}, pages= {134--154}, keywords= {multi-level concurrency control and recovery} } @inproceedings{BTBN91, key= {BTBN91}, author= {Breazu-Tannen, V. and Buneman, P. and Naqvi, S.}, title= {Structural Recursion as a Query Language}, booktitle= dbpl91, publisher= kaufmann, month= sep, year= {1991}, keywords= {bulk types, structural recursion on sets, optimization, algebra, commutativity, idempotence, aggregate operators} } @article{BaKa91, key= {BaKa91}, author= {Barghouti, N.S. and Kaiser, G.E.}, title= {Concurrency control in advanced database applications}, journal= acmcs, volume= 23, number= 3, month= sep, year= {1991}, pages= {269--317}, keywords= {Advanced Lock Modes, Activity Managment}, comments= {get copy again} } @techreport{BaMy91, key= {BaMy91}, title= {International Workshop on the Develpment of Intelligent Information Systems}, author= {Balzer, R. and Mylopoulos, J.}, institution= {University of Southern California and University of Toronto}, month= apr, year= {1991} } @article{Bat*88, key= {Bat*88}, author= {Batory, D. and Barnett, J. and Garza, J. and Smith, K. and Tsukuda, K. and Twichell, B. and Wise, T.}, title= {Genesis: An Extensible Database Management System}, journal= tods, volume= 14, number= 11, pages= {1711--1729}, month= nov, year= {1988}, keywords= {Genesis, extensible DBMS} } @article{Beer90, key= {Beer90}, author = {Catriel Beeri}, title = {A Formal Approach to Object-Oriented Databases}, journal = {Data and Knowledge Engineering}, volume = 5, pages = {353--382}, publisher = {North-Holland}, year = {1990}, keywords = {olit-oodb binder (smc)}, abstract = {The paper reports on efforts to develop a formal framework that contains most features found in current object oriented database systems. The framework contains two parts. The first is a structural object model, including concepts such as structured objects, identity, and some form of inheritance. For this model, the paper explains the distinction between values and abstract objects, describes a system as a directed graph, and discusses declarative languages. The second part deals with higher-order concepts, such as classes and functions as data, methods, and inheritance. This part is a sketch, and leaves many issues unresolved. Throughout the paper, the emphasis is on logic-oriented modeling.} } @proceedings{Blas90, key= {Blas90}, title= {Database Systems of the 90s}, editor= {Blaser, A.}, series= lncs, volume= 466, month= nov, year= {1990}, comment= {M\"uggelsee} } @inproceedings{BuLa84, key= {BuLa84}, author= {Burstall, R. and Lampson, B.}, title= {A kernel language for abstract data types and modules}, booktitle= {Semantics of Data Types}, publisher= springer, series= lncs, volume= 173, year= {1984}, keywords= {Bindings and Signatures, Binding augmented with type, ADT, modules (Pebble?)} } @incollection{Bun90, key= {Bun90}, author= {Buneman, P.}, title= {Functional Programming and Databases}, pages= {155--169}, editor= {Turner, D.}, booktitle= {Research Topics in Functional Programming}, publisher= addison-wesley, year= {1990}, keywords= {Problems in the database area: Records, Sets, Ordering on Types, List Comprehensions} } @techreport{CFH*82, key= {CFH*82}, author= {Cram, D.L. and Freytag, J.C. and Hampton, I. and Mall, M. and Schmidt, J.W. and Schwinghammer, T.}, title= {The Evaluation of Acoustics Survey Data from the First BIOMASS Experiment -- Report on an Interdisciplinary Data Management Project}, institution= hbg-info, type= {Bericht}, number= 87, month= mar, year= {1982}, keywords= {FIBEX Report, Pascal/R, scientific databases} } @incollection{CMMS91, key= {CMMS91}, author= {Cardelli, L. and Martini, S. and Mitchell, J.C. and Scedrov, A.}, title= {An Extension of System {F} with Subtyping}, pages= {750--770}, editor= {Ito, T. and Meyer, A.R.}, booktitle= tacs91, series= lncs, publisher= springer, year= {1991}, keywords= {System F, types, Fsub, encoding booleans, natural numbers} } @techreport{CORBA91, key= {CORBA91}, author= {Object Management Group}, title= {The Common Object Request Broker: Architecture and Specification}, institution= {OMG}, type= {Document}, number= {91.12.1, Rev. 1.1}, month= dec, year= {1991}, keywords= {Object Model, CORBA Architecture, IDL (Interface Definition Language) Syntax and Semantics, C Language Sub mapping, Dynamic Invocation Interface, The Interface Repository, ORB Interface, The Basic Object Adapter, Interoperability, Digital Equipment Corporation, Hewlett-Packard Company, HyperDesk Corporation, NCR Corporation, Object Design Inc., SunSoft Inc.} } @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} } @inproceedings{Card86, key= {Card86}, author= {Cardelli, L.}, title= {Amber}, booktitle= {Combinators and Functional Programming Languages}, publisher= springer, series= lncs, volume= 242, year= {1986}, keywords= {Multiple inheritance, persistence, first-class modules, proposal for recursive values, multi-font program text, Mac implementation} } @inproceedings{Card88c, key= {Card88c}, author= {Cardelli, L.}, title= {Structural Subtyping and the Notion of Power Type}, booktitle= popl88, year= {1988}, keywords= {dependent types, subtypes, kinds, power type, second-order type system} } @techreport{Card88, key= {Card88}, author= {Cardelli, L. and Donahue, J. and Glassman, L. and Jordan, M. and Kalsow, B. and Nelson, G.}, title= {Modula-3 Report}, institution= {Olivetti Research Center}, address= {2882 Sand Hill Road, Menlo Park, California}, number= {ORC-1}, year= {1988}, comments= {(Replaced by Nels91.)} } @techreport{Card89, key= {Card89}, author= {Cardelli, L.}, title= {Typeful Programming}, institution= src, number= 45, month= may, year= {1989}, keywords= {Quest language report, second-order type system} } @techreport{Card90, key= {Card90}, author= {Cardelli, L.}, title= {The {Quest} Language and System (Tracking Draft)}, institution= src, year= {1990}, note= {(shipped as part of the Quest V.12 system distribution)}, keywords= {Quest System Report}, comments= {final release} } @book{Cate94, key = {Cate94} , editor= {Catell, R.G.G.}, title= {The Object Database Standard: ODMG-93}, publisher= kaufmann, year= {1994}, keywords= {standard, object-oriented databases, systems, O2, Ontos, ObjectStore, data models} } @article{Catt91, key= {Catt91}, author= {Cattell, R.G.G.}, title= {Next-Generation Database Systems}, journal= cacm, volume= 34, number= 10, month= oct, year= {1991}, keywords= {ObjectStore, GemStone, O2, Postgres, Starburst} } @techreport{CoHu85, key= {CoHu85}, author= {Coquand, T. and Huet, G.}, title= {Constructions: a higher order proof system for mechanizing mathematics}, institution= inria, type= {Technical Report}, number= 401, month= may, year= {1985}, keywords= {calculus of constructions, higher-order type theory} } @inproceedings{CoMa84, key= {CoMa84}, author= {Copeland, G. and Maier, D.}, title= {Making Smalltalk a database system}, booktitle= sigmod84, month= jun, year= {1984}, pages= {316--325}, keywords= {GemStone, OPAL, Smalltalk, seamless integration, impedance mismatch, computational completeness} } @book{Corb91, key= {Corb91}, title= {The Art of Distributed Applications}, author= {Corbin, J.R.}, series= {Sun Technical Reference Library}, publisher= springer, year= {1991}, keywords= {Easy introduction, RPC, XDR, Sun RPC, Protocols, Remote Procedure Call, External Data Representation}, comments= {Signature D COR 16280} } @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} } @book{DCE93, key= {DCE93}, title= {OSF DCE Administration Guide -- Core Components}, author= {OSF}, year= {1993}, publisher= prentice, keywords= {Standard, Threads, Open Computing, Middleware} } @proceedings{DE87, key= {DE87}, editor= {Carey, M.}, title= {Database Engineering, Special Issue on Extensible Database Systems}, volume= 10, month= jun, year= {1987}, } @techreport{EEKM85, key= {EEKM85}, author= {Eckhardt, H. and Edelmann, J. and Koch, J. and Mall, M. and Schmidt, J.W.}, title= {Draft Report on the Database Programming Language {DBPL}}, institution= ffm-info, type= {DBPL-Memo}, number= {091-85}, year= {1985}, comments= {Outdated!} } @inproceedings{ERMS91, key= {ERMS91}, author= {Eder, J. and Rudloff, A. and Matthes, F. and Schmidt, J.W.}, title= {Data Construction with Recursive Set Expressions in {DBPL}}, booktitle= eastwest91, series= lncs, volume= {504}, month= apr, year= {1991}, keywords= {constructors, DBPL, stratification, deductive DB, database programming} } @techreport{ESQL90, key= {ESQL90}, title= {INGRES Embedded SQL Companion Guide for C}, author= {{Ingres Corporation}}, number= {INGRES UNIX Release 6.3}, month= dec, institution= {Ingres Corporation, 1080 Marina Village Parkway, Almeda, CA 94501}, year= {1990}, } @book{ElSt90, key= {ElSt90}, author= {Ellis, M.A. and Stroustrup, B.}, title= {The Annotated C++ Reference Manual}, publisher= addison-wesley, year= {1990}, keywords= {ANSI base document}, comments= {Signatur: P ELL # 16942 Projekt ASL 58702, Name mangling} } @inproceedings{Fega94, author= {Fegaras, L.}, title= {Efficient Optimization of Iterative Queries}, booktitle= {Database Programming Languages, New York City, 1993}, year= {1994}, editor= {Beeri, C. and Ohori, A. and Shasha, D.E.}, series= {Workshops in Computing}, pages= {200--225}, keywords= {fold, bulk data types, recursion}, } @book{FiHa88, key= {FiHa88}, author= {Field, A.J. and Harrison, P.G.}, title= {Functional Programming}, publisher= addison-wesley, year= {1988}, keywords= {many programming examples in HOPE, comparison with MIRANDA, FP, LISP, basics of lambda-calculus, type checking, type inference, environment-based implementation (eager, lazy), graph-based implementation (G-machine, ...), introduction to program transformation, overview garbage collection, appendix: basic domain theory}, comments= {Signatur: P FIE 13164} } @article{FrGo89, key= {FrGo89}, title= {On the Translation of Relational Queries into Iterative Programs}, author= {Freytag, J.C. and Goodman, N.}, journal= tods, volume= 14, number= 1, month= mar, year= {1989}, keywords= {query evaluation, query optimization, algebra, calculus, iterators, generators} } @inproceedings{GMS87, key= {GMS87}, author= {Garcia-Molina, H. and Salem, K.}, title= {Sagas}, booktitle= sigmod87, month= may, year= {1987}, pages= {249--259}, keywords= {long transactions, transaction models} } @techreport{GaMa94, key= {GaMa94}, author= {Gawecki, A. and Matthes, F.}, title= {The {Tycoon} Machine Language {TML}: An Optimizable Persistent Program Representation}, type= {FIDE Technical Report}, number= {FIDE/94/100}, institution= hbg-info, year= 1994, month= aug, 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.} } @techreport{Gawe92, author = {A. Gawecki}, title = {An optimizing compiler for {Smalltalk}}, institution= hbg-info, type= {Bericht}, number= {FBI-HH-B-152/92}, note= {(In German)}, month= sep, year= 1992 } @inproceedings{GiLu86, author= {David K. Gifford and John M. Lucassen}, title= {Integrating Functional and Imperative Programming}, booktitle= {Proceedings of the ACM Conference on Lisp and Functional Programming, Cambridge, Massachusetts}, year= 1986, pages= {28--38}, abstract= {side effects, effect classes, memoization, parallelism } } @book{GoRo83, key= {GoRo83}, author= {Goldberg, A. and Robson, D.}, title= {Smalltalk-80: The Language and its Implementation}, publisher= addison-wesley, year= {1983} } @book{GrRe93, key= {GrRe93}, author= {Gray, J. and Reuter, A.}, title= {Transaction Processing -- Concepts and Techniques}, series= {The Morgan Kaufmann Series in Data Management Systems}, publisher= kaufmann, year= {1993}, keywords= {ACID, transactions, transaction monitors, CICS, TP monitor, LU5.2, OSI-TP, X/Open DTP, N version programming, fault model, transaction models, predicate locks, phantoms, granular locks, nested transactions, locking, semaphores, log manager, archiving, transactional file systems, tuple-oriented file systems, access paths, IMS, CICS, Guardian 90, DECdta, ADABAS, TPF, Universal Transaction Manager (UTM), Encina, Tuxedo} } @inproceedings{HuSu90, key= {HuSu90}, author= {Hull, R. and Su, J.}, title= {On Bulk Data Type Constructors and Manipulation Primitives: A Framework for Analyzing Expressive Power and Complexity}, booktitle= dbpl89, month= jun, year= {1989}, pages= {396--410}, keywords= {iterators, for each loops, comparison of expressive power for different models of side-effects during loop execution} } @article{HuWa92, key= {HuWa92}, author= {Hudak, P. and Wadler, P.}, title= {Report on the Programming Language {Haskell} Version 1.2}, journal= sigplan, year= {1986}, volume= {21}, number= {7}, pages= {219--233}, month= jul, keywords= {Haskell Report (Glasgow & Yale University), lazy, oerloading, pattern-matching list comprehensions, class system, functional IO, separate compilation} } @article{Hudak89, key= {Hudak89}, author= {Hudak, P.}, title= {Conception, Evolution, and Application of Functional Programming Languages}, journal= acmcs, volume= 21, number= 3, month= sep, year= {1989}, pages= {359--411}, keywords= {Haskell, ML}, comments= {good overview article} } @techreport{I*83, key= {I*83}, author= {Ichbiah and others}, title= {The Programming Language Ada: Reference Manual}, institution= {ANSI}, number= {MIL-STD-1815A-1983}, year= {1983} } @techreport{ISOASN92, key= {ISOASN92}, title= {{Abstract Syntax Notation One (ASN.1)}, Draft International Standard}, author= {ISO / IEC JTC 1 / DIS 8824}, year= {1992}, institution= {ISO}, keywords= {Standard, Protocol, Network, Distribution, Types, marshallin} } @techreport{ISORDA91, key= {ISORDA91}, title= {Information Processing Systems -- Open System Interconnection ({OSI}) -- Remote Database Access ({RDA}), Generic Model}, author= {ISO / IEC JTC 1 / SC21/ WG 3}, year= {1991}, institution= {ISO 9579}, keywords= {Standard, Protocol, Network, Distribution} } @techreport{Infor86, key= {Infor86}, title= {Informix-4GL Reference Manual}, author= {{Informix Software Corp.}}, institution= {{Informix Software Corp.}}, adddress= {Menlo Park, California}, year= {1986}, } @techreport{Ingb90, key= {Ingb90}, title= {INGRES ABF/4GL Reference Manual for the UNIX and VMS Operating Systems}, author= {{Ingres Corporation}}, number= {INGRES Release 6.3}, month= nov, institution= {Ingres Corporation, 1080 Marina Village Parkway, Almeda, California}, year= {1989}, } @inproceedings{JGLR88, key= {JGLR88}, author= {Johannsen, W. and Ge, L. and Lamersdorf, W. and Reinhard, K. and Schmidt, J.W.}, title= {Database Application Support in Open Systems: Language Support and Implementation}, booktitle= dataeng88, month= feb, year= {1988}, keywords= {DURESS} } @article{JKMS82, key= {JKMS82}, author= {Jarke, M. and Koch, J. and Mall, M. and Schmidt, J.W.}, title= {Query Optimization Research in the Database Programming Languages {(DBPL)} Project}, journal= {IEEE -- Data Engineering}, month= sep, year= {1982}, pages= {11--14}, keywords= {Query optimization} } @inproceedings{JLRS88, key= {JLRS88}, author= {Johannsen, W. and Lamersdorf, W. and Reinhard, K. and Schmidt, J.W.}, title= {The {DURESS} Project: Extending Databases into an Open Systems Architecture}, booktitle= edbt88, publisher= springer, series= lncs, volume= {303}, year= {1988}, pages= {616--620}, keywords= {DURESS, DBPL} } @inproceedings{JLS85, key= {JLS85}, author= {Jarke, M. and Linnemann, V. and Schmidt, J.W.}, title= {Data Constructors: On the Integration of Rules and Relations}, booktitle= vldb85, month= aug, year= {1985} } @inproceedings{JMW*90, key= {JMW*90}, author= {Jeusfeld, M. and Mertikas, M. and Wetzel, I. and Jarke. M. and Schmidt, J.W.}, title= {Database Application Development as an Object Modelling Activity}, booktitle= vldb90, month= aug, year= {1990}, keywords= {DAIDA} } @incollection{JRJ93, key= {JRJ93}, author= {Jeusfeld, M. and Rose, T. and Jarke, M.}, title= {ConceptBase: A Telos-Based Software Information System}, pages= {367--388}, editor= {Jarke, M.}, booktitle= {Database Application Engineering with DAIDA}, publisher= springer, year= {1993}, keywords= {ConceptBase, CAD0, Object Modeling} } @inproceedings{JaKo83, key= {JaKo83}, author= {Jarke, M. and Koch, J.}, title= {Range Nesting: A Fast Method to Evaluate Quantified Queries}, booktitle= sigmod83, month= may, year= {1983}, pages= {196--206}, keywords= {query evaluation, query optimization} } @article{JaKo84, key= {JaKo84}, author= {Jarke, M. and Koch, J.}, title= {Query Optimization in Database Systems}, journal= acmcs, volume= 16, number= 2, year= {1984}, pages= {111--152}, keywords= {query evaluation, query optimization} } @inproceedings{JaSc82b, key= {JaSc82b}, author= {Jarke, M. and Schmidt, J.W.}, title= {Query Processing Strategies in the {Pascal/R} Relational Database Management System}, booktitle= sigmod82, year= {1982}, } @book{Jark93, key= {Jark93}, author= {Jarke, M.}, title= {Database Application Engineering with {DAIDA}}, publisher= springer, year= {1993}, keywords= {DBPL, DAIDA, Telos, TDL, SML} } @article{KKRHPA86, key= {KKRHPA86}, author= {Kranz, D. and Kelsey, R. and Rees, J. and Hudak, P. and Philbin, J. and Adams, N.}, title= {{ORBIT}: An Optimizing Compiler for {Scheme}}, journal= sigplan, volume= 21, number= 7, month= jul, year= {1986}, pages= {219--233}, keywords= {CPS, assignment conversion, cell conversion, code generation, continuation passing style} } @inproceedings{KMP82, key= {KMP82}, author= {Koch, J. and Mall, J. and Putfarken, P.}, title= {Modula-2 for the VAX: Description of a System Portation}, booktitle= {Tagungsband Implementierung Pascal-artiger Programmiersprachen}, editor= {Langmaack, H. and Schlender, B. and Schmidt, J.W.}, publisher= teubner, year= {1982}, note= {(In German.)} } @book{KeRi77, key= {KeRi77}, author= {Kernighan, B.W. and Ritchie, D.M.}, title= {The C Programming Language}, publisher= prentice, year= {1977} } @techreport{Kels89, key= {Kels89}, author= {Kelsey, R.A.}, title= {Compilation By Program Transformation}, institution= {Yale University, Department of Computer Science}, year= {1989}, month= may, keywords= {Compiler, Object Code, Transformation, Intermediate Language, Front End, Back End, Ordering Calls, Code Improvements, Environments, Naming, Binding, Instruction Scheduling, Continuation Passing Style}, comments= {Signatur R 22924} } @inproceedings{KhCo86, key= {KhCo86}, author= {Khoshafian, S. and Copeland, G.}, title= {Object Identity}, booktitle= oopsla86, month= oct, year= {1986}, keywords= {object identifiers, addressing, surrogates} } @book{KiLo89, key= {KiLo89}, author= {Kim, W. and Lochowsky, F.H.}, title= {Object-Oriented Concepts, Databases and Applications}, publisher= acm-press, year= {1989}, comments= {Signatur: P OBJ 14315} } @mastersthesis{Kira94, key= {Kira94}, author= {Kiradjiev, P.}, title= {Dynamic optimization in {CPS}-based intermediate languages}, school= hbg-info, year= {1994}, month= dec, note= {(In German)}, abstract= {##copy from text} } @techreport{Kirb92, key= {Kirb92}, author= {Kirby, G.N.C.}, title= {Persistent Programming with Strongly Typed Linguistic Reflection}, institution= fidecoord, type= fiderep, number= {FIDE/92/40}, year= {1992}, keywords= {Reflection, Napier88} } @inproceedings{LEERS87, key= {LEERS87}, author= {Lamersdorf, W. and Eckhardt, H. and Effelsberg, W. and Reinhard, K. and Schmidt, J.W.}, title= {Database Programming for Distributed Office Systems}, booktitle= {Proc. Int. Conf. on Office Automation}, address= {Washington}, year= {1987} , keywords= {DURESS} } @article{LLOW92, key= {LLOW92}, author= {Lamb, C. and Landis, G. and Orenstein, J. and Weinreb, D.}, title= {The {ObjectStore} Database System}, journal= cacm, volume= 34, number= 10, year= 1992, pages= {50--64}, keywords= {Object Design, ObjectStore, OODBMS, DML, DDL} } @inproceedings{LRV88, key= {LRV88}, author= {L{\'e}cluse, C. and Richard, P. and Velez, F.}, title= {O$_2$, an Object-Oriented Data Model}, booktitle= sigmod88, year= {1988}, pages= {424--433}, keywords= {O2 data model} } @inproceedings{Lame84, key= {Lame84}, author= {Lamersdorf, W.}, title= {Recursive Data Models for Non-Conventional Database Applications}, booktitle= dataeng85, month= apr, year= {1985} } @inproceedings{LiDeW91, author= {Lieuwen, Daniel F. and DeWitt, David J.}, title= {Optimizing Loops in Database Programming Languages}, booktitle= dbpl91, address= {Nafplion, Greece}, publisher= kaufmann, month= sep, year= 1991, abstract= { Lieuwen and DeWitt have applied loop transformations on queries written in some database programming language (e.g. O++ \cite{AgGh89b}, Pascal/R \cite{jws} or DBPL \cite{jws2}) that provides constructs to iterate through a set in an unspecified order. They focus on the reordering of joins that are expressed via nested set iterations. Iterations may contain embedded function calls and output statements that constrain reorderings. }} @book{LiGu86, key= {LiGu86}, author= {Liskov, B. and Guttag, J.}, title= {Abstraction and Specification in Program Development}, publisher= mit-press, series= {The MIT Electrical Engineering and Computer Science Series}, year= {1986}, keywords= {Larch, CLU, abstraction by parameterization, abstraction by specification, iteration abstraction}, comments= {Signatur: P LIS 10784} } @techreport{MAD87, key= {MAD87}, author= {Morrison, R. and Atkinson, M.P. and Dearle, A.}, title= {Flexible Incremental Bindings in a Persistent Object Store}, institution= st-andrews, type= {Persistent Programming Research Report}, number= 38, month= jun, year= {1987}, keywords= {Matrix classification: typing, binding, scoping, l-value binding, r-value binding} } @techreport{MMS92, key= {MMS92}, author= {Matthes, F. and M{\"u}ller, R. and Schmidt, J.W.}, title= {Object Stores as Servers in Persistent Programming Environments -- The P-Quest Experience}, institution= fidecoord, type= fiderep, number= {FIDE/92/48}, year= {1992}, month= jul, keywords= {P-Quest, Tycoon, Object Store}, abstract= {A promising approach to improve the quality of next-generation database programming languages is to strictly separate data modeling and data manipulation tasks from data storage issues. This separation greatly simplifies the development of tailor-made database languages and data models based on the generic services of a data model neutral object store protocol that provides efficient, transactional access primitives to persistent, shared and possibly distributed data objects.\\ As a first step towards this goal, this paper investigates the specific services which {\em language clients} require from their supporting object stores. It gives insight into the process of selecting a suitable object store for a polymorphic higher-order programming environment (P-Quest) and sketches the mapping of higher-level language objects like functions, environments and polymorphic aggregates, onto more primitive storage structures. The functionality of three candidate object stores ($O_2$, Mneme and Napier POS) is evaluated based on the requirements imposed by the Quest language.} } @inproceedings{MMS95b, author= {Mathiske, B. and Matthes, F. and Schmidt, J.W.}, title= {Scaling Database Languages to Higher-Order Distributed Programming}, year= {1995}, month= mar, note= {(submitted for publication)}, keywords= {Migrating Threads, remote execution engines, remote procedure call, higher-order functions, distributed programming, object models, object migration, activity modeling, workflow, scripts, Tycoon}, } @manual{MODISO, key= {MODISO}, title= {Interim Version of the 4th Working Draft Modula-2 Standard}, organization= {ISO/IEC JTC1/SC22/WG13}, year= {1991}, } @inproceedings{MOS91, key= {MOS91}, author= {Matthes, F. and Ohori, A. and Schmidt, J.W.}, title= {Typing Schemes for Objects with Locality}, booktitle= eastwest91, series= lncs, volume= {504}, month= apr, year= {1991}, note= {(Also appeared as TR FIDE/91/12)}, keywords= {locality, type checking, repositories, side-effects, updates} } @incollection{MRS84, key= {MRS84}, author= {Mall, M. and Reimer, M. and Schmidt, J.W.}, title= {Data Selection, Sharing and Access Control in a Relational Scenario}, editor= {Brodie, M.L. and Myopoulos, J.L. and Schmidt, J.W.}, booktitle= {On Conceptual Modelling}, publisher= springer, year= {1984} } @techreport{MRSS92a, key= {MRSS92a}, author= {Matthes, F. and Rudloff, A. and Schmidt, J.W. and Subieta, K.}, title= {A Gateway from {DBPL} to {Ingres}: {Modula-2}, {DBPL}, {SQL+C}, {Ingres}}, institution= fidecoord, type= fiderep, number= {FIDE/92/54}, year= {1992}, month= aug, keywords= {DBPL, Ingres, Gateway}, abstract= {A gateway from DBPL (being a superset of Modula-2) to the commercial Ingres is described. DBPL extends Modula-2 in several ways, in particular, it introduces a new bulk and persitent data type ``relation'', and high-level relational expressions (queries) based on the predicate calculus. The gateway enables the user to write normal DBPL programs addressing Ingres databases. In contrast to typical implementations that embed SQL statements into a programming language, the interface becomes fully transparent to DBPL programmers: they need not to be familiar with SQL and Ingres. In this way the impedance mismatch problem is avoided. DBPL queries and other statements referring to Ingres tables are automatically converted into corresponding SQL statements, and the output from Ingres automatically becomes the property of the DBPL program. The gateway supports queries that refer both, Ingres and DBPL relations. This paper presents design assumptions of the gateway and implementation methods. In addition, we discuss design and implementation difficulties.} } @techreport{MRSS92, key= {MRSS92}, author= {Matthes, F. and Rudloff, A. and Schmidt, J.W. and Subieta, K.}, title= {The Database Programming Language {DBPL}: User and System Manual}, institution= fidecoord, type= fiderep, number= {FIDE/92/47}, month= jul, year= {1992}, abstract= {The database programming language DBPL is based on the notion of bulk type and iteration abstraction, supports data persistence and transaction procedures, and has Modula-2 as its algorithmic kernel. \\ This fist part of this document is intended for users of the DBPL system and gives an introduction into the DBPL language concepts and illustrates their use in a larger modular database application. \\ The second part gives some insight into the implementation of the DBPL system. As of today, the DBPL system exists in two fully source code compatible implementations, VAX/VMS DBPL and Sun DBPL. Both are written entierly in Modula-2 and consist of a compilation and a run time environment. The multi-user run time system is highly portable and runs under VAX/VMS 6.1, SunOS 4.1, IBM AIX 3.2 and IBM OS/2. Both DBPL systems can be integrated deeply into commercially available software development environments (NSE, SCCS, CMS) and provide optimized transactional multi-user access not only to type-complete DBPL databases but also to external relational databases via a fully transparent SQL gateway.} } @techreport{MSS91, key= {MSS91}, author= {Matthes, F. and Schr\"oder, G. and Schmidt, J.W.}, title= {VAX Modula-2 User's Guide; VAX DBPL User's Guide}, institution= hbg-info, type= {DBPL Memo}, number= {121-91}, year= {1991}, month= dec, abstract= {This document describes how to compile, link and execute Modula-2 programs on a VAX under the VMS operating system. The VAX Modula-2 Compiler is based on an implementation of Modula-2 for the PDP-11 developed by a group under the direction of Prof. N. Wirth at the ETH Z\"urich. \\ This document also describes how to compile, link and execute DBPL programs on a VAX under the VMS operating system. DBPL is a relational database programming language that has Modula-2 as its algorithmic kernel. The DBPL Compiler is a fully upward compatible extension of the VAX Modula-2 Compiler.} } @book{MTH90, key= {MTH90}, author= {Milner, R. and Tofte, M. and Harper, R.}, title= {The Definition of {Standard ML}}, publisher= mit-press, year= {1990}, keywords= {formal language report Standard ML}, comments= {Signatur P MIL #15645 54954} } @article{MaJa89, key= {MaJa89}, author= {Matos, V.M. and Jalics, P.J.}, title= {An Experimental Analysis of the Performance of 4GL Tools on PCs}, journal= cacm, volume= {32}, number= {11}, year= {1989}, pages= {1340--1352}, keywords= {4GL, Condor 3, PC-Focus, dBase, Oracle, Informix-4GL, Paradox, R:base} } @inproceedings{MaSc89, key= {MaSc89}, author= {Matthes, F. and Schmidt, J.W.}, title= {The Type System of {DBPL}}, booktitle= dbpl89, month= jun, year= {1989}, pages= {255--260}, keywords= {DBPL type system, relation, transaction, selector and constructor types} } @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.} } @inproceedings{MaSc91, key= {MaSc91}, author= {Matthes, F. and Schmidt, J.W.}, title= {Towards Database Application Systems: Types, Kinds and Other Open Invitations}, booktitle= eastwest91, series= lncs, volume= {504}, month= apr, year= {1991}, note= {(Also appeared as TR FIDE/91/14)}, keywords= {Quest, Tycoon} } @techreport{MaSc92, key= {MaSc92}, author= {Matthes, F. and Schmidt, J.W.}, title= {Definition of the {Tycoon} Language {TL} -- A Preliminary Report}, institution= hbg-info, type= {Informatik Fachbericht}, number= {FBI-HH-B-160/92}, year= {1992}, month= nov, keywords= {Tycoon, type operators, recursive types, recursive type operators, higher-order polymorphism, extensible records, exceptions, library management, imperative programming}, 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 second-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.} } @incollection{MaSc93a, key= {MaSc93a}, author= {Matthes, F. and Schmidt, J.W.}, title= {{DBPL}: The System and its Environment}, pages= {319--348}, editor= {Jarke, M.}, booktitle= {Database Application Engineering with {DAIDA}}, publisher= springer, year= {1993}, abstract= { The DBPL system and its environment support the modular implementation of advanced data-intensive applications based on integrated database and programming language technology. It provides state-of-the-art system support at application compile-, link- and run-time as well as tools for incremental application evolution.} } @inproceedings{MaSc93b, key= {MaSc93b}, author= {Matthes, F. and Schmidt, J.W.}, editor= {Spies, P.P.}, title= {System Construction in the {Tycoon} Environment: Architectures, Interfaces and Gateways}, booktitle= {Proceedings of Euro-Arch'93 Congress}, publisher= springer, month= oct, year= {1993}, pages= {301--317}, comments= {Suitable as brief Tycoon introduction / overview}, 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.} } @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.}} @inproceedings{MacQ86, key= {MacQ86}, author= {MacQueen, D.B.}, title= {Using dependent types to express modular structure}, booktitle= popl86, month= jan, publisher= acm-press, year= {1986}, pages= {277--26} } @article{Manifesto90, key= {Manifesto90}, title= {Third-Generation Data Base System Manifesto}, author= {Stonebraker, M. and Rowe, L.A. and Lindsay, B. and Gray, J. and Carey, M. and Brodie, M. and Bernstein, P.}, month= sep, journal= sigmodrec, year= {1990}, volume= {19}, }number= {3}, pages= {31--44}, keywords= {OODBMS has to be a DBMS first} } @inproceedings{Mart75, key= {Mart75}, author= {Martin-L\"{o}f, P.}, title= {An intuitionistic theory of types: predicative part}, booktitle= {Logic Colloquium 1973}, year= {1975}, publisher= north-holland, pages= {73--118}, editor= {Rose, H.E. and Sheperdson, J.C.}, keywords= {intuitionistic type theory, standard reference for dependent types} } @techreport{Matt91a, key= {Matt91a}, author= {Matthes, F.}, title= {{P-Quest}: Installation and User Manual}, institution= hbg-info, type= {DBIS Tycoon Report}, number= {101-91}, year= {1991}, month= oct, abstract= {This document explains the installation and use of the P-Quest system (version 14) on Sun-4 hardware platforms \\ P-Quest has been developed at the University of Hamburg, Germany, and adds orthogonal persistence to the programming language Quest developed by Luca Cardelli at DEC SRC, Palo Alto, USA. The implementation of P-Quest has been carried out in the ESPRIT-II basic research project FIDE and utilizes the Napier persistent object store provided by the University of St. Andrews, Sccotland.} } @book{Matt93, key= {Matt93}, author= {Matthes, F.}, title= {Persistente Objektsysteme: Integrierte Datenbankentwicklung und Programmerstellung}, year= {1993}, publisher= springer, note= {(In German.)}, 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 Objekt\-speicher, 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 mengen\-orien\-tierte Verarbeitung (benutzerdefinierter) Kollektionen, die Implementierung ge\-ne\-ri\-scher 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.} } @techreport{Maun91, key= {Maun91}, title= {Functional Programming using CAML}, author= {Mauny, M.}, year= {1991}, month= sep, institution= inria, keywords= {Introduction to CAML, YACC parser interface, Dynamic Types, ML, polymorphism} } @book{Merr84, key= {Merr84}, author= {Merrett, T.H.}, title= {Relational Information Systems}, publisher= {Reston Publishing Co., Reston, Virginia}, year= {1984}, keywords= {Aldat, relational programming} } @book{Meyer88, key= {Meyer88}, author= {Meyer, B.}, title= {Object-oriented Software Construction}, publisher= prentice, series= {International Series in Computer Science}, year= {1988}, keywords= {Eiffel, description of OO PL concepts, see also Meye92} } @article{Meyer90, key= {Meyer90}, author= {Meyer, B.}, title= {Lessons from the Design of the Eiffel Libraries}, journal= cacm, volume= 33, number= 9, month= sep, year= {1990}, pages= {69--88}, keywords= {Classes, Clusters, Invariants, Assertions, Naming, Uniformity of Interfaces, Classifying Data Structures, Bulk Data Structures (Access, Traversal, Storage), Browsing, Evolution of Libraries} } @article{Miln78, key= {Miln78}, author= {Milner, R.}, title= {A Theory of Type Polymorphism in Programming}, journal= jcss, volume= 17, year= {1978}, pages= {348--375}, keywords= {foundational work on type inference and parametric polymorphism (ML-style)} } @book{Mink88, key= {Mink88}, author= {Minker, J.}, title= {Foundations of Deductive Databases and Logic Programming}, publisher= kaufmann, year= {1988} } @mastersthesis{Mue91, key= {Mue91}, author= {M{\"u}ller, R.}, title= {Sprachprozessoren und Objektspeicher: Schnittstellenentwurf und -implementierung}, school= ffm-info, month= nov, year= {1991}, keywords= {Object stores, interfaces, abstract machine, P-Quest, Napier, O2} } @techreport{NMM92, key= {NMM92}, author= {Nieder\'ee, C. and M\"u{\ss}ig, S. and Matthes, F.}, title= {{P-Quest} User Manual}, institution= hbg-info, type= {DBIS Tycoon Report}, number= {102-92}, year= {1992}, month= feb, note= {(In German.)}, abstract= {This document provides a smooth intorduction into the language concepts of P-Quest and the underlying persistence model.} } @book{NaTs89, key= {NaTs89}, author= {Naqvi, S. and Tsur, S.}, title= {A Logical Language for Data and Knowledge Bases}, publisher= {Computer Science Press}, year= {1989}, keywords= {LDL, good examples for teaching} } @inproceedings{Naqv89, key= {Naqv89}, author= {Naqvi, S.A.}, title= {Stratification as a Design Principle in Logical Query Languages}, booktitle= dbpl89, month= jun, year= {1989}, keywords= {LDL und Stratification sehr schoen erlaeutert.} } @techreport{NeWS90, key= {NeWS90}, title= {{NeWS} 2.1 Programmer's Guide}, author= {{Sun Microsystems}}, number= {800-4888-10}, institution= {Sun Microsystems}, year= {1992}, } @book{Nels91, key= {Nels91}, editor= {Nelson, G.}, title= {Systems programming with Modula-3}, publisher= prentice, series= {Series in innovative technology}, year= {1991}, keywords= {(Revised) Modula-3 Report, Standard Interfaces, Floating Point, Pickles, Concurrent Programming with Threads, Thread Synchroinzation [Spec a la Larch], I/O Sterams: Abstract Types, Real Programs, Trestle Window System Tutorial, Discussion=Language Rationale} } @inproceedings{Nikh85, key= {Nikh85}, author= {Nikhil, R.S.}, title= {Functional Databases, Functional Languages}, editor= {Atkinson, M.P. and Buneman, P. and Morrison, R.}, booktitle= {Data Types and Persistence}, series= tis, publisher= springer, year= {1988}, keywords= {FDBPL (functional DBPL)} } @inproceedings{OBBT89, key= {OBBT89}, author= {Ohori, A. and Buneman, P. and Breazu-Tannen, V.}, title= {Database Programming in {Machiavelli} -- a Polymorphic Language with Static Type Inference}, booktitle= sigmod89, year= {1989}, pages= {46--57}, keywords= {record join, polymorphic field selection, record types} } @techreport{Orac90, key= {Orac90}, title= {PL/SQL User's Guide and Reference, Version 1.0}, author= {{Oracle Corporation}}, number= {Part No.~800-V1.0}, month= jun, institution= {Oracle Corporation}, year= {1991}, } @techreport{POSIX, key= {POSIX}, title= {Portable Operating System Interface for Computer Environments ({POSIX})}, institution= {National Bureau of Standards}, type= {Federal information processing standards publication}, number= {NBS-FIPS-PUB-151-1}, year= {1990}, keywords= {Standard, Threads} } @inproceedings{Pale72, key= {Pale72}, author= {Palermo, F.P.}, title= {A Data Base Search Problem}, booktitle= {Proceedings 4th Computer and Information Science Symposium}, address= {Miami Beach}, pages= {67--101}, year= {1972} } @techreport{Plot81, key= {Plot81}, author= {Plotkin, G.D.}, title= {A structural appraoch to operational semantics}, institution= {Computer Science Department, Aarhus University}, year= {1981}, number= {19}, type= {DIAMI FN}, keywords= {standard reference for operational semantics; deduction rules} } @inproceedings{PoSm94, author= {Poulovassilis, A. and Small, C.}, title= {Investigation of Algebraic Query Optimisation for Database Programming Languages}, booktitle= vldb94, address= {}, month= sep, year= 1994, abstract= { algebraic query optimization techniques for database programming languages are investigated in the context of a purely declarative functional language that supports sets as first-class objects. Within the language, it is possible to use user-defined functions as query predicates and as target expressions. Since the language is computationally complete, the possibility of non-termination and the construction of infinite data structures must be taken into account, whilst problems concerning side-effects are avoided. As in our framework, all optimizations can be fully exploited for all subexpressions of a query since no distinct languages are used to represent query trees and programming language expressions. }} @article{RCS93, author= {Richardson, J.E. and Carey, M. J. and Schuh, D.T}, title= {The design of the E Programming Language}, journal= toplas, volume= 15, number= 3, month= Jul, year= {1993}, pages= {494--534}, keywords= {Parameterized (generator) classes, iterators (like CLU plus advance & break), allocation-based persistence vs. reachability-based persistence, persistence limited to DB types (Persistent Modula-3, ObjectStore), criticises flat global name space a la C++}} @techreport{RLW85, key= {RLW85}, author= {Rovner, P. and Levin, R. and Wick, J.}, title= {On Extending Modula-2 for Building Large, Integrated Systems}, institution= src, number= 3, month= jan, year= {1985}, keywords= {Modula-2 Language Report, style guide, exceptions, REFANY} } @inproceedings{RMS95, author= {Rudloff, A. and Matthes, F. and Schmidt, J.W.}, title= {Security as an Add-On Quality in Persistent Object Systems}, booktitle= {Second International East/West Database Workshop}, series= {Workshops in Computing}, publisher= springer, year= 1995, note= {(to appear)}, keywords= {Tycoon, authorization, authentication, security} } @inproceedings{RS79, key= {RS79}, author= {Rowe, L. and Shoens, K.}, title= {Data Abstraction, Views and Updates in RIGEL}, booktitle= sigmod79, year= {1979}, pages= {71--81} } @techreport{Reim81, key= {Reim81}, author= {Reimer, M. and Schmidt, J.W.}, title= {Transaction Procedures with Relational Parameters}, institution= eth, number= {45}, month= oct, year= {1981}, keywords= {Modula/R} } @techreport{Reim83, key= {Reim83}, author= {Koch, J. and Mall, M. and Putfarken, P. and Reimer, M. and Schmidt, J.W. and Zehnder, C.A.}, title= {{Modula/R} Report, Lilith Version}, institution= eth, month= feb, year= {1983} } @inproceedings{Reut89, key= {Reut89}, author= {Reuter, A.}, title= {{ConTracts}: A Means for Extending Control Beyond Transaction Boundaries}, booktitle= {Third International Workshop on High Performance Transaction Systems}, year= {1989}, keywords= {Cooperative Activities, Transactions, Scheduling} } @inproceedings{RiCa87, key= {RiCa87}, author= {Richardson, J. and Carey, M.}, title= {Programming Constructs for Database System Implementation in EXODUS}, booktitle= sigmod87, month= may, year= {1987}, keywords= {E, DBPLs, EXODUS C extension} } @techreport{Rich89, key= {Rich89}, author= {Richardson, J.E.}, title= {E: A Persistent Systems Implementation Language}, institution= {Computer Sciences Department, University of Wisconsin-Madison}, type= {Technical Report}, number= 868, month= aug, year= {1989} } @inproceedings{S*86, key= {S*86}, author= {Schaffert, C. and Cooper, T. and Bullis, B. and Kilian, M. and Wilpolt, C.}, title= {An Introduction to Trellis/Owl}, booktitle= oopsla86, month= oct, year= {1986}, pages= {9--16}, keywords= {Trellis/Owl} } @techreport{S*92, key= {S*92}, author= {Stemple, D. and Stanton, R.B. and Sheard, T. and Philbrow, P. and Morrison, R. and Kirby, G.N.C. and Fegaras, L. and Cooper, R.L. and Connor, R.C.H. and Atkinson, M.P. and Alagic, S.}, title= {Type-Safe Linguistic Reflection: A Generator Technology}, year= {1992}, month= jul, institution= st-andrews, type= {Research Report}, number= {CS/92/6}, keywords= {TRPL, Napier88, PS-algol, run-time reflection, compile-time reflection} } @book{SDD*86, key= {SDD*86}, author= {Schwartz, J.T. and Dewar, R.B.K. and Dubinski, E. and Schonberg, E.}, title= {Programming with Sets: An Introduction to SETL}, publisher= springer, series= tmcs, year= {1986}, keywords= {bulk types, sets, maps, iterators, exceptions, backtracking, data representation, high-level languages} } @techreport{SEM88, key= {SEM88}, author= {Schmidt, J.W. and Eckhardt, H. and Matthes, F.}, title= {{DBPL Report}}, institution= ffm-info, type= {DBPL-Memo}, number= {112-88}, year= {1988}, comments= {Outdated, see \cite{ScMa92a}} } @techreport{SFL83, key= {SFL83}, author= {Smith, J.M. and Fox, S. and Landers, T.}, title= {ADAPLEX: Rationale and Reference Manual (2nd ed.)}, institution= {Computer Corporation of America, Cambridge, Mass.}, year= {1983} } @inproceedings{SFSS90, key= {SFSS90}, author= {Stemple, D. and Fegaras, L. and Sheard, T. and Socorro, A.}, title= {Exceeding the Limits of Polymorphism in Database Programming Languages}, booktitle= edbt90, publisher= springer, series= lncs, volume= {416}, year= {1990}, pages= {269--285}, keywords= {Reflection (statically bound and type checked), Natural Join, good references, ADABTPL} } @inproceedings{SMRS93, key= {SMRS93}, title= {Viewers: A Data-World Analogue of Procedure Calls}, author= {Subieta, K. and Matthes, F. and Rudloff, A. and Schmidt, J.W. and Wetzel, I.}, month= aug, year= {1993}, booktitle= vldb93, keywords= {viewer, inheritance, references}, abstract= {A viewer is a reference-valued datum with a special meaning: a value of the data pointed by the viewer becomes a virtual part of data where the viewer is placed; the value virtually substitutes the viewer. Viewers are considered to be a data-world analogue of procedure calls. They possess a large conceptual and pragmatic potential as a result of new data semantics on which we can base a variety of well-organized data structures. Various applications of viewers, related to DBPLs and object-oriented data modelling, are presented: importing common attributes, inheritance and multi-inheritance, stored selections, projections and joins, viewing a single relational structure as several hierarchical structures, etc. Methodological and formal aspects of the concept are discussed and a method of incorporating viewers into a query language is presented.} } @inproceedings{SMV93, key= {SMV93}, author= {Schmidt, J.W. and Matthes, F. and Valduriez, P.}, title= {Building Persistent Application Systems in Fully Integrated Data Environments: Modularization, Abstraction and Interoperability}, booktitle= {Proceedings of Euro-Arch'93 Congress}, publisher= springer, month= oct, year= {1993}, pages= {270--287}, abstract= {Research and development in the FIDE project on Fully Integrated Data Environments has led to the concept of Persistent Object Systems (POS) which generalize database systems by re-interpreting schemas as type definitions and databases as typed variables in addition to treating lifetime as a type-independent property. Furthermore, FIDE develops uniform linguistic interfaces for data modelling, computation and communication, and extends database, programming and communication technology to enable integrated application development based on interoperating POSs.\\ As a consequence of such an integrated view, formerly disjoint concepts such as databases, program and module libraries, files or repositories can now be treated uniformly as POSs differentiated essentially by the types of objects they contain and by the operational abstractions they provide. \\ Based on state-of-the-art database technology, this paper outlines FIDE results in extending databases and providing the integrated technology considered necessary for the construction and maintenance of Persistent Application Systems. Since our main goal is to improve substantially a system's capability of persisting successfully over time in changing environments, particular emphasis will be placed on systems scalability and its consequences for POS interoperability.} } @article{SNG90, key= {SNG90}, author= {Santo, M. and Nigro, L. and Russo, W.}, title= {Programmer-Defined Control Abstractions in Modula-2}, journal= {Computer Languages}, month= oct, volume= 15, number= 3, year= {1990}, keywords= {iterators, recursion, continuations}, coments= {not too good} } @inproceedings{SSF92, key= {SSF92}, author= {Stemple, D. and Sheard, T. and Fegaras, L.}, title= {Linguistic Reflection: A Bridge from Programming to Database Languages}, booktitle= hicss92, year= {1992}, pages= {46--55}, keywords= {TRPL, Macros, Optimizing Queries, natural join, compile-time reflection} } @article{SWBM89, key= {SWBM89}, author= {Schmidt, J.W. and Wetzel, I. and Borgida, A. and Mylopoulos, J.}, title= {Database Programming by Formal Refinement of Conceptual Designs}, journal= {IEEE -- Data Engineering}, month= sep, year= {1989}, keywords= {DAIDA, B-Tool, Abstract Machines} } @inproceedings{ScMa83, key= {ScMa83}, author= {Schmidt, J.W. and Mall, M.}, title= {Abstraction Mechanisms for Database Programming}, booktitle= {Proc. SIGPLAN Symp. on Programming Language Issues in Software Systems}, address= {San Francisco}, month= jun, year= {1983} } @inproceedings{ScMa90a, key= {ScMa90a}, author= {Schmidt, J.W. and Matthes, F.}, title= {Language Technology for Post-Relational Data Systems}, booktitle= {Database Systems of the 90s}, editor= {Blaser, A.}, series= lncs, volume= 466, month= nov, year= {1990}, pages= {81--114} } @inproceedings{ScMa90b, key= {ScMa90b}, author= {Schmidt, J.W. and Matthes, F.}, title= {Naming Schemes and Name Space Management in the {DBPL} Persistent Storage System}, booktitle= pos90, publisher= kaufmann, month= jan, year= {1991}, keywords= {Marthas Vineyard, Keys, Associative Naming, System Architecture} } @techreport{ScMa91a, key= {ScMa91a}, author= {Schmidt, J.W. and Matthes, F.}, title= {Modular and Rule-Based Database Programming in {DBPL}}, year= {1991}, month= feb, institution= fidecoord, type= fiderep, number= {FIDE/91/15}, comments= {identical to ScMa93a}, abstract= {DBPL is the target language for the implementation of data-intensive applications in the DAIDA project. This paper illustrates how DBPL supports the construction of correct, modular and efficient database programs integrating well-developed compilation and database technology. \\ After an introduction to the language concepts of DBPL, two methodoligical aspects central to the implementation of database applications are discussed. The first task is the representation of the classical abstraction principles of Conceptual Modelling (classification, aggregation, generalization, and association) by typed data structures and data derivation rules in DBPL. The second aspect is the decomposition of application systems consisting of multiple interacting programs into managable, shared modules using a novel abstraction mechanism for bulk data access. \\ By presenting the use of DBPL in some detail, we intend to support our claim that a set- and predicate-oriented view of database modelling resolves the traditional mismatch between declarative database languages and their general-purpose imperative counterparts.} } @inproceedings{ScMa91d, key= {ScMa91d}, title= {The Rationale behind DBPL}, author= {Schmidt, J.W. and Matthes, F.}, month= may, year= {1991}, booktitle= {3rd Symposium on Mathematical Fundamentals of Database and Knowledge Base Systems}, publisher= springer, series= lncs, volume= 495, abstract= {The DBPL language orthogonally integrates sets and first-order predicates into a strongly and statically typed programming language, and the DBPL system supports the language with full database functionality including persistence, query optimization and transaction management. The application of modern language technology to database concepts results in new insights into the relationship between types and schemas, expressions/iterators and queries, selectors and views, or functions and transactions. Furthermore, it allows the exploitation of type theory and formal semantics of programming languages and thus connects database application development with results from program specification and verification.} } @techreport{ScMa92a, key= {ScMa92a}, author= {Schmidt, J.W. and Matthes, F.}, title= {The Database Programming Language {DBPL}: Rationale and Report}, institution= fidecoord, type= fiderep, number= {FIDE/92/46}, year= {1992}, month= jul, keywords= {DBPL, database programming, final report}, abstract= {The database programming language DBPL is based on notion of bulk type and iteration abstraction, supports data persistence and transaction procedures, and has Modula-2 as its algorithmic kernel. This document describes the rationale behind DBPL and defines the elements of the language.}, comments= {identical to \cite{ScMa92b}} } @incollection{ScMa93a, key= {ScMa93a}, author= {Schmidt, J.W. and Matthes, F.}, title= {Modular and Rule-Based Database Programming in DBPL}, pages= {85--124}, editor= {Jarke, M.}, booktitle= {Database Application Engineering with DAIDA}, publisher= springer, year= {1993}, comments= {identical to \cite{ScMa91a}}, abstract= {DBPL is the target language for the implementation of data-intensive applications in the DAIDA project. This paper illustrates how DBPL supports the construction of correct, modular and efficient database programs integrating well-developed compilation and database technology. \\ After an introduction to the language concepts of DBPL, two methodoligical aspects central to the implementation of database applications are discussed. The first task is the representation of the classical abstraction principles of Conceptual Modelling (classification, aggregation, generalization, and association) by typed data structures and data derivation rules in DBPL. The second aspect is the decomposition of application systems consisting of multiple interacting programs into managable, shared modules using a novel abstraction mechanism for bulk data access. \\ By presenting the use of DBPL in some detail, we intend to support our claim that a set- and predicate-oriented view of database modelling resolves the traditional mismatch between declarative database languages and their general-purpose imperative counterparts.} } @inproceedings{ScMa93, key= {ScMa93}, title= {Lean Languages and Models: Towards an Interoperable Kernel for Persistent Object Systems}, author= {Schmidt, J.W. and Matthes, F.}, year= {1993}, booktitle= {Proceedings of the IEEE International Workshop on Research Issues in Data Engineering}, pages= {2--16}, month= apr, 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.} } @article{ScMa94, key= {ScMa94}, author= {Schmidt, J.W. and Matthes, F.}, title= {The {DBPL} Project: Advances in Modular Database Programming}, journal= {Information Systems}, volume= {19}, number= {2}, pages= {121--140}, year= 1994, documentdirectory= {1994/ScMa94}, abstract= { In the DBPL project we tackled the problem of supporting data-intensive applications in a single framework, clean and simple in its conceptual foundation and free of technical mismatches. Conceptually, we based the DBPL language on Modula-2 with three built-in extensions which, at that time, were considered necessary (and sufficient) for data-intensive applications: \begin{itemize} \item a parametric bulk type constructor for ``keyed sets'' or relations; \item a module concept which supports sharing across programs and implies persistence; \item a procedure concept with transactional semantics, i.e., serializability and recovery. \end{itemize} In implementing the DBPL system we adopted a rather strict approach by aiming for \begin{itemize} \item full orthogonality in our relationally extended type space; \item type-complete persistence, i.e. longevity of data from Booleans to relations; \item functional abstraction for relational expressions including recursion. \end{itemize} As a consequence, the DBPL project covers in a quite natural way approaches otherwise considered disjoint as, for example, complex objects, multibases and data deduction.\\ In this paper, besides reporting on project achievements and spin-offs, we also present our insight in good-quality project design and its dependency on conceptual simplicity and implementational strictness. This also includes early recognition of the essential project ``terminator'' which, in our project, was Modula-2's monomorphic type system and its intrinsic restrictions on systems extensibility.\\ The DBPL project results in a mature product for modular database application programming and a follow-up project based on polymorphic types and other higher-order concepts}} @techreport{SchMa92, key= {SchMa92}, author= {Schr\"oder, G. and Matthes, F.}, title= {Using the {Tycoon} Compiler Toolkit}, institution= hbg-info, type= {DBIS Tycoon Report}, number= {061-92}, year= {1992}, month= may, keywords= {Tycoon, compiler generator, lexical analyzer, scanner, parser}, 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.} } @inproceedings{Schm77a, key= {Schm77a}, author= {Schmidt, J.W.}, title= {Some High Level Language Constructs for Data of Type Relation}, booktitle= sigmod77, month= aug, year= {1977}, keywords= {Pascal/R}, } @inproceedings{Schm77b, key= {Schm77b}, author= {Schmidt, J.W.}, title= {Some High Level Language Constructs for Data of Type Relation}, booktitle= sigmod77, month= aug, year= {1977}, keywords= {Pascal/R}, note= {(Also appeared in ACM TODS, 2(3), September, 1977 and A. Wasserman (editor), IEEE Tutorial on Programming Language Design, and M. Stonebreaker (editor), Readings in Database Systems, Morgan Kaufmann Publishers, 1988 and 1993)} } @incollection{Schm78, key= {Schm78}, author= {Schmidt, J.W.}, title= {Type Concepts for Database Definition}, booktitle= {Databases: Improving Usability and Responsiveness}, editor= {Shneiderman, B.}, publisher= academic-press, year= {1978} } @techreport{Schm80, key= {Schm80}, author= {Schmidt, J.W. and Mall, M.}, title= {Pascal/R Report}, institution= hbg-info, type= {Bericht}, number= 66, month= jan, year= {1980} } @book{Sebe89, key= {Sebe89}, author= {Sebesta, R.W.}, title= {Concepts of Programming Languages}, publisher= benjamin-cummings, series= {Benjamin/Cummings Series in Computer Science}, year= {1989}, keywords= {good examples, binding, typing, naming, implementation, mainly imperative programming languages, nice historic stories}, comments= {Signatur: P SEB 13780} } @article{Shop79, key= {Shop79}, author= {Shopiro, J.E.}, title= {Theseus -- A programming language for relational databases}, journal= tods, volume= 4, number= 4, month= dec, year= {1979}, pages= {493--517}, keywords= {Theseus, early relational dbpls} } @techreport{SrWa92, author= {Srivastava, A. and Wall, D.W.}, title= {A Practical System for Intermodule Code Optimization at Link-Time}, institution= {DEC WRL Research Report}, number= {92/6}, year= {1992}, keywords= {optimization, run-time, abstraction barriers} } @inproceedings{StSh91, key= {StSh91}, author= {Stemple, D. and Sheard, T.}, title= {A Recursive Base for Database Programming Primitives}, booktitle= eastwest91, series= lncs, volume= {504}, month= apr, year= {1991}, keywords= {TRPL, set iteration, bulk types, structural recursion} } @techreport{Stee78, key= {Stee78}, author= {Steele, G.L.}, title= {Rabbit: A Compiler for {Scheme}}, institution= {Massachusetts Institute of Technology}, year= {1978}, month= may, abstract= {compiler optimization, transformation, continuation passing} } @article{Stee86, key= {Stee86}, author= {Steele, {G.L. Jr}}, title= {The Revised$^3$ Report on the Algorithmic Language {Scheme}}, journal= sigplan, volume= 21, number= 12, month= dec, year= {1986}, pages= {37--79}, keywords= {Language report Scheme, statically scoped Lisp} } @article{Ston90, key= {Ston90}, title= {Special Issue on Database Prototype Systems}, author= {Stonebraker, M.}, journal= {IEEE Transactions on Knowledge and Data Engineering}, volume= 2, number= 1, month= mar, year= {1990}, keywords= {excellent collection of papers: DASDBS, Bubba, Gamma, Iris, LDL, O2, ORION, POSTGRES, Starburst, System M}, comments= {FBIHH} } @book{Stra67, key= {Stra67}, editor= {Strachey, C.}, title= {Fundamental concepts in programming languages}, publisher= oxford-press, year= {1967}, comments= {Read again ##} } @inproceedings{Swen93, key= {Swen93}, author= {Swenson, K.D.}, title= {Visual Support for Reengineering Work Processes}, booktitle= coocs93, year= {1993}, publisher= acm-press, keywords= {visual language, collaboration, work flow, process modeling, business process reengineering, scripts, state charts} } @techreport{TDF91a, key= {TDF91a}, title= {{TDF} Specification}, author= {{RSRE}}, institution= {Defense Research Agency, RSRE}, address= {St. Andrews Road, Malvern, Worcestershire WR 14 3PS, UK}, note= {(2 parts)}, year= {1991}, month= oct, keywords= {ANDF, TDF, Architecture Neutral Distribution Format, Intermediate Representaion, Tagging, compiler, front-end, back end, UNCOL, data representation} } @article{Tedo91, key= {Tedo91}, author= {Teodosiu, D.}, title= {{HARE}: An Optimizing Portable Compiler for {Scheme}}, journal= sigplan, volume= {26}, number= {1}, month= jan, year= {1991}, pages= {109--120}, abstract= {Assignment Conversion, Cell Conversion, Code Generation, Continuation Passing Style, Abstract Machines, Register Machines} } @inproceedings{Trind91, key= {Trind91}, author= {Trinder, P.}, title= {Comprehensions, a Query Notation for {DBPLs}}, booktitle= dbpl91, publisher= kaufmann, month= sep, year= {1991}, keywords= {(list) comprehensions, ringads, monads, quads, brief comparison} } @book{Turn93, key= {Turn93}, title= {Using Formal Description Techniques, An Introduction to Estelle, Lotos and SDL}, editor= {Turner, K.}, year= {1993}, publisher= wiley, series= {Wiley series in communication and distributed systems}, keywords= {Activities, Processes, Threads ,...} } @book{Ullm89, key= {Ullm89}, author= {Ullman, J.D.}, title= {Database and Knowledge-Base Systems, vol. 2}, publisher= {Computer Science Press}, year= {1989}, keywords= {Signatur: P ULL 15642 Query Optimization, Logic with function symbols, top-down, bottom-up, conjunctive queries, linear recursions, knowledge-base systems} } @article{W*81, key= {W*81}, author= {Wasserman, A.L. and Sheretz, D.D. and Kerstin, M.L.}, title= {Revised Report on the Programming Language PLAIN}, journal= sigplan, volume= 16, number= 5, month= may, year= {1981}, pages= {59--80} } @inproceedings{Wadl90, key= {Wadl90}, author= {Wadler, P.}, title= {Comprehending Monads}, booktitle= {ACM Conference on Lisp and Functional Programming}, address= {Nice}, month= jun, year= {1990}, comments= {FM has copy}, keywords= {Monads, list comprehensions, arrays in pure / impure functional programming, iterators, bulk structures} } @inproceedings{Wass79, key= {Wass79}, author= {Wasserman, A.L.}, title= {The Data Management Facilities of PLAIN}, booktitle= sigmod79, year= {1979}, pages= {60--70} } @incollection{Wirt85b, key= {Wirt85b}, author= {Wirth, N.}, title= {Report on the Programming Language Modula-2}, booktitle= {Programming in Modula-2}, edition= {3rd}, publisher= springer, year= {1985} } @techreport{Wirt87a, key= {Wirt87a}, author= {Wirth, N.}, title= {The Programming Language Oberon}, institution= eth, year= {1987} } @book{ZdMa89, key= {ZdMa89}, author= {Zdonik, S.B. and Maier, D.}, title= {Readings in Object Oriented Database Management Systems}, publisher= kaufmann, year= {1989}, comments= {Good collection, Signatur A REA 15232}, keywords= {object stores, object-oriented data models} }