Results 11 -
14 of
14
Abstractions for Component-Based Programming with Dynamic Linking
, 2001
"... Component-based programming is an increasingly prevalent theme in software development, motivating the need for expressive and safe module interconnection languages. Dynamic linking is an important requirement for module interconnection languages, as exemplified by dynamic link libraries (DLLs) and ..."
Abstract
- Add to MetaCart
Component-based programming is an increasingly prevalent theme in software development, motivating the need for expressive and safe module interconnection languages. Dynamic linking is an important requirement for module interconnection languages, as exemplified by dynamic link libraries (DLLs) and class loaders in COM and Java, respectively. This paper considers a set of abstractions for type-safe component-based programming that supports shared libraries and dynamic linking, as well as circular import dependencies (recursive modules). The core language requirements of the abstractions are compatible with programming languages such as Java.
True Higher-Order Modules, Separate Compilation, and Signature Calculi ∗
, 2009
"... In the past three decades, the ML module system has been the focal point of tremendous interest in the research community. The combination of parameterized modules and fine-grain data abstraction control have proven to be quite powerful in practice. Mainstream languages have slowly adopted features ..."
Abstract
- Add to MetaCart
In the past three decades, the ML module system has been the focal point of tremendous interest in the research community. The combination of parameterized modules and fine-grain data abstraction control have proven to be quite powerful in practice. Mainstream languages have slowly adopted features inspired by the ML module system. However, programmers have run into various limitations and complexities in implementations of the ML module system. In the presence of common extensions such as true higher-order modules, true separate compilation becomes a problem. This conflict reflects a fundamental tension in module system design. Module systems should both propagate as much type information across module boundaries as is unconstrained by the programmer and be able to separately typecheck modules. 1
Towards Fully Controlled Overloading Across Module Boundaries
"... Abstract. This paper proposes a set of modularisation constructs as well as a new implementation technique for overloading functions across module boundaries. In contrast to existing approaches, it allows to fully preserve separation of namespaces without restricting the potential for later overload ..."
Abstract
- Add to MetaCart
Abstract. This paper proposes a set of modularisation constructs as well as a new implementation technique for overloading functions across module boundaries. In contrast to existing approaches, it allows to fully preserve separation of namespaces without restricting the potential for later overloadings, including mutual recursion across module boundaries. This gives the programmer control over the visibility of individual function definitions within each namespace and, thus, allows several different sets of instances for a single overloaded function to be used within one program. Based on a very simple applied λ-calculus as core language, the modularisation constructs are defined and a transformation scheme into an applied λ-calculus is presented. Furthermore, an outline of an implementation in the context of the functional programming language SaC is given. 1

