In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling independent compilation of the fragment. A macro system, in contrast, relies on explicit links among fragments that import macros, since macro expansion must happen at compile time. Our combination places macro definitions inside component signatures, thereby permitting macro expansion at compile time, while still allowing independent compilation and linking for the run-time part of components
We present an extension to Standard ML, called SMLSC, to support separate compilation. The system gi...
Programming languages offer a variety of constructs to support code reuse. For example, functional l...
The developers of a programming language need to document its intended syntax and semantics, and to ...
The benefits of module systems and lexically scoped syntactic abstraction (macro) facilities are wel...
Naive program transformations can have surprising effects due to the interaction between introduced ...
We identify three programming language abstractions for the construction of reusable components: abs...
Genuine differences in the treatment of identifiers in block-structured languages and those that pro...
ABSTRACT We identify three programming language abstractions for the construction of reusable compon...
In this paper we describe {\\it syntactic closures}. Syntactic closures address the scoping proble...
Article in PressInternational audienceComponent-oriented programming is actually a key research trac...
Current approaches to component-oriented programming are based on traditional object-oriented langua...
Even in the days of Lisp’s simple defmacro systems, macro developers did not have adequate debugging...
Current approaches to component-oriented programming are based on traditional object-oriented langua...
Over the past two decades, Scheme macros have evolved into a pow-erful API for the compiler front-en...
Abstract. Component-oriented programming yields a tension between higher-order features (deployment,...
We present an extension to Standard ML, called SMLSC, to support separate compilation. The system gi...
Programming languages offer a variety of constructs to support code reuse. For example, functional l...
The developers of a programming language need to document its intended syntax and semantics, and to ...
The benefits of module systems and lexically scoped syntactic abstraction (macro) facilities are wel...
Naive program transformations can have surprising effects due to the interaction between introduced ...
We identify three programming language abstractions for the construction of reusable components: abs...
Genuine differences in the treatment of identifiers in block-structured languages and those that pro...
ABSTRACT We identify three programming language abstractions for the construction of reusable compon...
In this paper we describe {\\it syntactic closures}. Syntactic closures address the scoping proble...
Article in PressInternational audienceComponent-oriented programming is actually a key research trac...
Current approaches to component-oriented programming are based on traditional object-oriented langua...
Even in the days of Lisp’s simple defmacro systems, macro developers did not have adequate debugging...
Current approaches to component-oriented programming are based on traditional object-oriented langua...
Over the past two decades, Scheme macros have evolved into a pow-erful API for the compiler front-en...
Abstract. Component-oriented programming yields a tension between higher-order features (deployment,...
We present an extension to Standard ML, called SMLSC, to support separate compilation. The system gi...
Programming languages offer a variety of constructs to support code reuse. For example, functional l...
The developers of a programming language need to document its intended syntax and semantics, and to ...