Title
Lightweight lexical closures for legitimate execution stack access
Abstract
We propose a new language concept called “L-closures” for a running program to legitimately inspect/modify the contents of its execution stack. L-closures are lightweight lexical closures created by evaluating nested function definitions. A lexical closure can access the lexically-scoped variables in the creation-time environment and indirect calls to it provide legitimate stack access. By using an intermediate language extended with L-closures in high-level compilers, high-level services such as garbage collection, check-pointing, multithreading and load balancing can be implemented elegantly and efficiently. Each variable accessed by an L-closure uses private and shared locations for giving the private location a chance to get a register. Operations to keep coherency with shared locations as well as operations to initialize L-closures are delayed until an L-closure is actually invoked. Because most high-level services create L-closures very frequently but call them infrequently (e.g., to scan roots in garbage collection), the total overhead can be reduced significantly. Since the GNU C compiler provides nested functions, we enhanced GCC at relatively low implementation costs. The results of performance measurements exhibit quite low costs of creating and maintaining L-closures.
Year
DOI
Venue
2006
10.1007/11688839_15
CC
Keywords
Field
DocType
lexical closure,intermediate language,nested function,low implementation cost,lightweight lexical closure,high-level compiler,low cost,high-level service,legitimate execution,nested function definition,garbage collection,load balance
Multithreading,Closure (computer programming),Programming language,Load balancing (computing),Computer science,Call stack,Nested function,Compiler,Garbage collection,Retard,Operating system
Conference
Volume
ISSN
ISBN
3923
0302-9743
3-540-33050-X
Citations 
PageRank 
References 
7
0.68
13
Authors
3
Name
Order
Citations
PageRank
Yasugi Masahiro15612.03
Tasuku Hiraishi2275.96
Taiichi Yuasa36116.22