Last update: Thu Apr 12 03:37:15 MDT 2012
Top |
Symbols |
Numbers |
Math |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
BibTeX entry
@Article{Ertl:1995:SCI,
author = "M. Anton Ertl",
title = "Stack caching for interpreters",
journal = j-SIGPLAN,
volume = "30",
number = "6",
pages = "315--327",
month = jun,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Sun Dec 14 09:17:06 MST 2003",
bibsource = "http://portal.acm.org/;
http://www.acm.org/pubs/contents/proceedings/pldi/207110/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/207110/p315-ertl/",
abstract = "An interpreter can spend a significant part of its
execution time on accessing arguments of virtual
machine instructions. This paper explores two methods
to reduce this overhead for virtual stack machines by
caching top-of-stack values in (real machine)
registers. The {\em dynamic method\/} is based on
having, for every possible state of the cache, one
specialized version of the whole interpreter; the
execution of an instruction usually changes the state
of the cache and the next instruction is executed in
the version corresponding to the new state. In the {\em
static method\/} a state machine that keeps track of
the cache state is added to the compiler. Common
instructions exist in specialized versions for several
states, but it is not necessary to have a version of
every instruction for every cache state. Stack
manipulation instructions are optimized away.",
acknowledgement = ack-nhfb,
affiliation = "Inst. fur Comput., Tech. Univ. Wien, Austria",
annote = "Published as part of the Proceedings of PLDI'95.",
classification = "C6120 (File organisation); C6150C (Compilers,
interpreters and other processors)",
keywords = "algorithms; Cache state; Common instructions;
Compiler; Dynamic method; Execution time; Instruction
execution; Interpreters; languages; performance; Real
machine registers; Specialized version; Stack caching;
Stack manipulation instructions; State machine;
Top-of-stack value caching; Virtual machine instruction
argument access; Virtual stack machines",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Interpreters. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, C. {\bf D.3.2} Software, PROGRAMMING
LANGUAGES, Language Classifications, FORTH. {\bf D.3.4}
Software, PROGRAMMING LANGUAGES, Processors,
Optimization.",
thesaurus = "Cache storage; Program compilers; Program
interpreters",
}
Related entries
- accessing,
28(7)229,
28(7)239
- added,
28(3)367,
29(6)186,
29(6)349,
29(6)349-1,
29(11)86,
29(11)171,
30(11)41
- argument,
27(3)24,
27(7)116,
28(6)237,
30(3)94,
30(6)93,
30(9)17
- away,
28(3)69,
30(8)19,
30(10)300,
30(10)300-1,
33(8)40
- caching,
26(4)200,
27(9)162,
28(7)54-1,
29(10)191,
30(8)29,
31(6)83,
34(10)447
- change,
25(6)234,
27(7)12,
27(7)32,
27(7)44,
27(7)273,
28(3)359,
28(6)26,
28(6)156,
28(6)217,
28(6)278,
28(8)90,
29(11)25,
29(11)171,
30(2)2,
30(3)103,
30(8)166,
31(1)12,
31(1)12-1,
31(8)84,
31(8)84-1,
31(10)342,
33(6)48,
34(10)415
- common,
26(8)60,
27(4)27,
27(7)55,
27(7)175,
27(7)188-1,
27(9)262,
28(3)231,
28(3)299,
28(3)353,
28(6)147,
28(6)197,
28(7)44,
28(7)92,
28(8)19,
29(6)1,
29(6)49,
29(6)196,
29(11)132-1,
30(3)35,
31(12)52,
33(2)18,
33(2)18-1,
33(9)103
- corresponding,
25(4)59,
28(6)147,
28(7)229,
29(6)49,
29(11)86,
30(8)1,
30(8)48,
30(11)99,
33(11)252
- every,
25(6)165,
28(3)357,
28(3)361,
28(3)363,
28(3)367,
28(6)268,
29(6)1,
29(11)319,
30(6)47,
34(5)118
- executed,
25(6)337,
26(6)145,
27(7)44,
27(7)128,
27(7)322,
28(6)300,
29(6)85,
29(6)121,
29(6)266,
29(11)252,
30(6)56,
30(6)103,
30(6)246,
30(8)179
- exist,
27(7)82,
27(7)235
- explore,
27(9)274,
29(11)308,
30(8)68
- FORTH,
25(8)43,
28(3)177,
28(3)357,
31(8)26,
31(8)26-1
- having,
27(7)22,
27(12)61,
28(3)363,
28(6)156,
28(8)1,
28(8)90,
30(6)103
- keep,
29(11)328,
34(6)23,
34(6)23-1
- manipulation,
27(7)106,
28(3)347,
28(3)355,
28(10)83,
29(4)31,
31(8)5,
31(8)5-1
- necessary,
25(6)150,
27(7)94,
27(9)248,
28(3)299,
28(6)46,
28(6)126,
29(6)13,
29(6)206,
29(8)1,
29(11)319,
30(6)186,
30(8)156,
30(11)20-1,
30(11)134,
33(7)19,
33(7)27
- next,
6(4)123,
27(7)188-1,
28(10)356,
28(10)356,
29(6)171,
29(11)38,
30(11)117
- one,
25(4)59,
25(6)85-1,
25(6)296,
25(8)80,
26(6)80,
26(6)80-1,
27(7)1,
27(7)12,
27(7)82,
27(7)212,
27(7)283,
27(9)262,
27(12)61,
28(2)21,
28(3)69,
28(3)97,
28(3)201,
28(3)333,
28(3)345,
28(3)359,
28(3)363,
28(6)26,
28(6)156,
28(7)13,
28(7)23,
28(7)44,
28(7)92,
28(11)2,
29(6)97,
29(6)171,
29(6)186,
29(6)278,
29(8)59,
29(8)94,
29(8)101,
29(11)242,
29(11)286,
29(11)319,
30(2)25,
30(3)35,
30(6)23,
30(6)93,
30(6)130,
30(6)139,
30(6)196,
30(6)246,
30(6)301,
30(8)58,
30(8)189,
30(11)31,
32(4)27,
32(5)215,
32(10)162,
33(7)51,
33(8)23,
33(11)252
- optimized,
27(7)1,
27(7)32,
27(7)224,
27(7)273,
28(4)39,
29(6)278,
29(6)349,
29(6)349-1,
29(11)86,
29(11)274,
29(11)328,
30(6)205,
30(8)217,
31(5)33,
33(7)19,
34(5)181
- overhead,
25(6)16,
25(6)66,
25(6)174,
25(6)272,
25(6)322,
27(7)106,
27(7)116,
27(7)188-1,
27(7)200,
27(7)273,
27(9)223,
28(6)1,
28(6)187,
28(6)207-1,
28(7)64,
28(7)83,
28(7)149,
28(7)229,
29(6)36,
29(6)290,
29(6)349,
29(6)349-1,
29(9)135,
29(10)341,
29(11)38,
29(11)51,
29(11)171,
29(11)286,
30(6)93,
30(6)103,
30(6)270,
30(8)144,
30(8)189,
30(8)217,
30(11)134,
31(9)174,
31(9)198,
34(7)10
- PLDI'95.,
30(6)1,
30(6)13,
30(6)23,
30(6)32,
30(6)47,
30(6)56,
30(6)67,
30(6)79-1,
30(6)93,
30(6)103,
30(6)116,
30(6)130,
30(6)139,
30(6)151,
30(6)163-1,
30(6)174,
30(6)186,
30(6)196,
30(6)205,
30(6)218,
30(6)233,
30(6)246,
30(6)258,
30(6)270,
30(6)279,
30(6)291,
30(6)301
- possible,
25(4)73,
25(6)78,
25(6)150,
27(7)32,
27(7)106,
27(7)116,
27(7)235,
28(3)69,
28(3)347,
28(3)361,
28(3)363,
28(6)100,
28(7)83,
29(6)49,
29(6)186,
29(8)46,
29(11)171,
30(3)94,
30(4)13,
30(6)93,
30(6)103,
30(6)174,
30(8)134
- real,
25(6)102,
25(10)299,
26(6)59,
27(2)26,
27(6)10,
27(7)12,
27(7)128,
28(3)363,
28(7)179,
28(12)151,
29(6)218,
29(6)349,
29(6)349-1,
29(11)219,
30(6)1,
30(6)116,
30(8)112,
30(8)207,
30(10)140,
32(5)31,
34(1)185
- reduce,
25(6)1,
25(6)16,
25(6)85-1,
25(6)102,
25(6)272,
27(7)200,
27(7)212,
28(6)177,
28(7)83,
28(7)208,
28(7)218,
29(6)257,
29(6)257-1,
29(6)349,
29(6)349-1,
29(11)2,
29(11)110,
29(11)145,
29(11)242,
29(11)286,
30(6)93,
30(6)103,
30(6)116,
30(6)130,
30(6)174,
30(6)270,
30(6)279,
30(8)156,
30(8)179,
30(8)217,
32(10)342,
32(10)342-1,
33(7)67
- several,
25(4)20,
25(4)59,
25(6)9,
25(6)246,
25(6)283,
25(10)237,
27(7)68,
27(7)175,
27(7)212,
27(9)274,
28(3)1,
28(3)351,
28(6)90,
28(6)126,
28(6)207-1,
28(6)278,
28(7)112,
28(7)218,
29(6)73,
29(8)59,
29(11)12,
29(11)25,
29(11)38,
29(11)76-1,
29(11)110,
29(11)242,
29(11)252,
30(3)23,
30(3)50,
30(3)62,
30(6)67,
30(6)116,
30(8)1,
30(8)48,
30(8)80-1,
30(8)144,
30(8)179,
30(11)1,
30(11)79,
30(11)88,
30(11)146-1,
33(2)65,
33(7)51,
33(7)75,
33(7)83,
33(11)252,
33(11)295
- significant,
17(9)18,
25(6)85-1,
26(4)28,
26(4)290,
27(7)55,
27(7)68,
27(7)273,
28(3)133,
28(3)149,
28(3)177,
28(3)209,
28(3)347,
28(4)58,
28(6)36,
28(6)187,
28(6)197,
28(7)64,
28(12)169,
29(6)36,
29(6)147,
29(6)206,
29(6)218,
29(6)349,
29(6)349-1,
29(8)35,
29(11)25,
29(11)51,
29(11)183,
30(3)119,
30(6)79-1,
30(6)218,
30(8)48,
30(11)125,
33(11)252
- specialized,
25(6)223,
26(6)145,
31(5)127,
31(5)237
- spend,
29(11)219
- stack,
25(6)66,
27(7)116,
27(7)273,
28(7)208,
29(5)27,
29(6)242,
29(6)242-1,
29(9)38,
29(9)68,
30(6)174,
33(5)162
- state,
25(5)95,
25(8)24,
26(12)76,
26(12)144,
27(7)1,
27(7)32,
27(7)152,
27(7)331,
28(6)1,
28(6)26,
28(7)149,
28(7)187,
29(3)33,
29(6)24,
29(6)97,
29(7)21,
29(8)111,
29(10)16,
29(10)113,
29(10)259,
29(11)122,
29(11)319,
30(10)17,
30(10)17-1,
30(11)31,
30(11)70,
30(11)88,
30(12)32,
32(8)227,
33(7)27,
33(10)144,
33(11)127
- track,
29(8)59,
30(6)67,
34(6)14
- usually,
25(1)59,
25(4)59,
25(6)78,
25(6)174,
27(7)162,
27(9)285,
28(3)361,
28(6)26,
30(3)111,
30(6)1,
30(6)32,
30(6)186,
30(6)291,
30(11)79,
30(11)134
- value,
25(1)29,
25(1)59,
25(6)189,
25(6)246,
25(6)257,
25(6)283,
25(8)80,
25(10)237,
27(7)273,
27(7)311,
28(3)359,
28(3)361,
28(3)363,
28(3)369,
28(6)13,
28(6)68,
28(6)90,
28(6)126,
28(6)227,
29(6)159,
29(6)278,
29(11)328,
30(3)50,
30(3)62,
30(4)13,
30(6)23,
30(6)67,
30(6)174,
30(6)218,
30(6)246,
31(9)138,
33(11)262
- version,
25(6)234,
25(6)257,
25(6)337,
26(8)121,
26(11)230,
27(2)88,
27(5)z,
27(7)1,
27(7)32,
27(7)44,
27(7)188-1,
27(8)99,
27(12)57,
28(2)21,
28(3)37,
28(3)53,
28(3)299,
28(3)367,
28(7)198,
28(7)218,
29(6)1,
29(6)36,
29(6)266,
29(8)119,
29(9)44,
29(11)61,
29(11)196,
29(11)252,
30(3)119,
30(6)13,
30(6)93,
33(7)19,
33(7)51,
33(7)83
- virtual,
26(4)96,
27(7)55,
27(9)187,
28(10)48,
29(4)31,
29(5)37,
29(6)196,
29(10)65,
29(10)259,
29(10)324,
29(11)38,
29(11)98,
29(11)122,
29(11)132-1,
29(11)158,
29(11)171,
29(11)319,
29(12)73,
29(12)94,
30(7)52,
30(7)52,
30(11)31,
30(11)146-1,
31(9)74,
31(9)84,
31(9)210,
31(9)244-1,
31(9)258,
31(9)279,
31(10)306,
31(10)324,
32(2)22,
32(2)22-1,
32(7)217,
32(10)125,
32(12)107,
33(3)73,
33(3)73-1,
33(5)269,
33(10)36,
33(10)179,
33(10)179-1,
33(11)71,
33(11)295,
34(6)37,
34(6)37-1,
34(8)119,
34(10)114
- whole,
25(6)16,
34(5)259