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{Shao:1995:TBC,
author = "Zhong Shao and Andrew W. Appel",
title = "A type-based compiler for {Standard ML}",
journal = j-SIGPLAN,
volume = "30",
number = "6",
pages = "116--129",
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/p116-shao/",
abstract = "Compile-time type information should be valuable in
efficient compilation of statically typed functional
languages such as Standard ML. But how should
type-directed compilation work in real compilers, and
how much performance gain will type-based optimizations
yield? In order to support more efficient data
representations and gain more experience about
type-directed compilation, we have implemented a new
type-based middle end and back end for the Standard ML
of New Jersey compiler. We describe the basic design of
the new compiler, identify a number of practical
issues, and then compare the performance of our new
compiler with the old non-type-based compiler. Our
measurement shows that a combination of several simple
type-based optimizations reduces heap allocation by
36\%, and improves the already-efficient code generated
by the old non-type-based compiler by about 19\% on a
DECstation 5000.",
acknowledgement = ack-nhfb,
affiliation = "Yale Univ., New Haven, CT, USA",
annote = "Published as part of the Proceedings of PLDI'95.",
classification = "C6120 (File organisation); C6140D (High level
languages); C6150C (Compilers, interpreters and other
processors)",
generalterms = "algorithms; languages; performance",
keywords = "Compile-time type information; Data representations;
DECstation 5000; Efficient code generation; Heap
allocation; Performance gain; Standard ML; Standard ML
of New Jersey compiler; Statically typed functional
languages; Type-based back end; Type-based compiler;
Type-based middle end; Type-directed compilation",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Standard ML. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
F.3.3} Theory of Computation, LOGICS AND MEANINGS OF
PROGRAMS, Studies of Program Constructs, Type
structure. {\bf D.3.3} Software, PROGRAMMING LANGUAGES,
Language Constructs and Features, Data types and
structures. {\bf D.3.3} Software, PROGRAMMING
LANGUAGES, Language Constructs and Features,
Procedures, functions, and subroutines. {\bf F.3.3}
Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
Studies of Program Constructs, Functional constructs.",
thesaurus = "Data structures; Functional languages; Optimising
compilers",
}
Related entries
- Appel, Andrew W.,
26(4)96,
26(12)120,
27(4)87,
29(6)13,
31(2)55,
32(8)112,
32(8)112,
33(4)17
- back,
27(7)1,
28(6)290,
29(6)186,
29(12)31,
30(3)71,
31(5)108,
32(10)318
- based, Type-,
34(11)84
- based, type-,
32(8)1,
34(10)97
- basic,
25(6)165,
25(6)223,
26(9)106,
27(7)1,
27(7)82,
27(7)212,
27(7)322,
27(7)341,
27(9)285,
28(2)21,
28(6)227,
29(6)36,
29(6)85,
29(6)196,
29(6)349,
29(6)349-1,
29(9)44,
29(10)31,
29(11)232,
29(11)242,
29(11)286,
30(3)35,
30(4)9,
30(6)246,
31(10)104,
32(9)54,
34(8)1,
34(10)57
- combination,
25(6)272,
27(10)25,
28(6)278,
29(6)159,
29(6)337,
29(6)337-1,
29(6)349,
29(6)349-1,
29(8)119,
30(8)123,
33(7)27
- compare,
25(6)234,
25(12)54,
27(7)188-1,
28(7)83,
28(8)57,
29(6)85,
29(11)12,
29(11)132-1,
30(6)13,
30(6)79-1,
30(8)1,
31(9)150,
33(7)51
- compilation,
24(3)34,
25(6)16,
25(6)137,
25(6)150,
25(6)283,
27(1)13,
27(7)68,
27(7)94,
27(7)200,
28(6)166,
28(6)237,
29(6)13,
29(6)36,
29(10)229,
30(3)13,
30(3)119,
30(6)163-1,
30(6)258,
30(8)1,
30(10)124,
30(11)41,
30(11)125,
31(5)149,
31(5)206,
31(6)34,
32(5)215,
32(7)180,
32(8)309,
32(8)309,
32(12)1,
32(12)107,
34(1)141,
34(9)160
- compile-time,
25(6)223,
25(6)272,
26(10)19,
27(7)116,
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(8)29,
30(8)144,
30(8)156,
32(1)110
- DECstation,
29(11)2
- directed, type-,
32(12)22,
34(9)160,
34(11)22
- end,
26(3)88,
28(3)1,
28(3)37,
29(6)186,
29(7)54,
29(12)31,
30(3)71,
30(6)130,
33(9)95
- experience,
25(5)53,
25(6)209,
25(10)181,
26(11)89,
26(11)314,
26(12)46,
27(7)82,
27(10)178,
28(1)84,
28(7)33,
28(7)54,
28(7)54-1,
28(7)187,
28(7)187,
28(10)83,
29(5)37,
29(6)278,
29(10)403,
29(11)12,
29(11)145,
30(6)218,
30(6)233,
30(10)33,
30(10)61,
30(10)61-1,
30(10)467,
32(7)124,
32(7)124,
32(7)157,
32(10)243,
33(7)27,
33(7)43,
33(9)95,
34(10)292,
34(11)1,
34(11)83
- gain,
28(6)177,
29(6)1,
29(6)85,
29(11)25,
29(11)219,
30(8)217,
30(11)146-1
- generated,
25(4)59,
25(6)53,
25(6)189,
25(6)209,
25(12)85,
27(3)71,
27(7)322,
28(3)299,
28(6)26,
28(6)126,
29(6)36,
29(6)257,
29(6)257-1,
29(11)122,
29(11)263,
30(3)23,
30(6)151,
30(6)186,
30(11)60,
34(12)37
- heap,
25(6)66,
26(3)45,
27(7)116,
27(7)273,
28(6)197,
29(5)27,
29(12)112,
30(6)301,
31(6)34,
33(11)12,
34(9)48
- how,
25(4)51,
25(5)95,
25(6)1,
25(6)53,
25(6)92,
25(6)112,
25(6)223,
26(11)359,
27(1)95,
27(6)64,
27(7)82,
27(7)106,
27(7)140,
27(7)162,
27(7)212,
27(7)249,
27(7)311,
27(7)341,
27(9)248,
27(12)28,
27(12)47,
28(3)1,
28(3)353,
28(6)46,
28(6)78-1,
28(6)126,
28(6)177,
28(6)258,
28(7)64,
28(7)83,
28(7)149,
28(8)57,
28(10)429,
28(10)429-1,
28(11)9,
28(11)9-1,
29(6)121,
29(6)171,
29(8)35,
29(8)74,
29(8)84,
29(10)468,
29(11)2,
29(11)145,
29(11)208,
30(3)23,
30(3)62,
30(3)71,
30(3)94,
30(4)13,
30(5)3,
30(6)103,
30(6)139,
30(8)102,
30(10)251,
30(11)50,
30(11)70,
30(11)79,
32(6)75,
32(10)206,
33(10)134,
33(11)252,
34(3)10
- identify,
28(6)26,
29(6)85,
29(8)46,
29(11)51,
30(3)94,
30(6)47,
30(6)218,
30(8)179,
31(10)342,
33(7)27
- implemented,
25(1)59,
25(6)16,
25(6)78,
26(6)145,
26(6)219,
27(1)95,
27(7)44,
27(7)82,
27(7)106,
27(7)140,
27(7)152,
27(7)212,
27(7)235,
27(7)322,
27(9)274,
27(10)127,
28(3)1,
28(3)133,
28(3)357,
28(6)1,
28(6)26,
28(6)139-1,
28(6)217,
28(6)237,
28(6)258,
28(7)13,
28(7)54-1,
28(7)112,
28(7)179,
28(12)169,
29(6)36,
29(6)107,
29(6)135,
29(6)186,
29(6)196,
29(6)290,
29(6)349,
29(6)349-1,
29(8)74,
29(8)94,
29(10)373,
29(11)2,
29(11)132-1,
29(11)252,
30(6)1,
30(6)67,
30(6)103,
30(6)139,
30(6)270,
30(8)11,
30(8)29,
30(8)39,
30(8)48,
30(8)134,
30(8)144,
30(8)156,
30(11)41,
30(11)88,
30(11)134,
33(7)19
- improve,
25(6)53,
25(6)337,
26(6)145,
26(6)177,
26(6)177-1,
27(7)106,
27(7)116,
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)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
- issue,
25(6)322,
25(10)235,
26(3)45,
26(11)163,
27(7)68,
27(10)435,
27(10)435-1,
28(3)231,
28(6)227,
28(6)290,
28(7)44,
28(7)54-1,
28(7)149,
29(6)159,
29(11)98,
29(12)78,
30(6)246,
30(8)207,
31(9)2-1,
31(9)12,
31(9)26,
31(9)37,
31(9)50,
31(9)60,
31(9)74,
31(9)84,
31(9)94,
31(9)105,
31(9)116,
31(9)128,
31(9)138,
31(9)150,
31(9)160,
31(9)174,
31(9)186,
31(9)198,
31(9)210,
31(9)222-1,
31(9)234,
31(9)244-1,
31(9)258,
31(9)268,
31(9)279,
31(9)290
- Jersey,
28(7)198
- middle,
30(3)119
- 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(6)230,
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)205,
33(7)59
- old,
26(11)33,
26(11)340,
27(5)z,
27(7)32,
28(3)69,
30(3)35,
31(1)1
- order,
25(6)1,
25(6)16,
27(7)12,
27(7)116,
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)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
- 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)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,
30(6)315
- 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,
29(6)337-1,
29(9)77,
29(11)208,
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
- 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)315,
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)130,
30(6)174,
30(6)270,
30(6)279,
30(6)315,
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)315,
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
- Shao, Zhong,
32(8)85,
34(1)141,
34(1)313,
34(9)183,
34(9)220
- should,
6(4)30,
25(5)95,
25(6)78,
25(6)174,
27(3)24,
27(7)1,
27(7)140,
27(7)311,
28(3)299,
28(6)197,
29(6)206,
29(11)2,
29(11)145,
29(11)219,
30(6)151,
30(6)246,
30(9)17,
30(11)79,
34(7)96
- statically,
27(7)116,
27(7)273,
28(7)83,
28(7)129,
30(3)94,
30(6)67,
30(6)218,
30(11)79,
32(8)75,
33(7)27
- 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)230,
29(6)242,
29(10)453,
30(3)13,
30(6)174,
31(5)193,
33(5)174
- then,
25(6)92,
25(6)102,
25(6)209,
25(6)223,
25(6)296,
27(7)152,
27(7)188-1,
27(7)300,
27(7)311,
28(3)37,
28(3)177,
28(3)209,
28(3)231,
28(3)333,
28(6)13,
28(6)78-1,
28(6)166,
28(7)64,
29(11)98,
29(11)122,
29(11)171,
29(11)242,
30(3)23,
30(3)94,
30(6)47,
30(6)67,
30(6)186,
30(6)218,
30(8)166,
30(8)179,
30(11)79,
33(7)59
- time, Compile-,
26(10)19,
28(7)239,
28(12)129,
28(12)129-1,
30(8)29,
30(8)144,
30(8)156,
32(1)110
- type-based,
32(8)1,
34(10)97,
34(11)84
- type-directed,
32(12)22,
34(9)160,
34(11)22
- typed,
25(6)127-1,
26(6)165,
26(6)165-1,
26(9)142,
27(7)273,
27(10)91,
28(3)351,
28(3)359,
28(6)139-1,
28(10)231,
29(9)105,
29(10)191,
32(8)11,
34(1)141,
34(1)313,
34(9)183
- valuable,
28(7)239,
30(6)67
- will,
25(6)53,
27(7)82,
27(7)188-1,
27(7)311,
28(3)97,
29(6)107,
29(6)206,
29(6)218,
29(6)278,
29(8)59,
29(11)2,
29(11)145,
29(11)242,
29(11)297,
30(3)71,
30(6)79-1,
30(8)123,
30(11)41,
32(1)14,
32(10)345-1,
32(10)345-4
- work,
25(6)16,
25(6)40,
25(6)85-1,
25(6)174,
25(6)322,
26(12)46,
27(7)22,
27(7)200,
27(7)311,
27(7)322,
28(3)69,
28(3)209,
28(3)271,
28(6)147,
28(6)207-1,
28(8)90,
29(6)24,
29(6)36,
29(6)49,
29(6)159,
29(6)186,
29(6)206,
29(6)218,
29(6)278,
29(6)302,
29(8)59,
29(8)111,
29(10)129,
29(11)38,
29(11)86,
29(11)232,
29(11)308,
30(3)103,
30(6)13,
30(6)56,
30(6)196,
30(6)205,
30(6)279,
30(6)301,
30(8)48,
30(8)68,
30(8)207,
30(11)70,
33(7)59,
34(9)8-1
- yield,
25(4)73,
27(7)200,
29(6)206,
29(8)59,
29(11)308,
30(6)218,
30(8)134,
33(7)27