Hello!

Since a long time I thought about a programming language that is compiled but still runs on the low-spec platforms such as the Arduinos, low-end ARM processors, PCs and of course graphical calculators!
Claw features a high-level language and an assembly language (the later can be developed on the platforms themselves and will be written in Claw) and offers support for huge files without the need of loading them into RAM. The platform independant bytecode which gets streamed and is never fully loaded into memory can be loaded from various sources including EEPROMs, Flash memory, SD cards, RAM and other sources (you will have to implement them yourself in your implementation of Claw). I am working on the mother of all Claw virtual machines which is written in plain ANSI C and can be extended and adapted to many platforms. It has an easy to use configuration file that allows configuring speed and memory footprint of the Claw VM. Gernally RAM use is kept as low as possible (which makes programming slightly harder at times) and has some effect on speed.
Claw normally uses two stacks internally, of one being a numeric stack and the other one being an array stack. Both can be sized independantly of each other and to any size preferred.
Arrays can be 8u or 16 bit (by default) and numbers are 16 bit signed values. All these can be changed in the types configuration to match your architecture (by default Claw only uses 8 and 16 bit values but it can be set to use 32 or 64 bit ones too).
The main idea behind Claw is to allow platforms without support for executing files from RAM or flash to load and execute binaries of any size from an external (or internal not normally supported) source but will also make cross-platfrom developing a lot easier. Screen sizes and features will of course be a problem that needs to be solved and games might need to accomodate for mutiple graphics sizes, but games will always run on their "home" platform and platforms with larger screens (more RAM and faster CPUs), like PCs.
Claw will support static and even dynamic linking on platforms with a file system.

The project is licensed under the terms of the New, 3-clause BSD license.
Any help is greatly appreciated!

Update:
Size wise, I estimate the core to be about 50 KB when completed and compiled with a settings enabled on the AVR platform. I plan on making a separate TI-83 a TI-84+ version in Axe unless Cumred_Snektron will make one in Assembler. I have already implemented all math, logic and most stack and array pool functions of the C version over the course of the last days.
The CPU is still not yet implemented.
So, what have you made so far?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement