Last change
on this file since 2956 was
2946,
checked in by tranquil, 8 years ago
|
main novelties:
- there is an in-built stack_usage nat in joint states, at the base of the new division of RTL's semantics (with separate stacks, with separate stacks but with an artificial overflow error, with a unique stack)
- a premain is added semantically to the global env, so initial cost label and main call and return are observed
- proper initialization is now in LINToASM (to be sure, endianess should be checked ;-)
The update breaks proofs of back end atm. compiler.ma should be okay, but I have not had time to complete its compilation.
|
File size:
1.8 KB
|
Line | |
---|
1 | (**************************************************************************) |
---|
2 | (* ___ *) |
---|
3 | (* ||M|| *) |
---|
4 | (* ||A|| A project by Andrea Asperti *) |
---|
5 | (* ||T|| *) |
---|
6 | (* ||I|| Developers: *) |
---|
7 | (* ||T|| The HELM team. *) |
---|
8 | (* ||A|| http://helm.cs.unibo.it *) |
---|
9 | (* \ / *) |
---|
10 | (* \ / This file is distributed under the terms of the *) |
---|
11 | (* v GNU General Public License Version 2 *) |
---|
12 | (* *) |
---|
13 | (**************************************************************************) |
---|
14 | |
---|
15 | include "LIN/LINToASM.ma". |
---|
16 | include "LIN/LIN_semantics.ma". |
---|
17 | include "joint/Traces.ma". |
---|
18 | include "common/StatusSimulation.ma". |
---|
19 | |
---|
20 | (* atm ASM_abstract_status is related to object code, not ASM... *) |
---|
21 | axiom ASM_status : pseudo_assembly_program → abstract_status. |
---|
22 | axiom make_ASM_initial_state : ∀p.res (ASM_status p). |
---|
23 | |
---|
24 | axiom LINToASM_ok : |
---|
25 | ∀stacksizes : ident → option ℕ. (* are hypotheses needed here? *) |
---|
26 | ∀p_in : joint_program LIN. |
---|
27 | ∀p_out : pseudo_assembly_program. |
---|
28 | lin_to_asm p_in = Some ? p_out → |
---|
29 | ∃[1] R. |
---|
30 | status_simulation |
---|
31 | (joint_status LIN_semantics p_in stacksizes) |
---|
32 | (ASM_status p_out) |
---|
33 | R ∧ |
---|
34 | ∀init_in.make_initial_state |
---|
35 | (mk_prog_params LIN_semantics p_in stacksizes) = OK … init_in → |
---|
36 | ∃init_out. |
---|
37 | make_ASM_initial_state p_out = |
---|
38 | OK ? init_out ∧ |
---|
39 | R init_in init_out. |
---|
Note: See
TracBrowser
for help on using the repository browser.