From 5a0e57601a9489d9f56602e0184e722c85ffc310 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 7 Nov 2023 16:29:52 +0200 Subject: WIP tree walking compiler --- high-level-lang-idea.perl | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 high-level-lang-idea.perl (limited to 'high-level-lang-idea.perl') diff --git a/high-level-lang-idea.perl b/high-level-lang-idea.perl deleted file mode 100644 index 426cae8..0000000 --- a/high-level-lang-idea.perl +++ /dev/null @@ -1,36 +0,0 @@ -# Builtin types: -# u8, u16, i8, i16, block[T], void - -# allocate 16 words, returning block -# a block is similar to a C pointer but contains the allocated size as well -decl v :: block[u16] = alloc-words 16 - -# define a fn that zeroes a block of memory -decl zero-block :: block[u16] -> void -func zero-block block - # for each address in block - for-addr addr block - # store the value 0 in memory at address addr - store addr 0 - -# call fn zero-block in inlined mode -zero-block% v - -# compute first 16 fibonacci numbers -decl a :: u16 = 0 -decl b :: u16 = 1 -for-index idx block - # declarations in loop constructs are hoisted - decl addr :: u16 = addr-at idx block - decl v :: u16 - - if idx == 0 - v = a - else if idx == 1 - v = b - else - v = a + b - - store addr v - a = b - b = v -- cgit v1.3