2010
DOI: 10.1145/1709093.1709094
|View full text |Cite
|
Sign up to set email alerts
|

Semantic foundations for typed assembly languages

Abstract: Typed Assembly Languages (TALs) are used to validate the safety of machine-language programs. The Foundational Proof-Carrying Code project seeks to verify the soundness of TALs using the smallest possible set of axioms-the axioms of a suitably expressive logic plus a specification of machine semantics. This paper proposes general semantic foundations that permit modular proofs of the soundness of TALs. These semantic foundations include Typed Machine Language (TML), a type theory for specifying properties of l… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0

Year Published

2011
2011
2021
2021

Publication Types

Select...
3
3
1

Relationship

3
4

Authors

Journals

citations
Cited by 32 publications
(22 citation statements)
references
References 90 publications
(105 reference statements)
0
22
0
Order By: Relevance
“…Appel et al showed how to prove soundness of TALs [5] using (unary) step-indexed models [3,6]. Our logical relation most closely resembles the multi-language relation of Perconti and Ahmed [22] though theirs, without assembly, is simpler.…”
Section: Related Workmentioning
confidence: 85%
“…Appel et al showed how to prove soundness of TALs [5] using (unary) step-indexed models [3,6]. Our logical relation most closely resembles the multi-language relation of Perconti and Ahmed [22] though theirs, without assembly, is simpler.…”
Section: Related Workmentioning
confidence: 85%
“…In comparison with "semantic" approaches (Ahmed, 2004;Birkedal et al, 2010;Ahmed et al, 2010;Birkedal et al, 2011;Schwinghammer et al, 2011), the syntactic approach seems more simple-minded. It is purely about syntax and reduction, whereas the semantic approach involves more complex mathematics.…”
Section: Architecture Of the Proofmentioning
confidence: 99%
“…Here, one can choose to use semantic types (that is, functions of worlds to sets of values), in which case the domain of worlds must be recursively defined; or syntactic types, in which case the interpretation of types must be recursively defined. Either way, subtle recursive definitions are required, and, in order to formulate these definitions in a sound manner, one must usually introduce some form of step-indexing or approximation (Ahmed, 2004;Birkedal et al, 2010;Ahmed et al, 2010). Modeling the higher-order frame and anti-frame rules requires a similar array of techniques (Schwinghammer et al, 2010;Birkedal et al, 2011;Schwinghammer et al, 2011).…”
Section: Architecture Of the Proofmentioning
confidence: 99%
“…But on the other hand, some parts of memory should not be observable. 1 In private regions of memory, compilers should have the freedom to optimize loads and stores of sequential programs: to hoist loads/stores past each other, and past control operations, to eliminate redundant loads and stores, etc.-subject only to dataflow constraints.…”
Section: Observablesmentioning
confidence: 99%
“…We demonstrated that the trusted base could be reduced to less than 3000 lines of source code: about 800 for a proof checker, written in C and capable of checking proofs for any object logic representable in LF; a few lines for the representation of higher-order logic (HOL) in LF; and about 1500 lines to represent instruction encodings and instruction semantics of the Sparc processor [32]. We instrumented Standard ML of New Jersey to produce type annotations at each basic block [13] and we built a semantic soundness proof for the machine-level type system [1]. Other research groups also demonstrated FPCC for other compilers [17,14].…”
Section: Foundational Verificationmentioning
confidence: 99%