53
One interesting find during my search for educational codebases: the Mini JVM, which originates from an educational institution: the Software Engineering research group at University of Tübingen.
Interesting terminology question: they use the wording "didactial implementation" and "educational implementation" interchangeably. Is everything that is educational also didactical? Not so sure.
Anyway, this is also interesting, because the approach could be contrasted and compared with the Jacobin JVM implementation, that I've mentioned before, which also has educational goals, but slightly different ones: being a "more-than-minimal implementation". The Mini-JVM does not aim at completeness, but the much smaller sizes makes it easier to grasp and thereby forsters understanding of broad principles, as well enables adding exercises in extending the code, whereas the Jacobin JVM is already fairly complete more a demonstration of how production code could look like.
Also a the Mini JVM is a nice practical example of Turing-completeness: a JVM that runs on a JVM. When the MiniJVM would be made complete enough to build an interpreter for Golang on it, then you could run the Jacobin JVM in the Mini JVM on a "real" JVM. It would be JVMs all the way down.