Je suis intéressé dans la mise en œuvre d'une quatrième système, juste pour que je puisse obtenir une certaine expérience de la construction d'une simple VM et de l'exécution.
Lors du démarrage dans une généralement apprend au sujet de la pile et de ses opérateurs (CHUTE de, DUP, SWAP, etc.) tout d'abord, il est donc naturel de penser que parmi les primitives des opérateurs. Mais ils ne sont pas. Chacun d'eux peut être décomposé en opérateurs de manipuler directement la mémoire et la pile de pointeurs. Plus tard, on apprend de store (!) et fetch (@) qui peut être utilisé pour mettre en œuvre DUP, SWAP, et ainsi de suite (ha!).
Quels sont donc les primitives opérateurs? Ceux qui doivent être mis en œuvre directement dans l'environnement d'exécution à partir de laquelle tous les autres peuvent être construits? Je ne suis pas intéressé à haute performance; je veux quelque chose que je (et d'autres) peuvent apprendre. Opérateur d'optimisation peuvent venir plus tard.
(Oui, je suis consciente que je peux commencer avec une machine de Turing et à partir de là. C'est un peu extrême.)
Edit: Ce que je vise est semblable à l'amorçage d'un système d'exploitation ou d'un nouveau compilateur. Que dois-je mettre en œuvre, au minimum, de sorte que je peux construire le reste du système, à partir de ces primitives blocs de construction? Je ne vais pas mettre en œuvre cette nus sur du matériel; comme un exercice éducatif, allais-je écrire mon propre minimale de la VM.