In this paper we present a recursion-theoretic denotational semantics for Featherweight Java. Our interpretation is based on a formalization of the object model of Castagna, Ghelli and Longo in a predicative theory of types and names. Although this theory is proof-theoretically weak, it allows to prove many properties of programs written in Featherweight Java. This underpins Feferman’s thesis that impredicative assumptions are not needed for computational practice. Moreover, the present work is also a contribution to the ongoing research on unifying functional and object-oriented programming. It shows that these two paradigms fit well together and that their combination has a sound mathematical model.
|
1416
|
The Java Language Specification
– Gosling, Joy, et al.
- 1996
|
|
286
|
Featherweight Java: A minimal core calculus for Java and GJ
– Igarashi, Pierce, et al.
- 1999
|
|
139
|
A calculus for overloaded functions with subtyping
– Castagna, Ghelli, et al.
- 1995
|
|
110
|
Comparing object encodings
– Bruce, Cardelli, et al.
- 1999
|
|
88
|
Proving Java Type-Soundness
– Syme
- 1997
|
|
71
|
A language and axioms for explicit mathematics
– Feferman
- 1975
|
|
59
|
Constructive theories of functions and classes
– Feferman
- 1979
|
|
52
|
A programmer’s reduction semantics for classes and mixins. Formal syntax and semantics of Java, pp. 241–269. (Preliminary version appeared in proceedings of Principles of Programming Languages
– Flatt, Krishnamurthi, et al.
- 1999
|
|
50
|
Jam – a smooth extension of Java with mixins
– Ancona, Lagorio, et al.
- 2000
|
|
44
|
Foundations of constructive mathematics. Metamathematical studies, volume 6 of Ergebnisse der Mathematik und ihrer Grenzgebiete
– Beeson
- 1985
|
|
44
|
1979], Identity and existence in intuitionistic logic
– Scott
|
|
37
|
Recursion-Theoretic Hierarchies
– Hinman
- 1978
|
|
28
|
Is the Java Type System Sound?. Theory and Practice of Object Systems
– Drossopoulou, Khurshid, et al.
- 1999
|
|
27
|
Domains and denotational semantics: History, accomplishments and open problems
– Fiore, Jung, et al.
- 1996
|
|
26
|
Polymorphic typed lambda-calculi in a type-free axiomatic framework
– Feferman
- 1990
|
|
24
|
Logics for termination and correctness of functional programs
– Feferman
- 1992
|
|
24
|
Constructive Foundations for Functional Languages
– Turner
- 1991
|
|
22
|
On inner classes
– Igarashi, Pierce
|
|
20
|
An event-based structural operational semantics of multi-threaded Java
– Cenciarelli, Knapp, et al.
- 1999
|
|
13
|
Proving programs and programming proofs
– Beeson
- 1986
|
|
12
|
A little Java, a few patterns
– Felleisen, Friedman
- 1998
|
|
12
|
Induction in the elementary theory of types and names
– Jäger
- 1988
|
|
10
|
Why the constant ‘undefined’? Logics of partial terms for strict and non-strict functional programming languages
– Stärk
- 1998
|
|
9
|
Object-Oriented Programming: A Unified Foundation. Birkhäuser
– Castagna
- 1997
|
|
9
|
Weak theories of operations and types
– Turner
- 1996
|
|
8
|
Call-by-value, call-by-name and the logic of values
– Stärk
- 1997
|
|
7
|
A semantics for λ {} str: a calculus with overloading and late-binding
– Studer
|
|
6
|
von Oheimb. Javaℓight is type-safe — definitely
– Nipkow, David
- 1998
|
|
5
|
A semantics for λ&-early: A calculus with overloading and early binding
– Castagna, Ghelli, et al.
- 1993
|
|
5
|
A static type system for late binding overloading
– Ghelli
- 1991
|
|
4
|
Type theory and explicit mathematics
– Jäger
- 1989
|
|
4
|
Einbettung des Beweissystems Lambda in eine Theorie von Operationen und Zahlen
– Kahle
- 1992
|
|
4
|
Impredicative overloading in explicit mathematics
– Studer
|
|
4
|
Realizability for Constructive Theory of Functions and Classes and Its Application to Program Synthesis
– Tatsuta
- 1998
|
|
2
|
Alves-Foss and Fong Shing Lam. Dynamic denotational semantics of Java
– Jim
- 1999
|
|
2
|
A module calculus for Featherweight Java
– Ancona, Zucca
|
|
2
|
Formalizing non-termination of recursive programs
– Kahle, Studer
|
|
2
|
Axiomatic semantics for Javaℓight
– Oheimb
- 2000
|
|
1
|
Dependent choice in explicit mathematics. Diploma thesis, Institut für Informatik und angewandte Mathematik
– Probst
- 1999
|