Entry Hentenryck:1994:TAP from sigplan1990.bib
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{Hentenryck:1994:TAP,
author = "P. Van Hentenryck and A. Cortesi and B. Le Charlier",
title = "Type analysis of {Prolog} using type graphs",
journal = j-SIGPLAN,
volume = "29",
number = "6",
pages = "337--348",
month = jun,
year = "1994",
CODEN = "SINODQ",
DOI = "http://doi.acm.org/10.1145/178243.178479",
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/",
abstract = "Type analysis of Prolog is of primary importance for
high-performance compilers, since type information may
lead to better indexing and to sophisticated
specializations of unification and built-in predicates
to name a few. However, these optimizations often
require a sophisticated type inference system capable
of inferring disjunctive and recursive types and hence
expensive in computation time. The purpose of this
paper is to describe a type analysis system for Prolog
based on abstract interpretation and type graphs (i.e.
disjunctive rational trees) with this functionality.
The system (about 15,000 lines of C) consists of the
combination of a generic fixpoint algorithm, a generic
pattern domain, and a type graph domain. The main
contribution of the paper is to show that this approach
can be engineered to be practical for medium-sized
programs without sacrificing accuracy. The main
technical contributions to achieve this result are (1)
a novel widening operator for type graphs which appears
to be accurate and effective in keeping the sizes of
the graphs, and hence the computation time, reasonably
small; (2) the use of the generic pattern domain to
obtain a compact representation of equality constraints
between subterms and to factor out sure structural
information.",
acknowledgement = ack-nhfb,
}
Related entries
- accuracy,
25(6)112,
26(7)133,
27(9)76,
28(6)300,
28(12)43,
29(6)85,
29(6)97,
29(6)337-1,
29(11)132-1,
29(11)232,
30(6)196,
30(11)1
- accurate,
28(7)129,
29(6)1,
29(6)85,
29(6)218,
29(6)337-1,
29(11)242,
29(11)252,
30(6)67,
30(8)80-1,
30(8)207,
31(5)108,
32(12)63,
32(12)63
- achieve,
26(4)28,
26(6)145,
27(7)200,
27(9)248,
27(12)20,
28(6)237,
28(7)13,
28(7)64,
28(7)64-1,
28(7)83,
29(4)23,
29(6)337-1,
29(11)12,
29(11)38,
29(11)208,
29(11)232,
29(11)252,
30(3)23,
30(6)67,
30(6)279,
30(8)189,
30(8)207,
30(11)1,
32(6)75
- appear,
25(4)73,
25(6)189,
26(4)290,
28(6)197,
29(6)337-1,
29(11)219,
32(10)345-1,
32(10)345-5,
34(5)z,
34(5)z-1
- better,
25(6)296,
26(1)14,
27(7)44,
27(7)106,
27(7)200,
28(3)69,
28(6)268,
28(6)278,
28(7)179,
28(7)229,
29(6)49,
29(6)97,
29(6)186,
29(6)337-1,
29(8)59,
29(11)12,
29(11)171,
29(11)308,
29(11)328,
29(12)104,
30(3)23,
30(3)94,
30(6)151,
30(6)174,
30(8)189,
30(11)60,
30(11)70,
31(11)21,
31(11)21-1,
33(7)27
- built-in,
28(3)359,
29(6)337-1,
30(11)134
- capable,
25(6)53,
28(6)68,
28(7)129,
28(12)169,
29(6)337-1,
29(11)286
- combination,
25(6)272,
27(10)25,
28(6)278,
29(6)159,
29(6)337-1,
29(6)349,
29(6)349-1,
29(8)119,
30(6)116,
30(8)123,
33(7)27
- compact,
25(6)337,
27(3)61,
27(7)341,
28(6)237,
28(7)187,
29(6)337-1,
29(9)149,
29(10)355,
34(5)128
- consist,
25(6)337,
28(3)359,
28(7)239,
29(6)337-1,
29(8)22,
29(8)94,
29(11)158,
30(8)166,
30(8)217,
30(11)79
- contribution,
25(6)137,
27(7)152,
28(3)149,
28(3)345,
28(7)187,
29(6)337-1,
30(6)218
- Cortesi, A.,
29(6)337-1
- disjunctive,
29(6)337-1
- domain,
6(4)46,
25(6)189,
25(10)237,
26(9)52,
26(11)47,
27(10)166,
27(10)166-1,
29(6)337-1,
29(10)51,
29(10)341,
30(3)62,
30(8)134,
30(10)333,
30(11)7
- effective,
25(6)53,
26(6)177,
26(6)177-1,
26(6)219,
27(9)238,
28(6)300,
28(7)229,
28(8)90,
29(6)159,
29(6)337-1,
29(11)12,
29(11)76-1,
29(11)252,
29(11)328,
30(6)79-1,
30(6)103,
30(6)130,
30(6)270,
30(6)301,
30(8)166,
31(5)149,
31(10)292,
31(11)28,
32(5)71,
32(5)320,
32(5)320-1,
32(7)112,
32(7)112,
32(7)264,
33(5)280,
34(7)10
- engineered,
29(6)337-1
- equality,
28(6)227,
29(5)3,
29(6)337-1,
29(8)59,
31(2)55
- expensive,
27(7)152,
27(9)262,
29(6)61,
29(6)337-1,
30(8)68,
30(8)144,
33(7)51,
33(7)59,
33(7)83
- factor,
25(6)53,
25(6)66,
27(7)106,
28(3)53,
28(3)97,
28(6)1,
28(12)169,
29(6)73,
29(6)337-1,
29(9)81,
29(11)25,
30(3)71,
30(8)80-1,
30(8)179,
30(8)207,
30(11)99
- few,
25(6)92,
25(6)112,
25(6)165,
27(7)82,
28(3)209,
28(3)231,
28(6)139-1,
29(6)36,
29(6)337-1,
29(11)232,
29(11)242,
29(11)328,
30(6)186,
30(8)80-1,
33(7)51
- fixpoint,
29(6)337-1
- functionality,
27(7)1,
28(3)69,
28(7)33,
28(7)92,
29(6)337-1,
29(11)38
- generic,
26(11)89,
28(7)179,
28(10)144,
29(6)326,
29(6)337-1,
29(10)129,
29(10)153,
30(2)21,
30(2)21,
30(4)45,
30(11)41,
32(2)54,
32(6)45,
34(3)86,
34(9)148,
34(10)399
- hence,
25(6)92,
29(6)1,
29(6)337-1,
30(6)186
- high-performance,
28(12)158,
29(6)337-1,
29(12)31,
30(8)1
- however,
25(6)66,
25(6)85-1,
25(6)234,
27(7)311,
28(3)351,
28(3)363,
28(6)68,
28(6)147,
28(7)54-1,
29(6)1,
29(6)85,
29(6)218,
29(6)302,
29(6)337-1,
29(8)1,
29(11)12,
29(11)51,
29(11)86,
29(11)110,
29(11)171,
29(11)183,
29(11)252,
29(11)274,
29(11)308,
29(11)328,
30(3)23,
30(3)62,
30(3)94,
30(6)279,
30(6)291,
30(6)301,
30(8)48,
30(8)217,
30(11)134,
33(7)67
- i.e.,
25(6)165,
25(6)174,
27(7)1,
27(7)116,
28(6)46,
28(7)13,
29(6)36,
29(6)147,
29(6)218,
29(6)278,
29(6)337-1,
29(11)171,
30(3)119,
30(6)151,
30(11)88
- importance,
25(6)283,
27(7)311,
28(7)54-1,
29(6)337-1,
29(11)110,
29(11)242,
30(8)134
- in, built-,
29(6)337-1,
30(11)134
- indexing,
28(10)259,
29(6)337-1,
30(6)186
- inference,
25(6)127,
25(6)127-1,
26(6)130,
26(11)146,
27(7)106,
29(6)337-1,
29(9)72,
29(10)31,
29(10)324,
29(10)355,
30(3)62,
30(10)91,
30(10)169,
32(8)176,
34(1)228,
34(5)242,
34(9)160,
34(9)249
- inferring,
29(6)337-1
- interpretation,
25(6)257,
25(6)283,
25(9)7,
26(9)52,
26(9)106,
27(6)54,
27(7)106,
28(6)46,
28(6)237,
29(6)196,
29(6)337-1,
32(5)57,
33(7)27,
34(1)343,
34(7)35,
34(9)208,
34(9)261
- keeping,
29(6)337-1,
29(6)349,
29(6)349-1
- lead,
24(3)34,
27(7)249,
28(7)44,
29(6)337-1,
29(8)35,
29(11)274,
30(3)23,
30(3)62,
30(6)151,
30(11)70
- line,
27(7)22,
28(3)69,
28(7)179,
29(6)73,
29(6)121,
29(6)337-1,
29(8)35,
29(9)38,
29(11)219,
29(11)252,
30(6)279,
30(11)99,
31(6)180,
32(5)171,
33(7)19
- main,
25(6)197,
25(12)85,
28(3)359,
28(3)363,
28(8)90,
29(6)337-1,
29(8)119,
29(11)12,
29(11)86,
29(11)86-1,
29(11)219,
30(6)79-1,
30(11)125,
34(3)37
- may,
25(6)85-1,
25(6)112,
25(6)246,
27(7)32,
27(7)44,
27(7)55,
27(7)212,
27(7)235,
27(7)273,
27(7)322,
27(12)20,
27(12)28,
28(3)361,
28(6)1,
28(6)13,
28(7)23,
28(7)83,
29(6)1,
29(6)13,
29(6)36,
29(6)206,
29(6)266,
29(6)337-1,
29(6)349,
29(6)349-1,
29(8)46,
29(8)59,
29(11)25,
29(11)183,
30(3)1,
30(3)62,
30(6)67,
30(6)246,
30(11)50,
30(11)79,
30(11)125,
30(11)134,
33(7)27,
34(4)17
- medium-sized,
29(6)337-1,
29(11)171
- name,
25(5)25,
25(5)95,
25(6)85-1,
27(7)235,
28(2)21,
28(3)299,
28(3)355,
29(6)159,
29(6)337-1,
30(2)2,
30(6)79-1,
30(11)146-1
- novel,
27(7)94,
27(7)283,
27(7)331,
28(6)258,
28(7)218,
29(6)36,
29(6)290,
29(6)337-1,
29(8)74,
29(11)232,
30(6)218,
30(8)102,
30(8)123,
30(8)144,
30(11)41,
34(4)70
- obtain,
26(6)219,
28(7)64,
29(6)36,
29(6)121,
29(6)337-1,
29(11)286,
30(6)1,
30(6)270,
30(8)217,
30(11)31
- often,
25(6)78,
25(6)189,
28(3)343,
28(3)347,
28(6)207-1,
28(6)237,
28(6)268,
28(7)102,
29(6)337-1,
29(11)183,
29(11)219,
30(3)62,
30(4)13,
30(6)218,
30(11)70,
33(7)19,
33(7)59
- operator,
25(4)73,
25(6)189,
25(6)257,
28(6)147,
28(6)156,
28(8)90,
29(1)9,
29(1)46,
29(5)7,
29(6)135,
29(6)337-1,
30(8)58,
33(7)1,
33(9)87
- pattern,
6(4)85,
6(4)128,
6(4)132,
25(6)223,
25(6)283,
25(10)38,
25(10)116,
26(6)145,
26(9)62,
27(7)162,
27(7)200,
27(10)63,
27(10)218,
27(12)28,
28(6)68,
28(6)197,
28(7)23,
28(7)83,
28(7)169,
28(7)249,
29(6)85,
29(6)337-1,
29(8)35,
29(10)191,
29(10)453,
29(11)61,
30(6)218,
30(8)112,
30(10)231,
30(10)337,
30(10)342,
30(10)370,
30(10)370-1,
30(11)50,
31(1)2,
31(1)2-1,
31(2)4,
31(3)2,
31(4)1-1,
31(6)110,
31(10)18,
31(12)18,
32(8)75,
32(10)206-1,
32(10)218,
32(10)342,
32(10)342-1,
32(11)17,
33(5)60,
33(10)134,
33(12)20-1,
34(1)348,
34(2)26,
34(2)47,
34(2)47,
34(4)19-1,
34(6)18-1,
34(6)z-2,
34(12)18-1,
34(12)57
- performance, high-,
28(12)158,
29(6)337-1,
29(12)31,
30(8)1
- practical,
26(6)15,
26(11)1,
27(7)32,
27(7)273,
28(3)209,
28(3)271,
28(6)1,
28(6)68,
28(6)227,
29(6)337-1,
29(9)77,
29(11)208,
30(6)116,
30(8)134,
30(8)156,
30(11)20-1,
30(12)4,
31(5)117,
32(8)136,
32(10)318,
33(3)57,
33(10)388,
33(10)388-1,
33(12)20-1,
34(2)26,
34(4)19-1,
34(6)18-1,
34(6)z-2,
34(10)292,
34(12)18-1
- predicate,
25(6)165,
26(12)167,
28(6)290,
28(12)21,
28(12)32,
28(12)140,
29(5)7,
29(6)337-1,
29(7)61
- primary,
25(6)16,
29(1)37,
29(6)337-1,
29(8)13,
29(11)242
- prolog,
25(1)33,
25(3)40,
25(3)99,
25(5)91,
25(7)59,
25(7)63,
25(11)75,
25(12)54,
26(2)41,
26(6)306,
26(7)83,
26(9)23,
26(9)274,
27(7)106,
27(7)128,
28(2)53,
28(3)37,
28(3)365,
28(4)21,
28(9)5,
29(6)36,
29(6)337-1,
29(6)349,
29(6)349-1,
30(7)45,
31(7)33,
32(5)1,
32(9)47,
33(2)41,
34(3)97
- purpose,
27(5)z,
27(9)285,
28(3)231,
28(7)218,
28(8)90,
28(10)240,
28(10)240-1,
28(10)256,
29(6)337-1,
31(5)117
- rational,
29(6)337-1,
29(6)349,
29(6)349-1
- reasonably,
29(6)337-1,
29(6)349,
29(6)349-1,
29(11)308
- 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)230,
29(6)242,
29(6)242-1,
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
- require,
25(1)59,
25(6)66,
25(6)85-1,
25(6)92,
25(6)102,
25(10)237,
27(7)1,
27(7)12,
27(7)32,
27(7)140,
27(7)311,
27(7)331,
28(3)69,
28(6)156,
28(6)227,
28(6)300,
28(7)13,
28(7)149,
29(6)24,
29(6)36,
29(6)49,
29(6)61,
29(6)196,
29(6)218,
29(6)302,
29(6)337-1,
29(8)35,
29(11)51,
29(11)297,
30(3)1,
30(3)13,
30(6)196,
30(6)233,
30(11)88,
30(11)146-1,
33(7)35,
33(7)51,
33(7)59,
33(7)83,
33(11)252
- sacrificing,
28(6)258,
29(6)337-1
- 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)230,
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
- size,
25(6)246,
25(6)272,
25(6)311,
25(12)85,
26(6)130,
27(7)22,
27(7)200,
27(7)273,
27(7)322,
28(3)359,
28(6)237,
28(7)13,
28(7)44,
28(7)208,
29(6)49,
29(6)97,
29(6)107,
29(6)290,
29(6)337-1,
29(11)98,
29(11)158,
29(11)171,
29(11)232,
29(11)328,
30(3)94,
30(6)32,
30(6)56,
30(6)186,
30(6)279,
30(8)39,
30(11)88
- sized, medium-,
29(6)337-1,
29(11)171
- small,
17(9)18,
25(5)124,
25(6)66,
25(6)174,
27(7)1,
27(7)212,
27(7)273,
27(7)322,
27(7)331,
27(9)285,
27(12)61,
28(3)231,
28(3)357,
28(6)126,
28(6)217,
28(7)119,
28(7)208,
28(7)229,
28(8)53,
28(8)90,
29(6)337-1,
29(6)349,
29(6)349-1,
29(8)94,
29(11)2,
29(11)76-1,
29(11)86,
29(11)242,
29(11)252,
29(11)274,
29(11)328,
30(3)111,
30(3)119,
30(8)217,
32(10)125
- sophisticated,
27(7)1,
27(7)12,
28(7)33,
29(6)206,
29(6)337-1,
30(6)270
- specialization,
26(9)199,
26(9)321,
28(10)201,
28(10)201-1,
29(6)337-1,
30(4)61,
30(6)93,
31(5)215,
32(8)239,
32(8)239,
32(10)271,
32(10)286,
32(12)151,
32(12)163,
32(12)163,
34(5)281,
34(9)273,
34(11)83
- structural,
25(1)52,
26(8)111,
26(11)329,
28(10)338,
29(6)337-1,
29(8)59,
30(6)139,
30(6)233,
30(8)92,
31(6)73
- subterms,
29(6)337-1
- sure,
29(6)337-1
- technical,
28(1)5,
28(3)231,
28(12)169,
29(6)147,
29(6)337-1,
29(11)145,
31(2)12,
31(3)13,
31(4)19,
31(4)20,
32(3)3,
32(3)32,
33(1)15,
33(1)z-2,
33(3)37,
33(9)25,
33(12)32,
33(12)33,
34(2)40,
34(2)47,
34(4)37,
34(4)38-1,
34(6)36,
34(6)37-1,
34(6)z-3,
34(12)35
- tree,
25(4)51,
25(6)9,
25(6)296,
26(6)177-1,
26(6)192,
27(4)68,
27(7)82,
27(7)331,
28(3)363,
28(3)367,
28(6)126,
28(6)156,
29(6)135,
29(6)171,
29(6)218,
29(6)337-1,
29(8)59,
29(9)51,
29(12)94,
30(3)1,
30(6)32,
30(6)47,
30(6)163-1,
30(6)246,
30(8)29,
30(10)251,
31(1)28,
31(5)54,
31(9)222-1,
32(5)85,
33(9)87,
34(1)204,
34(4)19,
34(4)19-1
- unification,
27(11)49,
29(6)337-1,
29(6)349,
29(6)349-1,
31(1)32
- widening,
29(6)337-1