GoDDS - Graph of Distributed Data Structures
Jump to navigation
Jump to search
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
| Paradigm(s) | Imperative |
|---|---|
| Designed by | Proman, Herdran |
| Appeared in | 2023 |
| Computational class | Turing complete |
| Major implementations | Java, ANTLRv4 |
| File extension(s) | .godds |
This page does not contain the documentation, it can be found on the GitHub repository, here.
Code snippets: link.
The grammar written in ANTLRv4: link.
FizzBuzz implementation
#CELLS_COUNT 6
#CELLS_GRAPH
011101
010110
001110
100010
000000
100000
#END
#INPUT 100
#INPUT_CELLS 0
#CELL 0 Counter
READ_BUS
//COPY
SWAP
LABEL main
ADD 1
//PRINTNL R0 0
WRITE_CELL CheckFizz
WRITE_CELL CheckBuzz
SWAP
WRITE_CELL AdditionalMemory
READ_CELL Printer
IFEZ print_number
LABEL continue
READ_CELL AdditionalMemory
SWAP
SUB R1
IFEZ $
ADD R1
JUMP main
LABEL print_number
SWAP
PRINTNL R0 0
SWAP
JUMP continue
TERMINATE
#END
#CELL 1 CheckFizz %Daemon
READ_CELL Counter
JUMP Helpers@check_divisibility_by_three
IFEZ set_true
SET R0 0
LABEL send_to_printer
WRITE_CELL Printer
JUMP ^
LABEL set_true
SET R0 2
JUMP send_to_printer
#END
#CELL 2 CheckBuzz %Daemon
READ_CELL Counter
JUMP Helpers@check_divisibility_by_five
IFEZ set_true
SET R0 0
LABEL send_to_printer
WRITE_CELL Printer
JUMP ^
LABEL set_true
SET R0 1
JUMP send_to_printer
#END
#CELL 3 Printer %Daemon
READ_CELL CheckFizz
SWAP
READ_CELL CheckBuzz
ADD R1
SUB 3
IFEZ Helpers@print_fizz
IFEZ Helpers@print_buzz
IFEZ Helpers@print_newline
ADD 3
SUB 2
IFEZ Helpers@print_fizz
IFEZ Helpers@print_newline
ADD 2
SUB 1
IFEZ Helpers@print_buzz
IFEZ Helpers@print_newline
ADD 1
WRITE_CELL Counter // call print_number if needed
JUMP ^
#END
#CELL 4 Helpers %Inactive
// this cell is just a labels holder
LABEL check_divisibility_by_three
MOD 3
IFEZ set_true
EXIT
LABEL check_divisibility_by_five
MOD 5
IFEZ set_true
EXIT
LABEL set_true
SET R0 0
EXIT
LABEL set_false
SET R0 -1
EXIT
LABEL print_fizz
PRINT Fizz 0
EXIT
LABEL print_buzz
PRINT Buzz 0
EXIT
LABEL print_newline
PRINTNL 0
#END
#CELL 5 AdditionalMemory %Daemon
READ_CELL Counter
WRITE_CELL Counter
JUMP ^
#END
#END_ALL