| "exec (P, None, h, (stk,loc,C,M,pc)#frs) = (let i = instrs_of P C M ! pc; (xcpt', h', frs') = exec_instr i P h stk loc C M pc frs in Some(case xcpt' of None ==> (None,h',frs') | Some a ==> find_handler P a h ((stk,loc,C,M,pc)#frs)))"
| "exec (P, Some xa, h, frs) = None"
― ‹relational view› inductive_set
exec_1 :: "jvm_prog ==> (jvm_state × jvm_state) set" and exec_1' :: "jvm_prog ==> jvm_state ==> jvm_state ==> bool"
(‹_ ⊨/ _ -jvm→1/ _› [61,61,61] 60) for P :: jvm_prog where "P ⊨ σ -jvm→1 σ' ≡ (σ,σ') ∈ exec_1 P"
| exec_1I: "exec (P,σ) = Some σ' ==> P ⊨ σ -jvm→1 σ'"
lemma exec_all_deterministic: "[ P ⊨ σ -jvm→ (x,h,[]); P ⊨ σ -jvm→ σ' ]==> P ⊨ σ' -jvm→ (x,h,[])" (*<*) proof - assume assms: "P ⊨ σ -jvm→ (x,h,[])""P ⊨ σ -jvm→ σ'" show ?thesis using exec_all_conf[OF assms] by(blast dest!: exec_all_finalD) qed (*>*)
text‹
The start configuration of the JVM: in the start heap, we call a
method ‹m› of class ‹C› in program ‹P›. The ‹this› pointer of the frame is set to ‹Null› to simulate
a static method invokation. › definition start_state :: "jvm_prog ==> cname ==> mname ==> jvm_state"where "start_state P C M = (let (D,Ts,T,mxs,mxl0,b) = method P C M in (None, start_heap P, [([], Null # replicate mxl0 undefined, C, M, 0)]))"
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.