| author | wenzelm | 
| Tue, 03 Jul 2007 17:17:04 +0200 | |
| changeset 23530 | 438c5d2db482 | 
| parent 16417 | 9bc16273c2d4 | 
| child 24783 | 5a3e336a2e37 | 
| permissions | -rw-r--r-- | 
| 11026 
a50365d21144
converted to Isar, simplifying recursion on class hierarchy
 oheimb parents: 
10061diff
changeset | 1 | (* Title: HOL/MicroJava/J/Value.thy | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 2 | ID: $Id$ | 
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 3 | Author: David von Oheimb | 
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 4 | Copyright 1999 Technische Universitaet Muenchen | 
| 11070 | 5 | *) | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 6 | |
| 12911 | 7 | header {* \isaheader{Java Values} *}
 | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 8 | |
| 16417 | 9 | theory Value imports Type begin | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 10 | |
| 12517 | 11 | typedecl loc_ -- "locations, i.e. abstract references on objects" | 
| 12 | ||
| 13 | datatype loc | |
| 14 | = XcptRef xcpt -- "special locations for pre-allocated system exceptions" | |
| 15 | | Loc loc_ -- "usual locations (references on objects)" | |
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 16 | |
| 11026 
a50365d21144
converted to Isar, simplifying recursion on class hierarchy
 oheimb parents: 
10061diff
changeset | 17 | datatype val | 
| 12517 | 18 | = Unit -- "dummy result value of void methods" | 
| 19 | | Null -- "null reference" | |
| 20 | | Bool bool -- "Boolean value" | |
| 21 | | Intg int -- "integer value, name Intg instead of Int because | |
| 22 | of clash with HOL/Set.thy" | |
| 23 | | Addr loc -- "addresses, i.e. locations of objects " | |
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 24 | |
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 25 | consts | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 26 | the_Bool :: "val => bool" | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 27 | the_Intg :: "val => int" | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 28 | the_Addr :: "val => loc" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 29 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 30 | primrec | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 31 | "the_Bool (Bool b) = b" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 32 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 33 | primrec | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 34 | "the_Intg (Intg i) = i" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 35 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 36 | primrec | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 37 | "the_Addr (Addr a) = a" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 38 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 39 | consts | 
| 12517 | 40 | defpval :: "prim_ty => val" -- "default value for primitive types" | 
| 41 | default_val :: "ty => val" -- "default value for all types" | |
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 42 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 43 | primrec | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 44 | "defpval Void = Unit" | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 45 | "defpval Boolean = Bool False" | 
| 11908 | 46 | "defpval Integer = Intg 0" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 47 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 48 | primrec | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 49 | "default_val (PrimT pt) = defpval pt" | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 50 | "default_val (RefT r ) = Null" | 
| 9346 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 51 | |
| 
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
 oheimb parents: diff
changeset | 52 | end |