Science Zero
[ Science ] [ Electronics ] [ Experiments ] [ Computing ] [ About us ] [ Links ]

 

Matrix

This is a stack based language with a two-dimensional program pointer. It has no practical purpose except for making you think. It was made for exploring the feasability of constructing a two-dimensional microcontroller. The concept of two-dimensional programs fits well with the human mind but seems to have no real benefits for a CPU. This project may surface again as a two-dimensional compiler. It uses Reverse Polish Notation.

Using reverse Polish notation makes it possible to make a language that is almost syntax free as opposed to the syntax quagmire of C++.

Interpreter and some samples: matrix2.zip (1.9MB)

 

Command Reference

Program flow

 

 

> right
v down
< left
^ up
# compare - low=left, high=right, equal=straight on
¤ set Program Counter stride
jmp set Program Counter
: call function
; return from function
@ stop
Data Matrix

 

u up
d down
l left
r right
x memory x position = integer
y memory y position = integer
?d integer = data Matrix
!d data Matrix = integer
String Stack Operations +" join
len integer = length of string
mid string = char N
msg message box string
val integer = string
val. float = string
dup" duplicate
del" delete
swp" swap
?" peek string stack
!" poke string stack
Real Stack Operations +. addition
-. subtraction
*. multiplication
/. division
sqrt. square root
str. string = float
and. and
or. or
eor. eor
dup. duplicate
del. delete
swp. swap
?. peek float stack
!. poke float stack
Integer Stack Operations

 

 

 

 

 

 

 

 

 

 

 

 

+ addition
- subtraction
* multiplication
/ division
sqrt square root
and and
or or
eor eor
int integer = float
str string = integer
chr string char = integer
del delete
dup duplicate
swp swap
? peek integer stack
! poke integer stack