DocumentCode :
1255893
Title :
Interface compilation: steps toward compiling program interfaces as languages
Author :
Engler, Dawson R.
Author_Institution :
Stanford Univ., CA, USA
Volume :
25
Issue :
3
fYear :
1999
Firstpage :
387
Lastpage :
400
Abstract :
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. The article 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. Using MAGIK, 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
Keywords :
application program interfaces; data structures; program compilers; programming language semantics; MAGIK; data structures; interface compilation; interface semantics; language optimizers; program interface compilation; programming languages; programming methodology; software developers; transformational abilities; Computer languages; Control systems; Data structures; File systems; High level languages; Libraries; Optimizing compilers; Program processors; Programming profession; Software safety;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/32.798327
Filename :
798327
Link To Document :
بازگشت