Movatterモバイル変換
[0]ホーム
``A new perspective on programming-language infrastructure''Welcome to C--
Suppose you are writing a compiler; how will you get quality machine code? You mightwrite your own code generator---but that's alot of work. You mightuse somebody else's: perhapsVPO,MLRISC, or thegcc back end. But each of these impressive systems has a rich, complex, and ill-documented interface, and furthermore, to use MLRISC you must write your front end in ML, to usegcc you must write it in C, and so on. You mightgenerate C, if you can live without multiple results in registers, proper tail calls, computed gotos, accurate garbage collection, and efficient exceptions.You would be much happier withone portable assembly language that could be generated by a front end and implemented by any of several code generators. Such a language should serve as theinterface between high-level compilers and retargetable, optimizing code generators. Authors of front ends and authors of code generators could cooperate easily.C-- is that language.
What distinguishes C--
The following aspects of C-- distinguish it from other compiler infrastructures:- Other infrastructures focus on adding new optimizations;C-- focuses on supportingmultiple front ends for multiple languages.
- C-- has amachine-level type system,so you don't have to shoehorn your favorite high-level language into ahigh-level data model that doesn't fit.
- C-- provides arun-time interface, so you can implementgarbage collection and exception handling using the techniques thatare best suited toyour language.
Therun-time interface is the most novel and mostdistinguishing feature of C--.Where to go from here
To experiment with the language,download Quick C--, which includes an interpreter and a native-code compiler. You'll also want the specification (inDVI,PostScript, orPDF forms). The compiler's release notes are part of the source distribution indoc/release.ps. Foran overview of the design, consult ourpapers, which present anevolving view of C--.
Pleasewrite front ends that emit C-- orcomment on our design. If you're interested, please join themailing list.
Research on C-- and Quick C-- is supported by a generous gift fromMicrosoft Research and by theNational Science Foundation under grant number 0325460. (Opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.)The results of our research may be used freely by anyone for any purpose.
Contact:C-- Webmaster. URL:http://www.cminusminus.org/.Last edited: Sat 11 Oct 2008 16:57 EDT.
[8]ページ先頭