Managing persistent objects : from the programming language to the system
Gestion d'objets persistants : du langage de programmation au système
Résumé
Peplom PErsistent Programming Language for Object Management is described in this thesis at two levels: model definition and implementation. Peplom covers three main issues: safety, efficiency and flexibility of the application schema (types, modules, etc...). It is not a completely new language as it is syntactically based on the C/C++ language thus keeping close to standards. The state of the art, covering the combination of databases and programming languages, is composed of two parts. It first studies possible memory models to support various type systems. Second, it evaluates and compares existing object-oriented DBMS at different levels. The main design thrust of Peplom is the powerful integration of concepts. Thus, strong typing and the integration of database concepts within the programming language enhance safety. Moreover, the problem of programs structuration is tackled by introducing abstract types and modules: abstract types organize intentional data definitions while modules organize extensional data definitions. There are two phases to produce Peplom programs. The first phase consists in defining application components. A dictionary, managed by the compiler, incrementally records all these components that compose the schema. It authorizes transient inconsistencies of this schema thus offering flexibility to the programmer and allowing schema evolution. The second phase consists in producing ready-to-run applications. The produced object code supports the structural and semantic data models and runs on a low level memory manager. The performance observed on the prototype implemented is comparable to that of persistent C++ systems offering less functionality.
Cette these decrit la definition et la mise en oeuvre dun langage de programmation pour bases de donnees : le langage a objets Peplom (PErsistent Programming Language for Object Management). Lapproche adoptee a pour but doffrir une su^rete importante du langage, une implementation efficace et de la flexibilite pour le schema des definitions (types, modules, etc...). Le langage propose nest pas totalement nouveau puisquil est syntaxiquement base sur le langage C/C++ ce qui lui confere une conformite avec les standards. La these presente dans un premier temps un etat de lart en deux parties. La premiere partie sattache a etudier les systemes de types sous langle des modeles de memoire necessaires a leur implantation. La deuxieme partie analyse les SGBD a objets existants et les compare suivant un certain nombre de criteres. Le langage Peplom est ensuite decrit en insistant surtout sur leffort dintegration de concepts. Un typage fort et lintroduction orthogonale des concepts bases de donnees dans le langage de programmation lui confere une grande su^rete. Par ailleurs, Peplom apporte une solution interessante au probleme de structuration des programmes qui seffectue a deux niveaux : les types abstraits structurent les definitions des entites modelisees alors que les modules structurent les donnees manipulees. La production de programmes avec le langage Peplom seffectue en deux phases. La premiere phase consiste a saisir les definitions composant lapplication. Celles-ci sont memorisees de maniere incrementale dans un dictionnaire gere par le compilateur. Le dictionnaire autorise les incoherences transitoires de la description des programmes, offrant ainsi une grande flexibilite pour le programmeur et une bonne base pour levolution de schemas. La deuxieme phase realise la generation dapplications executables. Le generateur produit du code supportant le modele structurel et semantique des donnees. Il sappuie sur la couche systeme consistant simplement en un gestionnaire de memoire (persistante et temporaire). Les performances du prototype implante sont comparables a celles des systemes C++ persistants offrant moins de fonctionnalites.
Domaines
Interface homme-machine [cs.HC]
Loading...