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{Lewis:1995:CMR,
author = "Brian T. Lewis and L. Peter Deutsch and Theodore C.
Goldstein",
title = "Clarity {MC}ode: {A} Retargetable Intermediate
Representation for Compilation",
journal = j-SIGPLAN,
volume = "30",
number = "3",
pages = "119--128",
month = mar,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Sun Dec 14 09:17:02 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/202529/p119-lewis/",
abstract = "To support the compilation of Clarity, we have
developed a high-level, machine-independent
intermediate representation that we call MCode (middle
code). We use MCode to compile Clarity programs at
execution time (i.e., on-the-fly) into SPARC 1 code for
the Solaris operating system. This code generator is
designed to be largely machine-independent: besides the
SPARC code generator, an Intel x86 version is being
developed. MCode includes a small amount of
optimization information that enables the runtime code
generator to produce good quality code. Our SPARC code
generator produces code about as good as that produced
by the SunPRO C compiler at the -O2 optimization level.
A significant advantage of MCode over native machine
code is that it can be represented more compactly;
MCode is stack-based, and the encoding of most
instructions can be a single byte. We also support an
interpreter for MCode that supports full interoperation
with C and existing C libraries. Although MCode
includes instructions and data structures needed to
implement some Clarity language-specific constructs
such as its exceptions and method calls, the core of
MCode is suitable for representing code for C and many
other languages.",
acknowledgement = ack-nhfb,
affiliation = "Sun Microsystems Labs., Mountain View, CA, USA",
classification = "C6110J (Object-oriented programming); C6115
(Programming support); C6120 (File organisation);
C6140D (High level languages); C6150C (Compilers,
interpreters and other processors)",
confdate = "22 Jan. 1995",
conflocation = "San Francisco, CA, USA",
confname = "ACM SIGPLAN workshop on Intermediate representations,
January 22, 1995, San Francisco, CA",
keywords = "C language; C libraries; Clarity C++ programming
language; Clarity language-specific constructs; Clarity
MCode; Clarity programs; Code generator; Compilation;
Data structures; design; Exceptions; Execution time;
Good quality code; Instructions; Intel x86 version;
Interoperation; Interpreter; languages; Method calls;
Optimization information; performance; Retargetable
intermediate representation; Solaris operating system;
SPARC 1 code; theory",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, C++. {\bf D.3.4} Software, PROGRAMMING
LANGUAGES, Processors, Compilers. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Code generation.
{\bf D.2.10} Software, SOFTWARE ENGINEERING, Design**,
Representation**.",
thesaurus = "Application generators; C language; Data structures;
Object-oriented languages; Open systems; Optimising
compilers; Program interpreters",
}
Related entries
- advantage,
25(6)9,
25(6)296,
26(4)28,
26(4)290,
27(7)116,
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(6)79-1,
30(6)151,
30(6)205,
30(11)50,
30(11)146-1
- 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)230,
29(6)349,
29(6)349-1,
29(11)61,
29(11)158,
30(6)205,
30(8)68,
33(7)51
- amount,
25(6)66,
25(6)85-1,
25(6)102,
25(6)272,
25(6)322,
27(7)94,
28(6)197,
28(6)278,
29(6)1,
29(8)94,
29(11)86,
30(6)151,
30(6)218,
33(7)59
- being,
27(7)32,
27(9)274,
28(3)333,
28(6)1,
28(7)92,
29(6)147,
29(6)186,
30(3)111,
30(6)67,
30(6)205,
30(6)291,
30(8)179,
30(11)7
- besides,
27(12)61,
29(6)147,
29(8)46
- C6110J,
28(3)69,
28(3)133,
28(3)271,
28(3)349,
28(3)351,
28(3)367,
28(6)139-1,
28(7)23,
28(7)218,
28(7)249,
29(1)46,
29(2)19,
29(5)17-1,
29(5)31,
29(6)326,
29(7)15,
29(7)21,
29(7)29,
29(7)61,
29(8)74,
29(8)119,
29(9)9,
29(9)17,
29(9)105,
29(9)135,
29(10)1,
29(10)16,
29(10)31,
29(10)51,
29(10)85,
29(10)113,
29(10)153,
29(10)164,
29(10)176,
29(10)191,
29(10)205,
29(10)212,
29(10)229,
29(10)244,
29(10)259,
29(10)272,
29(10)287,
29(10)301,
29(10)324,
29(10)355,
29(10)373,
29(10)403,
29(10)427,
29(10)440,
29(10)453,
29(12)38,
29(12)48,
29(12)66,
29(12)78,
29(12)94,
29(12)104,
30(2)12,
30(3)35,
30(3)111,
30(6)93,
30(6)103,
30(8)11,
30(8)48,
30(11)31,
30(11)50
- C6115,
25(1)52,
29(6)196,
29(8)1,
29(8)13,
29(8)22,
29(8)46,
29(9)44,
29(9)77,
29(10)164,
29(10)212,
29(10)229,
29(10)287,
29(10)355,
29(10)403,
29(11)263,
29(12)38,
29(12)73,
29(12)78,
29(12)94,
30(3)111,
30(6)103,
30(6)291,
30(8)11,
30(8)48,
30(8)68,
30(8)80-1,
30(11)50,
30(11)99,
30(11)108,
30(11)117,
30(11)134,
30(11)146-1
- clarity,
29(12)87
- 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(6)116,
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,
25(6)9,
25(6)137,
25(6)150,
25(6)174,
25(6)257,
27(7)106,
27(7)116,
28(3)349,
28(7)83,
29(6)13,
29(6)290,
30(6)67,
30(6)93,
30(6)174,
30(8)58,
30(8)179,
33(7)27
- core,
26(12)36,
27(7)128,
29(6)1,
31(6)201,
33(7)27,
34(1)75,
34(10)132
- D.2.10,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(3)62,
30(3)71,
30(3)83,
30(11)108,
31(5)171,
32(5)206
- Design**,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(3)62,
30(3)71,
30(3)83,
30(11)108,
31(5)171,
32(5)206
- designed,
25(6)78,
27(7)1,
27(7)12,
27(7)44,
28(3)353,
28(7)64,
29(6)36,
29(6)206,
29(8)22,
29(8)46,
29(8)74,
29(11)2,
29(11)86,
29(11)110,
29(11)252,
29(11)263,
30(11)70,
30(11)117
- developed,
25(6)137,
28(3)1,
28(3)177,
28(3)345,
28(3)355,
28(3)357,
28(6)1,
28(6)26,
28(6)156,
28(6)237,
28(6)278,
28(7)92,
28(7)218,
28(8)90,
29(6)186,
29(8)101,
29(11)12,
29(11)196,
30(6)205,
30(6)270,
30(8)166,
30(8)179,
30(11)70,
30(11)99,
33(7)43,
33(7)59
- enable,
27(7)12,
27(7)341,
28(6)46,
28(7)112,
29(6)218,
29(8)59,
29(11)158,
29(11)196,
30(3)23,
30(3)83,
30(6)291,
30(11)146-1
- encoding,
34(1)289,
34(4)54
- exception,
25(10)322,
27(9)238,
27(12)61,
28(3)133,
28(3)347,
28(6)46,
28(6)147,
29(11)110,
29(12)104,
30(11)50,
33(8)40,
34(5)25,
34(5)25-1
- 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)230,
29(6)349,
29(6)349-1,
29(8)119,
29(11)196,
29(11)242,
29(11)308,
30(3)71,
30(6)67,
30(6)79-1,
30(6)301,
31(10)18,
31(12)73
- fly, on-the-,
25(6)150,
27(7)331
- full,
26(9)23,
27(7)32,
27(7)128,
27(9)248,
28(3)355,
28(6)147,
28(6)207-1
- generator,
25(4)59,
25(6)1,
25(6)9,
25(6)189,
25(6)197,
25(6)209,
26(6)45,
27(7)82,
27(9)213,
28(6)237,
29(7)54,
29(8)59,
29(9)44,
29(11)263,
29(12)94,
30(5)37,
31(5)249,
31(8)52,
33(5)291,
33(9)87,
33(11)151
- good,
25(6)53,
25(6)85-1,
25(6)174,
27(9)248,
27(12)61,
28(3)347,
28(6)139-1,
28(6)177,
28(6)278,
28(7)13,
28(7)112,
28(11)9,
28(11)9-1,
29(6)290,
29(10)145,
29(11)208,
29(11)219,
30(6)130,
30(8)80-1,
30(8)134,
30(8)199,
30(11)7,
32(3)27,
32(3)27-1,
33(4)34,
33(7)59
- high-level,
25(3)156,
27(7)55,
27(7)116,
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(6)1,
30(8)11,
30(8)19,
30(8)80,
30(8)80-1,
30(11)50,
32(5)109,
33(10)271
- 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,
29(6)337-1,
29(11)171,
30(6)151,
30(11)88
- implement,
25(1)59,
25(6)16,
27(7)55,
27(7)200,
27(9)223,
28(3)231,
28(3)299,
28(6)227,
28(7)198,
29(8)94,
29(11)208,
29(11)274,
29(11)319,
30(11)79,
31(10)359,
34(3)37
- include,
25(6)78,
27(7)128,
27(7)200,
27(7)212,
27(7)273,
28(3)359,
28(6)26,
28(6)147,
28(7)33,
28(12)169,
29(6)49,
29(8)59,
29(11)25,
30(6)196,
30(6)205,
30(8)134,
30(8)199,
30(8)207,
32(10)108,
32(10)162,
32(10)162-1,
32(10)206,
32(10)206-1
- independent, machine-,
27(7)22,
29(11)263,
30(6)103,
30(6)291,
30(6)291-1
- Intel,
25(6)40,
27(1)95,
30(6)103,
30(8)11,
30(8)207,
30(11)88
- intermediate,
25(6)92,
28(6)166,
28(6)237,
28(7)102,
28(7)139,
29(6)36,
29(8)1,
30(3)35,
30(3)62,
30(3)71,
30(3)83,
30(3)111,
30(6)103,
31(10)83,
34(1)313,
34(9)183
- largely,
30(6)205,
34(2)1
- level, high-,
25(3)156,
27(7)55,
27(7)116,
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(6)1,
30(8)11,
30(8)19,
30(8)80-1,
30(11)50
- library,
26(4)290,
26(11)47,
27(3)71,
27(7)200,
27(9)285,
27(10)435,
27(10)435-1,
27(12)81,
28(1)21,
28(1)21-1,
28(3)271,
28(3)343,
28(3)347,
28(6)100,
28(7)102,
28(10)83,
29(6)49,
29(8)46,
29(10)212,
29(10)453,
30(6)291,
30(8)11,
30(8)58,
30(8)68,
30(8)80-1,
31(4)4,
31(4)4-1,
31(12)22,
32(5)206,
32(10)1,
32(10)1-1,
34(1)261,
34(3)86,
34(6)76,
34(10)399
- machine-independent,
27(7)22,
29(11)263,
30(6)103,
30(6)291,
30(6)291-1
- 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)116,
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(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
- middle,
30(6)116
- most,
25(4)73,
25(6)53,
25(6)165,
25(6)189,
25(6)209,
25(6)337,
26(4)290,
27(7)1,
27(7)94,
27(7)152,
27(7)300,
28(3)69,
28(3)333,
28(3)347,
28(6)36,
28(6)90,
28(6)139-1,
28(6)177,
28(6)197,
28(7)13,
28(7)54-1,
28(7)149,
28(7)208,
28(8)90,
29(6)61,
29(6)85,
29(6)107,
29(6)186,
29(8)13,
29(11)38,
29(11)51,
29(11)274,
29(11)328,
30(3)71,
30(8)179,
30(11)20-1
- native,
30(8)39,
33(3)73,
33(3)73-1
- needed,
25(6)137,
28(6)36,
28(6)68,
28(8)90,
30(3)111
- on-the-fly,
25(6)150,
27(7)331,
28(12)12,
28(12)12-1,
28(12)107,
28(12)107-1
- produce,
25(6)85-1,
27(7)94,
27(7)152,
27(7)331,
27(7)341,
27(12)28,
28(3)299,
28(3)359,
28(6)90,
28(6)126,
28(6)156,
28(6)237,
28(7)83,
29(6)1,
29(6)36,
29(6)85,
29(6)349,
29(6)349-1,
29(8)59,
30(3)111,
30(4)29,
30(6)67,
30(6)270,
30(11)70,
33(4)44,
33(11)252
- produced,
25(6)85-1,
25(6)112,
25(6)165,
27(7)94,
27(7)273,
28(3)97,
28(3)177,
28(3)231,
28(3)299,
29(8)1,
29(11)61,
30(3)13,
30(11)1
- quality,
25(12)85,
26(6)219,
30(3)23,
30(11)134,
33(5)142,
34(3)1,
34(10)47
- Representation**.,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(3)62,
30(3)71,
30(3)83
- represented,
28(6)126,
29(6)73,
29(6)97,
29(8)119,
30(3)50,
30(3)62,
30(6)32,
30(8)144,
30(11)70
- representing,
25(6)66,
25(6)234,
27(7)175,
29(10)403,
30(3)62,
30(7)45,
30(11)31,
31(5)99,
34(9)183
- retargetable,
25(6)9,
26(6)229,
26(10)29,
27(7)22,
27(7)94,
29(6)186,
29(11)263,
30(6)103,
31(5)160
- runtime,
25(6)137,
25(6)174,
26(12)26,
27(7)55,
27(7)200,
28(3)349,
28(6)100,
28(7)54-1,
28(7)83,
28(7)149,
28(7)249,
28(10)144,
29(9)105,
29(10)427,
29(11)263,
29(12)38,
30(6)67,
30(6)103,
30(6)174,
30(8)207,
30(11)124,
33(11)151,
34(1)1
- 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(6)79-1,
30(6)218,
30(6)315,
30(8)48,
30(11)125,
33(11)252
- single,
25(6)28,
25(6)272,
27(7)162,
27(7)188-1,
27(9)175,
27(9)213,
28(3)177,
28(3)299,
28(6)36,
28(6)78-1,
28(6)126,
28(7)13,
28(7)44,
28(7)239,
29(6)24,
29(6)97,
29(6)107,
29(6)171,
29(6)186,
29(6)196,
29(7)51,
29(8)1,
29(11)38,
29(11)98,
29(11)319,
30(3)13,
30(3)50,
30(3)62,
30(6)1,
30(6)13,
30(6)47,
30(6)67,
30(6)186,
30(8)48,
30(11)60,
33(5)97,
34(5)204
- 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,
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(8)217,
32(10)125
- SPARC,
26(4)28,
26(4)290,
27(7)22,
28(6)1,
28(6)197,
28(7)218,
29(6)313,
30(6)103,
30(6)139
- suitable,
25(6)40,
26(6)145,
27(7)140,
28(3)231,
28(7)119,
29(12)104,
30(6)103,
30(11)31
- the-fly, on-,
25(6)150,
27(7)331
- 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(6)13,
30(6)93,
30(6)315,
33(7)19,
33(7)51,
33(7)83