A bytecode VM and toy language, in PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
docs
examples
src
tests
.gitignore
.travis.yml
LICENSE
README.md
composer.json
mkdocs.yml
phpunit.xml

README.md

Tacit

Build Status Code Coverage Scrutinizer Code Quality

Tacit is:

  • VM: A bytecode VM, with basic stack, memory management and interpreter
  • Tac: A toy language similar in style to Assembly that comes with a lexer and compiler

Implementing a VM (and indeed a language) in PHP is silly, it's slow and limited. However, Tacit might have a purpose; for example as an educational tool.

Tacit was built with the aim of being a safe, sandboxed scripting VM for a PHP-based game. Yes, a ridiculous notion but one that works surprisingly well for simple applications.

Get Started

  • Clone the Repository
  • Browse the examples folder
  • Try an example:
bin/tacit examples/simple.tac

Future

The aim is for Tacit to expand to be more featureful, on the list is:

  • Adding registers to the VM
  • Expanding the Tac language with more complex commands
  • The addition of a higher-level scripting language (& compiler) similar to Ruby/Python

More