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{Deutsch:1994:IMA,
author = "Alain Deutsch",
title = "Interprocedural may-alias analysis for pointers:
beyond $k$-limiting",
journal = j-SIGPLAN,
volume = "29",
number = "6",
pages = "230--241",
month = jun,
year = "1994",
CODEN = "SINODQ",
DOI = "http://doi.acm.org/10.1145/178243.178263",
ISBN = "0-89791-598-4",
ISBN-13 = "978-0-89791-598-4",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jun 18 16:26:55 MDT 2008",
bibsource = "http://portal.acm.org/;
http://www.acm.org/pubs/contents/proceedings/pldi/178243/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/178243/p230-deutsch/",
abstract = "Existing methods for alias analysis of recursive
pointer data structures are based on two approximation
techniques: {\em k-limiting\/}, and {\em store-based\/}
(or equivalently location or region-based)
approximations, which blur distinction between elements
of recursive data structures. Although notable progress
in inter-procedural alias analysis has been recently
accomplished, very little progress in the precision of
analysis of recursive pointer data structures has been
seen since the inception of these approximation
techniques by Jones and Muchnick a decade ago. As a
result, optimizing, verifying and parallelizing
programs with pointers has remained difficult. We
present a new parametric framework for analyzing
recursive pointer data structures which can express a
new natural class of alias information not accessible
to existing methods. The key idea is to represent alias
information by pairs of {\em symbolic access paths\/}
which are qualified by symbolic descriptions of the
positions for which the alias pair holds. Based on this
result, we present an algorithm for interprocedural
may-alias analysis with pointers which on numerous
examples that occur in practice is much more precise
than recently published algorithms [CWZ90, He90, LR92,
CBC93].",
acknowledgement = ack-nhfb,
annote = "Published as part of the Proceedings of PLDI'94.",
classification = "C6120 (File organisation)",
conflocation = "Orlando, FL, USA; 20-24 June 1994",
conftitle = "ACM SIGPLAN '94 Conference on Programming Language
Design and Implementation (PLDI)",
corpsource = "Inst. Nat. de Recherche d'Inf. et d'Autom., Le
Chesnay, France",
keywords = "algorithms; alias pair; data structures;
interprocedural may-alias analysis; k-limiting;
location-based approximations; parametric framework;
performance; program optimization; program
parallelization; program verification; recursive
pointer data structures; region-based approximations;
store-based approximations; sub-objects; symbolic
access parallelization; symbolic access paths; symbolic
descriptions",
sponsororg = "ACM",
subject = "{\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
Constructs and Features, Procedures, functions, and
subroutines. {\bf D.3.3} Software, PROGRAMMING
LANGUAGES, Language Constructs and Features, Data types
and structures.",
treatment = "P Practical",
}
Related entries
- accessible,
28(6)217,
29(6)61,
29(6)242,
29(6)242-1
- accomplished,
28(3)299,
28(7)129
- alias,
27(7)235,
27(7)249,
28(6)56,
29(6)242,
29(6)242-1,
30(6)1,
30(6)13,
30(6)13-1,
33(5)106,
33(7)27,
33(10)48
- alias, may-,
28(6)36
- although,
25(1)59,
25(6)137,
25(6)283,
26(1)14,
26(4)290,
28(3)97,
28(6)237,
28(6)300,
28(12)169,
29(6)349,
29(6)349-1,
29(11)61,
29(11)158,
30(3)119,
30(6)205,
30(8)68,
33(7)51
- analyzing,
28(12)169,
29(8)59,
29(11)51,
30(3)13,
30(11)134,
31(9)210,
32(10)22,
32(10)108,
33(7)27,
33(7)35,
33(7)51
- approximation,
25(6)92,
25(6)322,
27(7)140,
27(7)212,
28(6)56,
30(6)13,
34(11)44
- based, region-,
30(6)174
- beyond,
25(1)59,
25(10)67,
27(7)140,
27(7)162,
29(8)35,
30(6)139,
30(6)218,
31(4)1,
31(4)1-1,
32(1)80,
32(1)103,
32(10)342,
32(10)342-1
- decade,
29(11)110,
29(11)252
- description,
25(4)20,
25(6)1,
25(12)37,
25(12)85,
26(6)229,
27(7)12,
27(7)249,
28(3)149,
28(5)53,
28(5)55,
28(6)26,
28(6)78-1,
28(6)126,
28(7)102,
29(4)31,
29(8)13,
29(8)94,
29(9)115,
29(10)176,
29(10)373,
29(12)58,
30(11)60,
30(11)70,
30(11)134,
31(5)12,
31(10)198,
32(1)106,
34(3)146
- difficult,
27(7)94,
27(7)249,
28(6)156,
29(6)49,
29(6)73,
29(6)196,
29(6)218,
29(11)208,
29(11)252,
30(6)291,
30(6)301,
30(8)58,
30(8)68,
33(7)19,
33(7)59
- distinction,
28(12)169
- element,
25(6)53,
25(6)137,
25(6)189,
25(6)283,
28(6)126,
29(6)121,
29(8)59,
29(10)427,
30(8)102
- equivalently,
30(8)68
- example,
25(4)20,
25(4)59,
25(4)73,
25(6)1,
25(6)9,
25(6)16,
25(6)78,
25(6)137,
25(6)197,
25(6)223,
25(6)311,
25(7)7,
25(7)59,
25(12)85,
27(7)1,
27(7)82,
27(7)188-1,
27(7)249,
27(8)87,
28(3)69,
28(6)78-1,
28(7)44,
28(7)129,
28(7)179,
28(8)90,
29(6)121,
29(8)59,
29(11)2,
29(11)25,
29(11)110,
29(11)208,
29(12)72,
30(11)31,
30(11)50,
30(11)79
- existing,
27(7)22,
27(7)106,
28(3)299,
28(3)355,
28(3)359,
28(6)78-1,
28(7)13,
28(7)33,
28(7)83,
28(7)179,
29(6)107,
29(6)135,
29(6)186,
29(6)218,
29(6)349,
29(6)349-1,
29(8)119,
29(11)196,
29(11)242,
29(11)308,
30(3)71,
30(3)119,
30(6)67,
30(6)79-1,
30(6)301,
31(10)18,
31(12)73
- express,
25(5)95,
25(6)189,
27(7)55,
28(7)239,
30(6)174
- hold,
28(3)359,
28(3)367,
30(6)1
- idea,
25(6)112,
25(12)93,
26(1)77,
26(6)219,
27(7)322,
28(3)1,
28(3)69,
28(3)133,
28(3)271,
28(7)83,
29(8)111,
30(6)56,
30(6)79-1,
30(8)39,
30(11)70,
32(10)301,
33(7)19,
33(7)27,
33(7)51
- inter-procedural,
29(6)85
- interprocedural,
25(6)28,
27(7)235,
28(5)3,
28(6)56,
28(6)90,
28(7)33,
29(4)41,
29(6)49,
29(6)242,
29(6)242-1,
30(6)13,
30(6)23,
30(6)23-1,
30(6)67,
30(6)258,
32(5)122,
32(5)146,
34(4)70,
34(8)37
- key,
25(6)112,
26(11)33,
27(7)152,
27(7)311,
28(3)271,
28(7)33,
29(11)2,
29(11)38,
29(11)319,
30(3)94,
30(6)163-1
- little,
25(6)78,
26(4)28,
27(9)262,
28(6)177,
28(6)300,
28(7)64,
28(7)149,
29(6)186,
29(11)297,
30(3)111,
30(6)13
- location,
27(7)1,
27(7)235,
27(7)273,
28(6)13,
28(6)26,
28(6)56,
28(6)126,
28(6)197,
29(6)107,
29(6)121,
29(6)218,
29(6)242,
29(6)242-1,
29(6)278,
29(8)94,
29(11)208,
30(3)62,
30(6)1
- LR92,
28(6)56
- may-alias,
28(6)36
- much,
25(6)85-1,
25(6)150,
27(7)44,
27(7)82,
27(7)152,
27(9)248,
27(9)285,
28(3)97,
28(3)349,
28(3)351,
28(7)54-1,
28(8)90,
29(6)49,
29(8)35,
29(11)2,
29(11)145,
29(11)171,
29(11)308,
29(11)328,
30(3)94,
30(6)67,
30(6)116,
30(6)205,
33(7)59
- natural,
25(4)73,
25(5)95,
25(6)223,
26(9)234,
27(7)249,
28(3)37,
28(6)300,
28(7)33,
29(1)54,
29(10)191,
29(10)212,
29(11)308,
29(12)58,
30(8)19,
33(9)108
- notable,
28(3)231
- numerous,
27(7)249,
28(3)149,
29(6)218
- occur,
25(6)112,
27(7)1,
27(7)44,
27(7)273,
28(6)46,
29(6)1,
29(6)218,
33(7)1
- optimizing,
25(1)17,
25(3)137,
25(5)53,
25(6)53,
25(6)102,
25(6)150,
25(6)272,
25(6)272-1,
25(6)337,
26(1)109,
26(6)30,
26(6)219,
26(9)178,
27(7)249,
27(7)322,
27(10)110,
27(10)110-1,
28(6)100,
28(6)139-1,
29(4)41,
29(6)73,
29(6)186,
29(6)218,
29(6)278,
29(6)326,
29(10)244,
29(10)244,
29(11)252,
29(12)31,
30(3)23,
30(3)50,
30(3)71,
30(6)93,
30(6)196,
30(6)246,
30(8)134,
30(8)166,
31(5)137,
31(5)181,
31(10)51,
31(10)83,
32(5)44,
32(7)100,
32(8)315,
32(12)116,
33(5)291,
33(7)27,
33(7)75,
33(8)40,
34(7)1
- pair,
28(7)129,
29(6)242,
29(6)242-1,
29(11)61
- parallelization,
26(7)155,
26(7)178,
28(7)33,
28(7)83,
28(7)179,
29(2)19,
29(6)36,
29(6)218,
30(6)218,
30(8)58,
30(8)166,
31(4)11,
31(4)11-1,
32(7)136,
34(8)72,
34(8)84
- parallelizing,
25(6)137,
25(6)283,
26(7)167,
27(7)249,
28(7)13,
28(7)33,
28(7)179,
29(2)19,
29(6)135,
29(11)196,
29(12)31,
30(6)218,
30(8)58,
30(8)134,
30(8)166,
30(8)179,
30(12)37,
31(5)54
- parametric,
25(6)165,
30(10)156,
33(10)216
- path,
25(9)7,
26(1)47,
27(7)249,
29(2)19,
29(6)1,
29(6)147,
29(10)301,
29(11)232,
30(3)50,
30(6)13,
30(6)47,
30(6)56,
30(6)186,
30(6)246,
30(8)207,
30(11)88,
31(9)268,
33(5)72,
33(11)170,
34(2)21,
34(2)21-1,
34(5)259
- PLDI'94.,
29(6)1,
29(6)13,
29(6)24,
29(6)36,
29(6)49,
29(6)61,
29(6)73,
29(6)85,
29(6)97,
29(6)107,
29(6)121,
29(6)135,
29(6)147,
29(6)159,
29(6)171,
29(6)186,
29(6)196,
29(6)206,
29(6)218,
29(6)242,
29(6)257-1,
29(6)266,
29(6)278,
29(6)290,
29(6)302,
29(6)313,
29(6)326,
29(6)337-1,
29(6)349-1
- position,
25(6)16,
25(6)112,
27(10)88,
28(3)69,
28(3)361,
29(8)111,
32(1)59,
32(1)110
- practice,
25(6)174,
27(7)224,
27(12)57,
28(3)361,
28(6)1,
28(6)90,
28(7)44,
29(6)1,
29(6)159,
29(8)46,
29(12)72,
30(3)111,
30(6)23,
30(6)67,
30(6)218,
30(8)48,
30(8)102,
30(10)337,
30(11)41,
30(11)60,
33(10)45,
33(10)45-1
- precise,
27(7)235,
28(6)36,
28(6)56,
29(6)73,
29(6)196,
29(10)324,
30(6)93,
33(7)35,
33(11)228
- precision,
25(6)16,
25(6)92,
25(6)102,
27(5)z,
27(7)235,
29(6)73,
29(10)324,
30(6)13,
30(6)93,
30(8)144,
30(11)41,
33(7)51
- procedural, inter-,
29(6)85
- progress,
27(7)249,
34(5)z
- recently,
25(6)337,
29(6)302,
29(11)242,
30(6)139,
30(11)125,
33(7)83
- recursive,
25(4)83,
27(6)54,
27(6)72,
27(7)249,
27(12)39,
28(3)363,
28(3)367,
28(7)112,
29(1)46,
29(6)242,
29(6)242-1,
29(6)337,
29(6)337-1,
29(8)101,
29(9)51,
30(3)13,
31(6)73,
31(9)222,
31(9)222-1,
32(8)323,
32(12)90,
32(12)90,
33(9)87,
33(12)33,
34(1)351,
34(5)50,
34(10)70
- region-based,
30(6)174
- remained,
27(7)249
- represent,
25(6)234,
25(6)337,
27(7)175,
28(6)237,
30(3)35,
30(6)139,
30(8)48
- seen,
29(11)328
- since,
25(6)189,
25(6)209,
25(6)272,
27(7)106,
27(7)152,
27(7)273,
28(3)37,
28(6)166,
28(6)237,
28(6)278,
29(6)337,
29(6)337-1,
29(6)349,
29(6)349-1,
29(11)286,
30(3)23,
30(6)151,
30(6)218,
30(11)7,
30(11)20-1,
30(11)31,
30(11)88,
33(11)252
- subroutine,
25(1)59,
25(6)78,
25(6)85-1,
25(6)127-1,
25(6)165,
26(6)71,
26(6)80,
26(6)165-1,
26(6)278,
26(6)293,
27(12)39,
28(3)1,
28(3)97,
28(3)271,
28(3)345,
28(3)347,
28(3)351,
28(3)353,
28(3)355,
28(3)357,
28(3)361,
28(5)9,
28(6)36,
28(6)90,
28(6)100,
28(7)179,
29(5)7,
29(6)24,
29(6)242,
29(10)453,
30(3)13,
30(6)116,
30(6)174,
31(5)193,
33(5)174
- symbolic,
25(6)283,
26(11)329,
27(7)55,
28(3)209,
28(3)355,
28(6)13,
28(6)100,
28(7)169,
28(7)179,
29(6)73,
29(6)121,
30(6)67,
30(8)144,
30(11)70,
30(11)79,
34(11)104
- verifying,
26(9)106,
27(6)8,
30(3)13,
30(6)67,
30(6)79-1,
30(11)70,
31(5)23,
33(7)51
- very,
24(3)34,
25(4)51,
25(6)1,
25(6)137,
25(6)234,
27(7)283,
27(7)341,
28(3)343,
28(3)359,
28(3)365,
28(6)26,
28(6)177,
28(6)197,
28(7)149,
28(8)90,
29(6)36,
29(6)73,
29(6)349,
29(6)349-1,
29(11)12,
29(11)171,
30(6)246,
30(6)270,
30(6)301,
30(8)80-1,
30(8)156,
31(5)160,
31(9)26,
31(9)37,
33(7)51,
33(7)67,
34(3)166