Skip to content

marius-klimantavicius/pinta

Repository files navigation

This is a ECMAScript like language parser/compiler and a corresponding virtual machine/execution engine.

The execution engine was created for embedded devices with the following requirements:

  1. Must not allocate dynamic memory - VM only uses the provided memory region and some static memory. malloc and similar functions are not permitted in the core engine.
  2. The executed scripts must be memory safe - no out of bounds errors, cannot read native memory.
  3. Must not use setjmp/longjmp for anything (including error/exception handling).
  4. Must support decimal based real numbers (implemented as fixed point numbers).
  5. Must have minimal support for string based operations (substring, concatenation, indexing, comparisons).
  6. Must have minimal support for binary data.
  7. Output of a script is either binary blob or text string.
  8. Script is compiled to a binary representation to limit size.
  9. It should be cross platform (it is being used in ARM devices).

Currently it is used by incorporating core files directly into the project (both for execution engine and parser/compiler).

Code from the following projects were used:

Debugger is not usable (partly due to bugs in webby, partly due to lack of features and time).

About

Virtual machine for ECMAScript like language

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published