From c37d2cd75c855d0932a93cd8fdadd1db00b05e48 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Thu, 15 Feb 2024 21:00:00 -0800 Subject: [PATCH] (brainfuck.tal) Optimizations --- projects/examples/exercises/brainfuck.tal | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/projects/examples/exercises/brainfuck.tal b/projects/examples/exercises/brainfuck.tal index 57849bc..4e4fa74 100644 --- a/projects/examples/exercises/brainfuck.tal +++ b/projects/examples/exercises/brainfuck.tal @@ -19,20 +19,20 @@ BRK @ ( -- ) - ;on-console/ptr LDA2 ;program + [ LIT2r =on-console/ptr ] LDA2r ;program &while ( -- ) - LDAk [ LIT "+ ] NEQ ?{ OVR2 STH2k LDA INC STH2r STA } - LDAk [ LIT "- ] NEQ ?{ OVR2 STH2k LDA #01 SUB STH2r STA } - LDAk [ LIT "> ] NEQ ?{ SWP2 INC2 SWP2 } - LDAk [ LIT "< ] NEQ ?{ SWP2 #0001 SUB2 SWP2 } - LDAk [ LIT ". ] NEQ ?{ OVR2 LDA #18 DEO } + LDAk [ LIT "+ ] NEQ ?{ LDAkr STHr INC STH2kr STA } + LDAk [ LIT "- ] NEQ ?{ LDAkr STHr #01 SUB STH2kr STA } + LDAk [ LIT "> ] NEQ ?{ INC2r } + LDAk [ LIT "< ] NEQ ?{ [ LIT2r 0001 ] SUB2r } + LDAk [ LIT ". ] NEQ ?{ LDAkr [ LITr 18 ] DEOr } LDAk [ LIT "[ ] NEQ ?{ goto-next } LDAk [ LIT "] ] NEQ ?{ goto-back } INC2 LDAk ?&while - POP2 JMP2r + POP2 POP2r JMP2r -@goto-next ( mem* prg* -- ) - OVR2 LDA ?{ JMP2r } +@goto-next ( `mem* prg* -- ) + OVR2r LDAr STHr ?{ JMP2r } [ LITr 00 ] INC2 &loop ( -- ) LDAk [ LIT "[ ] NEQ ?{ INCr } @@ -41,8 +41,8 @@ [ LITr 01 ] SUBr } INC2 !&loop -@goto-back ( mem* prg* -- ) - OVR2 LDA ?{ JMP2r } +@goto-back ( `mem* prg* -- ) + OVR2r LDAr STHr ?{ JMP2r } [ LITr 00 ] #0001 SUB2 &loop ( -- ) LDAk [ LIT "] ] NEQ ?{ INCr }