Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation 2008
DOI: 10.1145/1375581.1375604
|View full text |Cite
|
Sign up to set email alerts
|

Type-preserving compilation for large-scale optimizing object-oriented compilers

Abstract: Type-preserving compilers translate well-typed source code, such as Java or C#, into verifiable target code, such as typed assembly language or proof-carrying code. This paper presents the implementation of type-preserving compilation in a complex, large-scale optimizing compiler. Compared to prior work, this implementation supports extensive optimizations, and it verifies a large portion of the interface between the compiler and the runtime system. This paper demonstrates the practicality of type-preserving c… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
12
0

Year Published

2009
2009
2022
2022

Publication Types

Select...
3
2
2

Relationship

2
5

Authors

Journals

citations
Cited by 11 publications
(12 citation statements)
references
References 20 publications
0
12
0
Order By: Relevance
“…According to the benchmarks tested, programs compiled by Bartok are 0.94 to 4.13 times faster than the CLR versions, with a geometric mean of 1.66. Throughout this evaluation we compare against our previous work [4] in which we built a traditional certifying compiler, also based on Bartok, by making every compilation phase preserve types.…”
Section: Methodsmentioning
confidence: 99%
See 2 more Smart Citations
“…According to the benchmarks tested, programs compiled by Bartok are 0.94 to 4.13 times faster than the CLR versions, with a geometric mean of 1.66. Throughout this evaluation we compare against our previous work [4] in which we built a traditional certifying compiler, also based on Bartok, by making every compilation phase preserve types.…”
Section: Methodsmentioning
confidence: 99%
“…Most type systems for object-oriented typed assembly languages use type variables to distinguish between safe method invocations and unsafe code [3,4,10]. LILC [3], for example, describes p1's type and p2's type by existentially quantifying over a class variable α: both p1 and p2 have type ∃α≪Point.…”
Section: Language Italmentioning
confidence: 99%
See 1 more Smart Citation
“…We must implement the dispatch as a binary comparison tree. 7 At the GCminor level, the function signatures that appear in app expressions and in the global descriptor array are represented by distinct integer encodings s, which can be cheaply compared for equality at runtime. These integers can be easily assigned by a global traversal of the program during translation.…”
Section: Case Study: Haskell To Dminor To Gcminormentioning
confidence: 99%
“…Hawblitzel and Petrank [14] apply this approach to realistic collectors for the Bartok C# compiler, using an automated theorem prover to verify the collectors. The root and record descriptor information needed by the collectormutator interface is verified using a typed assembly language [7]. The final allocator interface of our work, given in Fig.…”
Section: Related Workmentioning
confidence: 99%