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