From 4d186e6b2b32a9e9769adcec28de0ff76d09af84 Mon Sep 17 00:00:00 2001 From: Yiyun Liu Date: Mon, 26 May 2025 01:01:59 -0400 Subject: [PATCH] Add the compilation function --- semantics.rkt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/semantics.rkt b/semantics.rkt index 5712e5d..a05eeeb 100644 --- a/semantics.rkt +++ b/semantics.rkt @@ -22,11 +22,14 @@ (define (new-addr) (gensym)) -(: initial-dump Dump) -(define initial-dump '()) +(: empty-dump Dump) +(define empty-dump '()) -(: initial-stats Stats) -(define initial-stats 0) +(: empty-stats Stats) +(define empty-stats 0) + +(: empty-stack Stack) +(define empty-stack '()) (: incr-stats (-> Stats Stats)) (define incr-stats add1) @@ -52,3 +55,8 @@ (let-values ([(new-heap addr) (allocate-node heap sc)]) (values new-heap (update-globals globals (scdefn-name sc) addr))))) + +(: compile-core (-> (Listof CoreScDefn) State)) +(define (compile-core scdefs) + (let-values ([(heap globals) (initialize-heap scdefs)]) + (State empty-stack empty-dump heap globals empty-stats)))