The MicroBlocks blocks-based programming system (IDE) is implemented in GP.
The system includes a compiler that translates user scripts into a sequence of MicroBlocks opcodes and a code manager that downloads scripts to the board, starts and stops scripts, and keeps track of the running status of scripts so it can display graphical feedback (e.g. glowing borders around the scripts that are running).
In "show advanced blocks" mode, the IDE can also show the instruction list and instruction bytes generated by the compiler, allowing advanced users to see how their scripts get turned into code for the virtual machine.
Since the Virtual Machine is independent from the IDE, and since there's already a communication protocol in place, one could imagine other programming systems for MicroBlocks, perhaps some that use a textual code representation rather than blocks. Such systems would sipmly translate their own block or textual language into MicroBlocks virtual machine instructions and send it the the board using the serial protocol. Although implementing and supporting a complete programming system is a large undertaking, a subset of features (e.g. compiler and download protocol) might be implemented by students in hands-on course on interpreted language implementation.