A Language for Composing Program Modules

We describe a linking language (LL) allowing programs to be constructed hierarchically from software components. LL is based on a kind of module algebra similar to process algebra. A module has an interface of imported and exported names, and the main operations are composition, renaming, and restriction. This approach supports reusability of software and is especially suitable for object-based or object oriented programming. A program is created as a structure of interconnected objects, and when elaborating this structure it is possible to make checking and optimizations for correct and efficient execution. Two applications are reported, the object-based programming system PL/LL and a programming environment for the EDA (Extended Dataflow Architecture) multiprocessing model.

[1]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1976, IEEE Trans. Software Eng..

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  Robin Milner,et al.  Concurrent Processes and Their Syntax , 1979, JACM.

[4]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[5]  Professor Dr. Niklaus Wirth,et al.  Programming in Modula-2 , 1982, Springer Berlin Heidelberg.

[6]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[7]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[8]  Lars-Erik Thorelli A language for linking modules into systems , 1985, BIT Comput. Sci. Sect..

[9]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[10]  Lars-Erik Thorelli Modules and Type Checking in PL/LL , 1987, OOPSLA.

[11]  Martín Abadi,et al.  Dynamic typing in a statically-typed language , 1989, POPL '89.

[12]  Peter Wegner Conceptual Evolution of Object-Oriented Programming , 1989 .

[13]  Lars-Erik Thorelli,et al.  Extending Dataflow Principles for Multiprocessing , 1990, ICPP.

[14]  Jacques Cohen,et al.  Concurrent object-oriented programming , 1993, CACM.

[15]  R. Kent Dybvig,et al.  The Scheme Programming Language , 1995 .