Question

Je suis intéressé par la création d’une langue sur l’AVM2 et je cherche des conseils sur les points de départ. Je me rends bien compte que ce n’est pas une tâche triviale, mais j’aimerais essayer et au moins en apprendre davantage sur la mise en œuvre d’une langue en cours de route.

Je me suis amusé avec ANTLR et je me suis renseigné sur les problèmes de syntaxe pour le développement du langage. Ce que je recherche, c’est un conseil sur la voie à suivre ou des références / livres utiles.

Par exemple, je voudrais générer (script / manuellement) un très simple bytecode AVM2 et le faire exécuter sur la machine virtuelle au départ.

Merci

Était-ce utile?

La solution

Si vous n'êtes pas intéressé par Haxe, vous devrez en principe écrire votre propre compilateur qui compile les objets jusqu'à ABC (Code octet Actionscript). Le document Présentation de l’AVM2 disponible sur Adobe sur ABC et sur AVM2, qui devrait vous aider à démarrer. C'est un document assez complet, mais restez vigilant pour quelques fautes de frappe dans les instructions de bytecode.

Vous devrez également envelopper le bytecode dans une balise doABC dans le cadre d'un conteneur SWF. Vous pouvez obtenir plus d'informations dans la documentation Format de fichier SWF .

Si vous souhaitez commencer à écrire les structures de données (formats int optimisés, etc.), n'hésitez pas à consulter le code chez asmock, un projet de moquage dynamique sur lequel j'ai travaillé. La génération de SWF / ByteCode est un peu confuse, mais il existe des wrappers IDataOutput ( SWF , ByteCode ) qui pourrait être utile.

Autres conseils

Project Alchemy de Adobe peut être une bonne référence http://labs.adobe.com/technologies/alchemy/

Comment ça s'est passé? Je suis également intéressé par un compilateur Java vers AVM2 ... Avez-vous un code publié?

Jetez un coup d’œil à Haxe : il s’agit d’un langage open source pouvant cibler différentes plateformes, y compris le logiciel AVM. Vous pouvez vous plonger dans le code source du compilateur SWF pour vous inspirer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top