An approach to genuine dynamic linking
Software—Practice & Experience
A code generation interface for ANSI C
Software—Practice & Experience
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Efficient software-based fault isolation
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Exploiting specifications to improve program performance
Exploiting specifications to improve program performance
A framework for execution monitoring in Icon
Software—Practice & Experience
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic compiler-inserted I/O prefetching for out-of-core applications
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
An Overview of a Compiler for Scalable Parallel Machines
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
A programmable preprocessor for parallelizing Fortran-90
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
Using meta-level compilation to check FLASH protocol code
ACM SIGPLAN Notices
Impact of economics on compiler optimization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Using meta-level compilation to check FLASH protocol code
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Imperative Program Transformation by Rewriting
CC '01 Proceedings of the 10th International Conference on Compiler Construction
STLlint: lifting static checking from languages to libraries
Software—Practice & Experience
JunGL: a scripting language for refactoring
Proceedings of the 28th international conference on Software engineering
Using SCL to Specify and Check Design Intent in Source Code
IEEE Transactions on Software Engineering
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Combining performance aspects of irregular gauss-seidel via sparse tiling
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Hi-index | 0.00 |
Interfaces驴the collection of procedures and data structures that define a library, a subsystem, a module驴are syntactically poor programming languages. They have state (defined both by the interface's data structures and internally), operations on this state (defined by the interface's procedures), and semantics associated with these operations. Given a way to incorporate interface semantics into compilation, interfaces can be compiled in the same manner as traditional languages such as ANSI C or FORTRAN. This paper makes two contributions. First, it proposes and explores the metaphor of interface compilation, and provides the beginnings of a programming methodology for exploiting it. Second, it presents Magik, a system built to support interface compilation. UsingMagik, software developers can build optimizers and checkers for their interface languages, and have these extensions incorporated into compilation, with a corresponding gain in efficiency and safety. This organization contrasts with traditional compilation, which relegates programmers to the role of passive consumers, rather than active exploiters of a compiler's transformational abilities.