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 Masahiro | 1 | 56 | 12.03 |
Tasuku Hiraishi | 2 | 27 | 5.96 |
Taiichi Yuasa | 3 | 61 | 16.22 |