Proceedings of the 4th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming 2002
DOI: 10.1145/571157.571178
|View full text |Cite
|
Sign up to set email alerts
|

Java bytecode as a typed term calculus

Abstract: We propose a type system for the Java bytecode language, prove the type soundness, and develop a type inference algorithm. In contrast to the existing proposals, our type system yields a typed term calculus similar to type systems of lambda calculi. This enables us to transfer existing techniques and results of type theory to a JVM-style bytecode language. We show that ML-style let polymorphism and recursive types can be used to type JVM subroutines, and that there is an ML-style type inference algorithm.The t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
28
0

Year Published

2004
2004
2017
2017

Publication Types

Select...
3
2

Relationship

3
2

Authors

Journals

citations
Cited by 8 publications
(28 citation statements)
references
References 17 publications
0
28
0
Order By: Relevance
“…Since structural rules only rearrange assumptions and do not change the computational meaning of a program, the resulting proof is equivalent to the original proof representing the given source code. Since our method is a form of a type system, it can smoothly be integrated in a static type system of a code language such as the one developed in [7]. By regarding our liveness types as attributes of types of conventional notion, we immediately get a register allocation method for a typed code language.…”
Section: Conclusion and Discussionmentioning
confidence: 99%
“…Since structural rules only rearrange assumptions and do not change the computational meaning of a program, the resulting proof is equivalent to the original proof representing the given source code. Since our method is a form of a type system, it can smoothly be integrated in a static type system of a code language such as the one developed in [7]. By regarding our liveness types as attributes of types of conventional notion, we immediately get a register allocation method for a typed code language.…”
Section: Conclusion and Discussionmentioning
confidence: 99%
“…The general idea underlying the logical abstract machine developed in this paper can be applied to various other code languages, yielding their static type systems. As an example, in [Higuchi and Ohori 2002], a type system for the Java bytecode language has been developed by extending the stack-based logical abstract machine with jumps and the primitives to manipulate objects. This would provide an alternative basis for bytecode verification.…”
Section: -Analysis Of Low-level Codementioning
confidence: 99%
“…Since the underlying constructive interpretation is similar to the one that underlies the typed lambda calculus, this approach would also allow one to transfer some results of type-based analysis for the lambda calculus to low-level code languages. Recently, it has been shown in [Higuchi and Ohori 2003] that the static verification of access control for the lambda calculus by Skalka and Smith [2000] can be transfered to the Java bytecode language by refining the type system of [Higuchi and Ohori 2002]. …”
Section: -Analysis Of Low-level Codementioning
confidence: 99%
See 1 more Smart Citation
“…We base our development on our earlier work [Higuchi and Ohori 2002], in which we have shown that the JVM language can be regarded as a typed term calculus based on a proof theory for low-level code [Ohori 1999]. In this formalism, the type system represents static semantics of a code language, just as the type system of the lambda calculus does.…”
Section: Introductionmentioning
confidence: 99%