J'écris mon propre langage de script en C#, avec quelques fonctionnalités que j'aime, et j'ai choisi d'utiliser MSIL comme bytecode de sortie (Reflection.Emit est très utile, et je ne dois pas penser à un autre bytecode). Cela fonctionne, émet un exécutable, qui peut être exécuté (même décompilé avec Reflector :)) et est assez rapide. Mais - Je veux exécuter plusieurs 'processus' en un seul processus et un seul thread, et contrôler manuellement leur temps processeur assigné (également implémenter un IPC beaucoup plus robuste qui est offert par le framework .NET) Y at-il un moyen de désactiver complètement JIT et créer propre VM, pas à pas instruction-après-instruction en utilisant. NET framework (et contrôler l'utilisation de la mémoire, etc.), sans besoin d'écrire quelque chose par moi-même, ou pour y parvenir, je dois écrire MSIL interpréter?Désactivation de JIT et contrôle du flux de code dans MSIL (propre VM)
EDIT 1): Je sais que l'interprétation de l'IL n'est pas la chose la plus rapide dans l'univers :)
EDIT 2): Pour clarifier - Je veux que ma machine virtuelle pour être une sorte de « système d'exploitation » - il obtient un peu de temps CPU et le divise entre les processus, contrôle l'allocation de mémoire pour eux, et ainsi de suite. Il ne doit pas être rapide, ni efficace, mais juste une preuve de concept pour certaines de mes expériences. Je n'ai pas besoin de l'implémenter au niveau du traitement de toutes les instructions - si cela doit être fait par .NET, je ne vais pas m'inquiéter, je veux juste dire: première étape, et attendez que je vous dise de passer à la suivante.
EDIT 3): J'ai réalisé, que ICorDebug peut peut-être accomplir mes besoins, maintenant en regardant l'implémentation de l'exécution de Mono.