Q3VM – Lightweight, embeddable Quake III Interpreter/Virtual Machine
github.com
github.com
It's worth mentioning that the Q3VM was the entry point to many of the exploits created for Q3, just something to bear in mind.
* Sandbox for code you don't fully trust (e.g. download the bytecode from a web server)
* Mods for small hobby game engines
* There are many virtual machines, but not many are so small, with strong typing and no garbage collector
* Learn about virtual machines in general, but directly have a C compiler available for the virtual machine
* Sandbox for embedded applications, e.g. plug-ins for IoT applications on microcontrollers (bounded CPU time, bounded memory area, restrict access to peripheral devices)
* There is also a historical value: learn about the Quake III engine
This is incorrect. Wikipedia specifies C’s typing discipline as “static, weak, manifest, nominal”, which isn’t great, but is at least in the right ballpark. “Strong” and “weak” are unhelpfully overloaded words.
http://blogs.perl.org/users/ovid/2010/08/what-to-know-before...
They get something a little less hairy and volatile to work with, and execution speed isn’t that critical because you’re only making hundreds or thousands of decisions per second.
The link in the sibling post has most everything you'd ever want to know about it.
In the case of world of Warcraft, the Lua interpreter allowed for a rich ecosystem of UI (and light behavioral) addons. In some cases very popular addons features were added into the core UI in later updates.
I find that arrangement pretty compelling. In the few cases where I’ve worked on or with a team with addon support I bring this up: use the community sourced features as a popular vote for what to incorporate (just be sure to reward the author somehow).