Go Down

Topic: An interpreted language for Arduino (Read 7850 times) previous topic - next topic


I have built an interpreted language for Arduino. The language resembles to Arduino language. You can check how the program is running and pin values visually. You can use the visualizing utility without interpreted language too.

Please check following URL,


Looks interesting and may be good for beginners to try out simple constructs.

Saving too many times to EEPROM will eventually cause a problem but not for a long time.

How do you edit an existing program?

Rob Gray aka the GRAYnomad www.robgray.com


Jun 10, 2012, 01:07 am Last Edit: Jun 10, 2012, 01:14 am by mnoriaki Reason: 1
Thank you for your comment.

The program is stored in RAM. It does not use EEPROM unless you request to save it in EEPROM by ``save'' command. The program in EEPROM is read into RAM at start-up. 

If you use the terminal, you can edit your program in the editor and replace the program by clicking ``prog'' button. You can read your program in RAM by ``Read from Arduino'' button.

If you use a serial terminal, the ``prog'' command replace the whole program in the RAM and you can replace a line with the ``edit'' command. For example you can replace line 2 by ``edit 2'' command.

// Noriaki Mitsunaga


I get it. I won't be using this myself but as I said if done well I can see it being useful for beginners to try small programs and experiment with the various C constructs, especially if you provide better error reporting than C usually does.

Rob Gray aka the GRAYnomad www.robgray.com



Jun 16, 2012, 12:41 am Last Edit: Jun 16, 2012, 01:00 am by pito Reason: 1
interesting! Imagine I have an external ram connected (a ram of "any kind" and "any size") accessible via two C functions:

exram_write( unsigned int32 address, char data)

char exram_read( unsigned int32 address)

Would it be possible to modify the interpreter in such way that we may run the code (the interpreted language) from the external ram?


Currently the program is stored in RAM, e.g. char iArduinoProgBuf[600]; and current pointer is handled by char *prog. So I think it's possible if you carefully change *prog to exram_read(addr) and "prog ++" to addr ++ etc.

// Noriaki Mitsuanga


Worth of try! With an external SPI sram/fram/mram you may store hundreds of kilobytes of the program code and "execute" it. It will run slower, but you may run programs virtualy "unlimited" in size   :)

Go Up