//img.uscri.be/pth/d1ba5c749a50bb155fb42e92e087d56bfd5ef91c
Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

A Higher order Module Discipline with Separate Compilation Dynamic Linking and Pickling

De
13 pages
A Higher-order Module Discipline with Separate Compilation, Dynamic Linking, and Pickling DRAFT Denys Duchier, Leif Kornstaedt, Christian Schulte, Gert Smolka Programming Systems Lab DFKI and Universitat des Saarlandes Postfach 15 11 50, D-66041 Saarbrucken, Germany fduchier,kornstae,schulte, September 29, 1998 Abstract We present a higher-order module discipline with separate compilation and concurrent dynamic linking. Based on first-order modules one can program security policies for systems that link modules from untrusted locations (e.g., Java). We introduce a pickling operation that writes persistent clones of volatile, possibly higher-order data structures on the file system. Our pickling operation respects lexical binding. Our module discipline is based on func- tors, which are annotated functions that are applied to modules and return modules. Pickled computed functors can be used interchangeably with com- piled functors. In contrast to compiled functors, pickled computed functors can carry computed data structures with them, which has significant practical applications. 1 Introduction Modularization is an essential technique for developing and maintaining software systems [12, 16]. Programming languages support modularization by replacing complete programs with program fragments called module definitions. Module definitions reside in individual files and are compiled separately. Execution of a module definition installs a module. Module definitions typically import modules, 1

  • functors

  • functors can

  • root functor

  • t1 supports

  • support modularization

  • file system

  • can designate

  • dynamic linking


Voir plus Voir moins
A Higher-order Module Discipline with Separate
Compilation, Dynamic Linking, and Pickling
DRAFT
Denys Duchier, Leif Kornstaedt, Christian Schulte, Gert Smolka
Programming Systems Lab
DFKI and Universit¨at des Saarlandes
Postfach 15 11 50, D-66041 Saarbr¨ucken, Germany
duchier,kornstae,schulte,smolka
@ps.uni-sb.de
September 29, 1998
Abstract
We present a higher-order module discipline with separate compilation and
concurrent dynamic linking. Based on first-order modules one can program
security policies for systems that link modules from untrusted locations (e.g.,
Java).
We introduce a pickling operation that writes persistent clones of
volatile, possibly higher-order data structures on the file system. Our pickling
operation respects lexical binding. Our module discipline is based on func-
tors, which are annotated functions that are applied to modules and return
modules. Pickled computed functors can be used interchangeably with com-
piled functors. In contrast to compiled functors, pickled computed functors
can carry computed data structures with them, which has significant practical
applications.
1
Introduction
Modularization is an essential technique for developing and maintaining software
systems [12, 16]. Programming languages support modularization by replacing
complete programs with program fragments called
module definitions
.
Module
definitions reside in individual files and are
compiled separately
. Execution of a
module definition installs a
module
. Module definitions typically
import
modules,
1