411 REFERENCE · Wikibooks
Scratch Virtual Machine/Features
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
At first glance, Scratch is a simple visual block-based programming language. However, one may not realize the wide range of features Scratch supports, and thus what a conforming virtual machine running Scratch should also support.
A fully functional Scratch environment can:
Execute scripts
Retain and operate on information in a runtime
Render and manipulate multiple raster and vector images on a screen (officially at least 30 times per second)
Play and manipulate several sounds simultaneously (supporting stereo audio)
Receive input from a microphone
Access the current date to the millisecond (independent of time zone)
Detect the user's Scratch username (if they are logged in)
Connect to external servers over the Internet (for cloud variables, text to speech, translation, etc., or otherwise achieve these functions in a local way)
Interact with supported hardware devices over Bluetooth via Scratch Link protocols
Despite all of this functionality, the official behavior of Scratch is largely determined by the Scratch 3.0 Virtual Machine. This is somewhat reversed from other programming languages where the virtual machine is made to conform to the language. Later chapters explain how the Scratch 3.0 Virtual Machine implements Scratch, so that it may theoretically be faithfully reimplemented elsewhere from this very book!
References