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{Park:1992:EAL,
author = "Young Gil Park and Benjamin Goldberg",
title = "Escape analysis on lists",
journal = j-SIGPLAN,
volume = "27",
number = "7",
pages = "116--127",
month = jul,
year = "1992",
CODEN = "SINODQ",
ISBN = "0-89791-475-9",
ISBN-13 = "978-0-89791-475-8",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
LCCN = "QA76.7.S53 1992",
bibdate = "Sun Dec 14 09:16:22 MST 2003",
bibsource = "Compendex database; http://portal.acm.org/;
http://www.acm.org/pubs/contents/proceedings/pldi/143095/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/143095/p116-park/",
abstract = "Higher order functional programs constantly allocate
objects dynamically. These objects are typically cons
cells, closures, and records and are generally
allocated in the heap and reclaimed later by some
garbage collection process. This paper describes a
compile time analysis, called escape analysis, for
determining the lifetime of dynamically created objects
in higher order functional programs, and describes
optimizations that can be performed, based on the
analysis, to improve storage allocation and reclamation
of such objects. In particular, our analysis can be
applied to programs manipulating lists, in which case
optimizations can be performed to allow cons cells in
spines of lists to be either reclaimed immediately or
reused without incurring any garbage collection
overhead. In a previous paper on escape analysis, we
had left open the problem of performing escape analysis
on lists. Escape analysis simply determines when the
argument (or some part of the argument) to a function
call is returned by that call. This simple piece of
information turns out to be sufficiently powerful to
allow stack allocation of objects, compile-time garbage
collection, reduction of run-time storage reclamation
overhead, and other optimizations that are possible
when the lifetimes of objects can be computed
statically. Our approach is to define a high-level
non-standard semantics that, in many ways, is similar
to the standard semantics and captures the escape
behavior caused by the constructs in a functional
language. The advantage of our analysis lies in its
conceptual simplicity and portability (i.e. no
assumption is made about an underlying abstract
machine).",
acknowledgement = ack-nhfb,
affiliation = "New York Univ",
affiliationaddress = "New York City, NY, USA",
annote = "Published as part of the Proceedings of PLDI'92.",
classification = "723.1",
conference = "Proceedings of the ACM SIGPLAN '92 Conference on
Programming Language Design and Implementation",
conferenceyear = "1992",
journalabr = "SIGPLAN Not",
keywords = "algorithms; Compile time analysis; Computer
programming; Escape analysis; Higher order functional
programs; languages; Program compilers",
meetingaddress = "San Francisco, CA, USA",
meetingdate = "Jun 17--19 1992",
meetingdate2 = "06/17--19/92",
sponsor = "ACM",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf D.3.2} Software,
PROGRAMMING LANGUAGES, Language Classifications. {\bf
D.3.4} Software, PROGRAMMING LANGUAGES, Processors,
Compilers. {\bf D.3.1} Software, PROGRAMMING LANGUAGES,
Formal Definitions and Theory, Semantics.",
}
Related entries
- advantage,
25(6)9,
25(6)296,
26(4)28,
26(4)290,
27(7)128,
28(6)187,
28(7)102,
29(6)107,
29(6)206,
29(6)266,
29(11)2,
29(11)38,
29(11)61,
29(11)219,
30(3)119,
30(6)79-1,
30(6)151,
30(6)205,
30(11)50,
30(11)146-1
- allocate,
28(6)100,
28(6)126,
28(6)197,
29(6)121,
29(6)266,
29(11)76-1
- allocated,
28(3)363,
28(6)187,
28(6)207-1,
28(6)268,
29(6)266,
29(11)76-1,
30(6)174
- allow,
25(4)20,
25(4)51,
25(6)66,
25(6)85-1,
25(6)272,
25(6)296,
26(6)145,
27(7)94,
27(7)140,
27(7)162,
27(7)235,
27(9)238,
28(3)363,
28(6)139-1,
28(6)207-1,
28(6)290,
28(7)92,
28(7)102,
28(7)208,
28(7)239,
29(6)73,
29(6)135,
29(6)242,
29(6)242-1,
29(8)35,
29(8)119,
29(11)25,
29(11)132-1,
29(11)263,
29(11)274,
29(11)319,
30(3)50,
30(3)94,
30(4)13,
30(6)196,
30(6)246,
30(8)1,
30(8)102,
30(8)217,
30(11)70,
30(11)79
- any,
25(4)73,
25(6)92,
27(7)82,
27(7)175,
27(7)200,
27(7)224,
27(7)273,
27(7)311,
28(3)69,
28(3)177,
28(3)359,
28(3)367,
28(6)177,
28(6)197,
28(8)90,
29(11)232,
29(11)242,
30(6)67,
30(6)186,
30(6)196,
30(6)218,
30(11)41,
30(11)134,
33(7)1
- applied,
25(6)40,
25(6)53,
25(6)234,
25(6)322,
28(6)46,
28(6)248,
28(6)278,
28(8)90,
29(6)186,
29(6)290,
30(6)56,
30(6)93,
30(6)139,
30(11)70,
33(7)51
- argument,
27(3)24,
28(6)237,
30(3)94,
30(6)93,
30(6)315,
30(9)17
- assumption,
25(6)137,
29(11)61,
30(11)50,
30(11)125
- behavior,
6(4)111,
6(4)159,
25(6)234,
26(6)59,
27(7)1,
27(7)12,
27(7)32,
27(7)55,
28(3)69,
28(3)367,
28(3)369,
28(6)100,
28(7)44,
28(10)326,
28(10)326-1,
29(6)73,
29(11)61,
29(11)132-1,
29(11)145,
29(11)328,
30(3)35,
30(6)1,
30(6)67,
30(6)79-1,
30(8)68,
30(11)20-1,
30(11)50,
30(11)70,
30(11)125,
32(10)1,
32(10)108,
33(7)27,
33(7)83,
33(11)12,
33(11)240,
34(7)35
- called,
25(6)53,
25(12)85,
26(6)219,
27(7)341,
27(9)262,
27(9)285,
28(2)21,
28(3)361,
28(3)367,
28(6)46,
28(6)90,
28(6)248,
28(7)23,
28(7)102,
28(7)112,
28(7)229,
29(6)85,
29(6)349,
29(6)349-1,
29(8)13,
29(11)158,
29(11)208,
29(11)274,
30(3)1,
30(6)1,
30(6)32,
30(6)67,
30(8)39,
30(8)48,
30(11)70,
33(7)43
- capture,
28(7)44,
29(5)27,
29(6)242,
29(6)242-1,
29(8)1,
29(8)35,
29(11)132-1,
29(11)219,
29(11)232,
30(6)233
- case,
6(4)72,
25(6)78,
25(6)296,
25(10)57,
26(4)279,
26(7)201,
27(7)235,
27(9)262,
27(10)377,
28(3)37,
28(6)187,
28(6)197,
28(7)83,
28(7)169,
29(3)12,
29(6)49,
29(6)107,
29(6)135,
29(6)147,
29(6)218,
29(8)46,
29(9)91,
29(11)76-1,
29(11)219,
29(11)274,
30(3)1,
30(6)67,
30(6)93,
30(6)151,
30(6)174,
30(6)186,
30(6)233,
30(8)80-1,
30(8)92,
30(11)31,
30(11)88,
31(5)117,
31(7)4,
31(9)2,
31(9)2-1,
31(10)342,
32(6)34,
32(10)206-1,
33(10)226,
33(10)226-1,
33(11)252,
34(10)340
- caused,
25(6)150,
28(6)13,
28(7)44,
30(6)151,
30(11)7
- cells,
28(3)69,
31(2)6,
31(2)6-1
- closure,
30(3)94,
30(6)174,
32(8)1,
34(1)337,
34(2)32,
34(2)32-1
- compile,
25(6)9,
25(6)137,
25(6)150,
25(6)174,
25(6)257,
27(7)106,
28(3)349,
28(7)83,
29(6)13,
29(6)290,
30(3)119,
30(6)67,
30(6)93,
30(6)174,
30(8)58,
30(8)179,
33(7)27
- compile-time,
25(6)223,
25(6)272,
26(10)19,
27(9)238,
28(6)46,
28(7)139,
28(7)239,
28(12)129,
28(12)129-1,
29(6)73,
29(6)85,
29(6)290,
29(7)21,
29(9)105,
29(10)85,
29(11)232,
30(6)116,
30(8)29,
30(8)144,
30(8)156,
32(1)110
- computed,
25(6)272,
28(3)361,
28(6)68,
29(6)73,
29(10)355,
30(8)156
- conceptual,
25(12)93,
26(1)77,
28(3)209,
28(7)112,
29(9)81,
31(2)42,
33(3)57
- created,
25(6)66,
25(6)137,
25(6)189,
27(7)94,
27(7)152,
28(3)201
- D.3.1,
25(6)197,
25(6)209,
25(6)234,
28(3)365,
28(6)166,
29(8)129,
30(6)163-1,
31(5)99
- define,
25(6)137,
25(6)165,
25(6)311,
27(5)z,
28(2)21,
28(3)363,
29(6)196,
29(8)1,
29(8)101,
30(3)13,
30(3)23,
30(3)94,
30(6)47
- determine,
25(6)92,
25(6)112,
25(6)223,
25(6)311,
27(7)283,
28(6)26,
28(6)56,
28(6)126,
29(6)85,
29(6)121,
29(6)278,
30(6)56,
30(6)93,
30(6)218,
30(11)20-1,
30(11)70,
30(11)79
- determining,
25(6)234,
25(6)322,
27(7)235,
29(6)85,
30(11)70,
30(11)88
- dynamically,
25(6)189,
27(7)32,
28(3)363,
28(6)207-1,
29(6)73,
29(10)85,
29(11)25,
29(11)158,
29(11)263,
30(4)13,
30(6)301,
30(8)58,
32(9)57,
32(9)57-1,
34(12)37
- either,
25(6)234,
26(4)290,
28(3)149,
28(6)1,
29(6)107,
29(6)206,
29(11)274,
30(3)1,
30(6)67,
30(6)301,
30(8)179
- escape,
26(9)178,
34(10)1,
34(10)20,
34(10)187
- generally,
28(7)129,
28(8)90,
29(6)85,
30(4)13
- Goldberg, Benjamin,
26(6)165,
26(6)165-1,
26(9)178,
32(8)280,
32(12)47
- had,
27(7)44,
28(3)133,
28(3)149,
28(3)355,
28(8)90,
29(11)328,
30(6)218,
33(7)43
- heap,
25(6)66,
26(3)45,
27(7)273,
28(6)197,
29(5)27,
29(12)112,
30(6)116,
30(6)301,
31(6)34,
33(11)12,
34(9)48
- high-level,
25(3)156,
27(7)55,
27(11)59,
28(3)359,
28(6)139-1,
28(7)44,
28(7)112,
28(7)119,
28(7)119-1,
28(7)239,
29(8)59,
29(10)176,
30(3)119,
30(6)1,
30(8)11,
30(8)19,
30(8)80,
30(8)80-1,
30(11)50,
32(5)109,
33(10)271
- higher,
26(6)293,
28(7)119,
29(6)36,
29(7)15,
30(3)71,
30(3)111,
30(6)174,
30(6)279,
30(8)19
- i.e.,
25(6)165,
25(6)174,
27(7)1,
28(6)46,
28(7)13,
29(6)36,
29(6)147,
29(6)218,
29(6)278,
29(6)337,
29(6)337-1,
29(11)171,
30(3)119,
30(6)151,
30(11)88
- immediately,
27(7)32
- improve,
25(6)53,
25(6)337,
26(6)145,
26(6)177,
26(6)177-1,
27(7)106,
27(7)162,
27(7)188-1,
27(7)249,
27(9)223,
28(3)201,
28(6)100,
28(6)187,
28(6)268,
28(6)300,
29(6)36,
29(6)49,
29(6)97,
29(6)159,
29(6)206,
29(6)257,
29(6)257-1,
29(11)171,
29(11)208,
29(11)219,
29(11)232,
29(11)242,
29(11)252,
30(6)13,
30(6)56,
30(6)93,
30(6)116,
30(6)151,
30(6)174,
30(6)186,
30(6)196,
30(6)205,
30(6)279,
30(8)29,
30(8)80-1,
30(8)166,
30(8)189,
30(8)199,
33(5)97,
33(7)51,
34(5)215
- incurring,
28(7)64
- later,
27(7)22,
28(3)177,
28(3)209,
28(3)367,
30(6)301
- left,
27(6)72,
28(3)231
- level, high-,
25(3)156,
27(7)55,
27(11)59,
28(3)359,
28(6)139-1,
28(7)44,
28(7)112,
28(7)119,
28(7)119-1,
28(7)239,
29(8)59,
29(10)176,
30(3)119,
30(6)1,
30(8)11,
30(8)19,
30(8)80-1,
30(11)50
- lies,
30(6)163-1
- lifetime,
26(9)178,
28(6)187,
29(11)86,
30(6)174,
33(11)12
- list,
25(6)296,
25(12)85,
27(5)z,
28(3)299,
28(3)359,
28(3)363,
28(6)278,
28(12)169,
29(2)13,
29(3)23,
29(5)31,
30(4)39,
30(6)151,
30(8)29,
30(11)7
- made,
23(1)17,
25(5)95,
27(7)249,
27(7)300,
27(9)285,
28(3)149,
28(3)347,
28(6)217,
28(8)90,
28(12)169,
29(6)13,
29(6)186,
29(11)98,
30(11)125
- manipulating,
28(1)24
- many,
25(1)59,
25(6)112,
25(6)137,
25(6)189,
25(6)283,
27(1)95,
27(5)z,
27(7)68,
27(7)82,
27(7)188-1,
27(9)285,
28(3)69,
28(3)343,
28(3)345,
28(3)347,
28(6)100,
28(6)187,
28(6)237,
28(6)258,
28(6)300,
28(7)13,
28(7)33,
28(7)54-1,
29(6)1,
29(6)36,
29(6)49,
29(6)73,
29(6)85,
29(6)171,
29(6)206,
29(6)302,
29(8)94,
29(8)101,
29(11)145,
29(11)171,
29(11)196,
29(11)219,
29(11)252,
29(11)328,
30(3)13,
30(3)94,
30(3)119,
30(6)1,
30(6)67,
30(6)103,
30(6)291,
30(8)68,
30(8)134,
30(8)217,
30(11)20-1,
30(11)134,
33(7)19,
33(7)27
- open,
27(7)224,
28(7)23,
29(10)85,
30(3)94,
30(3)103,
30(6)139,
32(10)229,
33(5)345,
34(2)36,
34(2)36
- order,
25(6)1,
25(6)16,
27(7)12,
27(7)152,
28(3)299,
28(3)361,
28(6)156,
28(6)237,
28(6)278,
28(6)300,
28(7)119,
29(6)147,
29(6)349,
29(6)349-1,
29(7)15,
29(8)1,
29(8)35,
29(8)59,
29(11)51,
29(11)86,
29(11)263,
30(3)71,
30(3)94,
30(6)116,
30(6)151,
30(6)174,
30(6)205,
30(6)233,
30(6)246,
30(8)1,
30(8)144,
30(8)189,
30(8)199,
30(11)20-1,
33(7)51
- overhead,
25(6)16,
25(6)66,
25(6)174,
25(6)272,
25(6)322,
27(7)106,
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(6)315,
30(8)144,
30(8)189,
30(8)217,
30(11)134,
31(9)174,
31(9)198,
34(7)10
- Park, Young Gil,
26(9)178
- particular,
25(6)102,
25(6)246,
27(7)82,
28(6)90,
28(7)23,
29(6)121,
29(8)46,
30(3)71,
30(3)111,
30(6)67,
30(6)291,
30(6)301,
30(8)58,
30(11)20-1,
30(11)79,
30(11)134
- performed,
25(6)272,
27(7)1,
27(7)32,
27(7)188-1,
28(3)299,
28(6)1,
28(6)26,
28(6)68,
28(6)78-1,
28(6)207-1,
28(7)239,
29(6)49,
30(3)13,
30(6)67,
30(8)68,
30(11)20-1
- performing,
25(6)150,
28(7)112,
29(6)218,
29(11)242,
30(6)23,
30(6)246,
30(6)258,
33(7)83
- piece,
30(3)103,
34(9)36
- PLDI'92.,
27(7)1,
27(7)12,
27(7)22,
27(7)32,
27(7)44,
27(7)55,
27(7)68,
27(7)82,
27(7)94,
27(7)106,
27(7)128,
27(7)140,
27(7)152,
27(7)162,
27(7)175,
27(7)188-1,
27(7)200,
27(7)212,
27(7)224,
27(7)235,
27(7)249,
27(7)261,
27(7)273,
27(7)283,
27(7)300,
27(7)311,
27(7)322,
27(7)331,
27(7)341
- portability,
25(5)53,
25(6)209,
28(7)102,
28(7)179,
29(7)15,
29(11)132-1,
29(11)196,
29(11)297,
30(3)103,
30(3)111,
32(2)45,
32(7)217
- possible,
25(4)73,
25(6)78,
25(6)150,
27(7)32,
27(7)106,
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(6)315,
30(8)134
- powerful,
27(7)212,
28(3)231,
28(6)26,
28(6)147,
28(6)156,
28(7)23,
28(7)33,
28(7)112,
29(6)13,
29(6)147,
30(3)83,
30(6)233
- previous,
25(6)28,
25(6)322,
26(6)145,
27(7)44,
27(9)85,
27(9)248,
28(3)69,
28(6)56,
28(7)129,
29(6)186,
29(6)278,
29(11)25,
29(11)263,
30(3)1,
30(6)23,
30(6)47,
30(6)67,
30(6)93,
30(6)279,
30(6)301,
30(8)68,
30(8)102
- reclamation,
34(4)46
- record,
24(3)34,
25(6)66,
25(6)85,
25(6)85-1,
26(6)145,
28(3)359,
28(3)363,
29(10)31,
29(11)319
- reduction,
25(5)29,
25(5)34,
25(7)28,
26(2)25,
27(7)162,
28(3)69,
28(6)237,
29(5)41,
29(5)41-1,
29(6)36,
29(6)49,
29(6)135,
29(6)257-1,
29(6)349,
29(6)349-1,
29(11)51,
29(11)242,
29(12)112,
30(2)42,
30(6)56,
30(6)218,
30(8)58,
30(8)179,
32(8)188,
34(5)155,
34(11)34
- returned,
28(3)361,
28(4)9
- reused,
30(11)50
- run-time,
25(4)20,
25(6)150,
26(6)145,
27(7)224,
28(3)347,
28(6)13,
28(6)46,
28(7)139,
29(6)36,
29(6)61,
29(6)290,
29(6)313,
29(6)326,
29(9)135,
29(10)85,
29(11)25,
29(11)110,
29(11)122,
30(6)79-1,
30(6)93,
30(6)218,
30(8)68,
30(8)102,
31(10)406,
31(11)49,
32(12)163,
33(5)224,
33(10)201,
34(3)146,
34(5)293,
34(5)293-1,
34(8)107
- similar,
26(4)310,
27(7)212,
27(7)249,
28(3)149,
28(3)363,
29(6)302,
29(11)61,
29(11)145,
30(8)112,
30(11)134
- simplicity,
28(3)347,
28(3)363,
30(11)7,
32(11)31,
32(11)31,
33(3)36
- simply,
25(6)66,
29(6)196,
29(8)46,
30(6)67
- spin,
29(11)25
- stack,
25(6)66,
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,
30(6)315,
33(5)162
- statically,
27(7)273,
28(7)83,
28(7)129,
30(3)94,
30(6)67,
30(6)116,
30(6)218,
30(11)79,
32(8)75,
33(7)27
- sufficiently,
28(6)300
- time, compile-,
25(6)223,
25(6)272,
27(9)238,
28(6)46,
28(7)139,
28(7)239,
29(6)73,
29(6)85,
29(6)290,
29(9)105,
29(10)85,
29(11)232,
30(8)29,
30(8)144,
30(8)156
- time, run-,
25(4)20,
25(6)150,
26(6)145,
27(7)224,
28(3)347,
28(6)13,
28(6)46,
29(6)36,
29(6)61,
29(6)290,
29(6)313,
29(6)326,
29(9)135,
29(10)85,
29(11)25,
29(11)110,
29(11)122,
30(6)79-1,
30(6)93,
30(6)218,
30(8)68,
30(8)102,
31(10)406,
31(11)49,
32(12)163,
34(3)146,
34(5)293-1,
34(8)107
- turn,
28(3)299,
29(6)206
- typically,
25(6)189,
26(4)290,
28(6)197,
28(7)187,
29(6)206,
29(6)290,
29(11)2,
29(11)252,
29(11)263,
30(3)62,
30(3)71,
30(6)186,
30(8)217,
30(11)88
- underlying,
25(1)52,
25(1)59,
27(7)55,
28(3)351,
28(7)249,
29(6)73,
29(11)61,
30(3)71,
30(6)291,
33(7)1,
33(7)27
- way,
25(6)1,
25(6)150,
25(6)223,
25(6)283,
25(6)296,
27(7)12,
27(7)82,
27(7)152,
27(7)212,
27(12)28,
28(3)69,
28(6)227,
29(6)24,
29(6)49,
29(8)101,
29(11)2,
29(11)171,
29(11)208,
30(3)83,
30(3)94,
30(3)111,
30(11)41,
31(12)63
- when,
24(3)34,
25(6)40,
25(6)66,
25(6)78,
25(6)92,
25(6)102,
25(6)112,
25(6)137,
25(6)174,
25(6)223,
25(10)181,
27(7)1,
27(7)188-1,
27(7)235,
27(7)311,
27(7)322,
27(9)285,
28(3)97,
28(3)361,
28(6)56,
28(6)100,
28(6)147,
28(6)187,
28(6)258,
28(6)278,
28(7)44,
28(7)83,
28(7)239,
28(8)90,
28(12)169,
29(6)1,
29(6)49,
29(6)85,
29(6)206,
29(11)2,
29(11)86,
29(11)145,
29(11)171,
29(11)242,
29(11)252,
30(3)23,
30(3)94,
30(6)1,
30(6)56,
30(6)93,
30(6)103,
30(6)151,
30(6)279,
30(8)123,
30(8)179,
30(8)189,
30(8)199,
31(5)108,
32(3)27,
32(3)27-1,
33(2)59,
33(7)19,
33(7)27,
33(7)67,
34(9)1