A tiny high-level language runtime for embedded computing with the power of C and the extensibility of Forth or LISP.

Spread the love


We are delighted to announce the successful completion of a tiny footprint high-level computing language for high-speed, low-power, embedded computing on bare silicon (no BIOS, no OS). In terms of size, cost, and carbon footprint, the kernel clocks in at 730 bytes which includes a fully extensible runtime kernel providing DSL (domain specific language) capability for application specific computing.

What has been achieved:

  1. 372 byte machine coded kernel (bytes, not KB). This is small enough to fit into the smallest ROMs, while still leaving plenty of space for application RAM.1
  2. A further 358 bytes comprise bootstrapped runtime instructions written in the language itself, and data organized in jump-tables for efficient threaded execution.
  3. 40 kernel level instructions provide the granular control of C for application code (bit-level, structured conditionals).
  4. Compressed application code runs through a threaded design providing high speed code execution (as fast or faster than C) using native code.
  5. The core kernel provides a codestream reader that provides Domain specific language (DSL) capability to allow first class language expansion with the full capability of a Forth or a Lisp. This means expanded instructions have the same first-class attributes as the core kernel instructions.
  6. Language is based on a simple stack-based virtual machine universal architecture onto which any chip can be mapped.
  7. Portability between chips is achieved through a light-weight mapping layer to kernel instructions without requiring any other layer. Mapping kernel instructions between chips and adapting the kernel code is all that is required to port to a new chip.
  8. Any machine specific capabilities in a new chip can easily wrapped as a language extension, providing first class native code for high speed integration of full chip capabilities.
  9. Lightweight development stack (open source) with compiler/assembler/debugger for cross-compilation.
  10. Proof of concept designs with Arduino (Atmel 328), ATTiny85, and x86 chips.
  11. User/Programmer interface is via live serial link, via keyboard/screen, or via binary ROM/RAM load.

More details to follow.


Recommended Reading:

  1. The sacred and the profane: low-level software engineering and the search for simplicity in the hardware-software combination
  2. TinyPhoto: Embedded Graphics and Low-Fat Computing – using the Atmel ATtiny85 and an early version of the tiny toolchain above.
  3. Knowledge Engineering & Emerging Technologies (2005-2015)*
  4. Sensors and Systems: Integrating Sensors into the Ubiquitous Computing Stack
  5. Programming in a ‘Problem-Oriented (Domain Specific) Language’: Forth, Lisp, and Ruby.
  6. Demystifying the Assembly Language Toolchain: DOS-DEBUG, NASM (Netwide Assembler), TCC (Tiny C Compiler), and Forth
  7. Microcontrollers, Sensors, and Embedded Systems: Low-Cost Experimenting with Arduino
  8. Programming Low-Power, Low-Cost Microcontrollers – Atmel, Arduino, ATtiny – A Homebrew Toolchain including a 3-instruction Forth
  9. Voice Controlled Hardware and the Human-Sensor Interface

Footnotes:

  1. To put the small size into context, a block of code used to be 4096 bytes (4K), or about 6 pages of binary when viewed on an 80×40 screen in standard 16 bytes per row format. This about 20% of the size of a block, and is viewable in binary in just over 1 page (45 lines).

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Your comments are valued! (Please indulge the gatekeeping question as spam-bots cannot (yet) do simple arithmetic...) - required

Optionally add an image (JPEG only)

 

Stats: 1,089,379 article views since 2010 (Aug '24 update)

Dear Readers:

Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

Reading List…

Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

Mathematics History & Philosophy

  1. What is Mathematics?
  2. Prehistoric Origins of Mathematics
  3. The Mathematics of Uruk & Susa (3500-3000 BCE)
  4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
  5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
  6. Mathematical Finance and The Rise of the Modern Financial Marketplace
  7. A Course in the Philosophy and Foundations of Mathematics
  8. The Development of Mathematics
  9. Catalysts in the Development of Mathematics
  10. Characteristics of Modern Mathematics

Topics in Mathematics: Pure & Applied Mathematics

  1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
  2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
  3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
  4. The Mathematics of Duelling
  5. A Radar Tracking Approach to Data Mining
  6. Analysis of Visitor Statistics: Data Mining in-the-Small
  7. Why Zero Raised to the Zero Power IS One

Technology: Electronics & Embedded Computing

  1. Electronics in the Junior School - Gateway to Technology
  2. Coding for Pre-Schoolers - A Turtle Logo in Forth
  3. Experimenting with Microcontrollers - an Arduino development kit for under £12
  4. Making Sensors Talk for under £5, and Voice Controlled Hardware
  5. Computer Programming: A brief survey from the 1940s to the present
  6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
  7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
  8. Building a 13-key pure analog electronic piano.
  9. TinyPhoto: Embedded Graphics and Low-Fat Computing
  10. Computing / Software Toolkits
  11. Assembly Language programming (Part 1 | Part 2 | Part 3)
  12. Bare Bones Programming: The C Language

Technology: Sensors & Intelligent Systems

  1. Knowledge Engineering & the Emerging Technologies of the Next Decade
  2. Sensors and Systems
  3. Unmanned Autonomous Systems & Networks of Sensors
  4. The Advance of Marine Micro-ROVs

Maths Education

  1. Maxima: A Computer Algebra System for Advanced Mathematics & Physics
  2. Teaching Enriched Mathematics, Part 1
  3. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
  4. A Course in the Philosophy and Foundations of Mathematics
  5. Logic, Proof, and Professional Communication: five reflections
  6. Good mathematical technique and the case for mathematical insight

Explore…

Timeline