9
votes

Y a-t-il un moyen d'écrire un compilateur avant d'extrémité LLVM en C #?

Y a-t-il un moyen d'écrire un compilateur frontal de LLVM en C #?


1 commentaires

3 Réponses :


1
votes

Si vous souhaitez avoir un compilateur LLVM pour C #, Mono 2.6 peut utiliser LLVM


2 commentaires

Non, je cherche à écrire un compilateur LLVM en C #.


Si tu veux, je vais supprimer cette réponse



9
votes

Je ne vois pas pourquoi pas. Il y a un Référence de langue pour LLVM et aussi longtemps que vous êtes conforme à la langue, il n'y a pas de Raison que vous ne pouvez pas écrire quelque chose dans C # qui va analyser cette langue et soit:

  • produire une sortie basée sur la langue (comme un interpréteur en temps réel)
  • créer un assemblage en C # qui exécutera les instructions LLVM

    Cela ne veut pas dire que ce sera facile , mais il peut être fait .


2 commentaires

Mise à jour des personnes du futur: N'essayez pas d'écrire un analgésique BitCode / ll pour C #, utilisez plutôt des liaisons telles que LLVM-FS ou llvm.net (ce que je n'ai pas a essayé).


- Disclaimer, je suis l'auteur de ceux-ci.



3
votes

Il y a deux manières. Vous pouvez envoyer des liaisons C / invoquer LLVM (plus que suffisamment pour la mise en œuvre d'un backend de compilateur), ou vous pouvez écrire votre propre wrapper avec C ++ / CLI.

J'ai utilisé XML Dump ATT généré par Clang pour les en-têtes de liaison C de LLVM pour générer automatiquement des liaisons .NET pour eux. Mais il n'est pas possible de le faire plus longtemps, car l'imprimante AST XML avait été retirée de Clang, sans remplacement disponible.


0 commentaires