Smalltalk-80 and the resulting modern implementations of it follow this idea. Typically, the IDE/development tools come with the runtime environment and these allow the browse the system's code as well as inspect existing instances of object. There's also a primitive form of a built-in VCS allowing the viewing of earlier method versions and reverting to them. Finally, the underlying VM is written in a mixture of C and either Smalltalk or something resembling it.