src/HOL/NanoJava/document/root.bib
author oheimb
Thu, 09 Aug 2001 20:48:57 +0200
changeset 11497 0e66e0114d9a
parent 11376 bf98ad1c22c6
child 11507 4b32a46ffd29
permissions -rw-r--r--
corrected initialization of locals, streamlined Impl
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11376
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     1
@inproceedings{NipkowOP00,
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     2
        author={Tobias Nipkow and Oheimb, David von and Cornelia Pusch},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     3
        title={{$\mu$Java}: Embedding a Programming Language in a Theorem Prover},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     4
        booktitle = {Foundations of Secure Computation},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     5
        series= {NATO Science Series F: Computer and Systems Sciences},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     6
        volume = {175},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     7
        year = {2000},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     8
        publisher = {IOS Press},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
     9
        editor = {Friedrich L. Bauer and Ralf Steinbr{\"u}ggen},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    10
        abstract = {This paper introduces the subset $micro$Java of Java,
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    11
essentially by omitting everything but classes.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    12
The type system and semantics of this language
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    13
(and a corresponding abstract Machine $micro$JVM)
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    14
are formalized in the theorem prover Isabelle/HOL.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    15
Type safety both of $micro$Java and the $micro$JVM
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    16
are mechanically verified.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    17
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    18
To make the paper self-contained, it starts with
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    19
introductions to Isabelle/HOL and the art of
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    20
embedding languages in theorem provers.},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    21
        CRClassification = {D.3.1, F.3.2},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    22
        CRGenTerms = {Languages, Reliability, Theory, Verification},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    23
        url = {\url{http://isabelle.in.tum.de/Bali/papers/MOD99.html}},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    24
        pages = {117--144}
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    25
}
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    26
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    27
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    28
@article{DvO-CPE01,
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    29
        author = {David von Oheimb},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    30
        title = {Hoare Logic for {J}ava in {Isabelle/HOL}},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    31
        journal = {Concurrency: Practice and Experience},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    32
        year = {2001},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    33
        url = {http://www4.in.tum.de/papers/DvO-CPE01.html},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    34
        abstract = {
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    35
This article presents a Hoare-style calculus for a substantial subset 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    36
of Java Card, which we call Java_light. In particular, the language 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    37
includes side-effecting expressions, mutual recursion, dynamic method 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    38
binding, full exception handling, and static class initialization.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    39
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    40
The Hoare logic of partial correctness is proved not only sound (w.r.t.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    41
our operational semantics of Java_light, described in detail elsewhere)
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    42
but even complete. It is the first logic for an object-oriented 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    43
language that is provably complete.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    44
The completeness proof uses a refinement of the Most General Formula 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    45
approach. The proof of soundness gives new insights into the role of 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    46
type safety. Further by-products of this work are a new general 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    47
methodology for handling side-effecting expressions and their results, 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    48
the discovery of the strongest possible rule of consequence, and a 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    49
flexible Call rule for mutual recursion. 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    50
We also give a small but non-trivial application example.
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    51
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    52
All definitions and proofs have been done formally with the interactive 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    53
theorem prover Isabelle/HOL. This guarantees not only rigorous definitions, 
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    54
but also gives maximal confidence in the results obtained.},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    55
        CRClassification = {D.2.4, D.3.1, F.3.1},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    56
        CRGenTerms = {Languages, Verification, Theory},
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    57
        note = {\url{http://isabelle.in.tum.de/Bali/papers/CPE01.html}, to appear}
bf98ad1c22c6 added NanoJava
oheimb
parents:
diff changeset
    58
}