Source

TyLLVM / README

TyLLVM: Librairie de génération sûre d'assembleur LLVM en OCaml

Résumé:
    TyLLVM est une librairie OCaml permettant de générer de
    l'assembleur LLVM qui respecte au possible les specifications du
    langage grace au système types d'OCaml.

Introduction:
    LLVM est une infrastructure de compilateur ayant l'architecture suivante:
        - Le front-end spécifique à chaque langages compilant vers le code
            intermediaire LLVM.
        - Un compilateur compilant de l'assembleur LLVM (code intermédiaire)
            vers du bytecode LLVM.
        - Un back-end transformant depuis le bytecode LLVM vers une
            architechture donnée

    La présente librairie permet donc de générer du code intermédiaire LLVM
    à partir de code OCaml. Il doit pour cela présenter un ensemble de fonctions
    générant les différents type et structures possible en LLVM-IR.

    LLVM inclue déjà un binding de leur API pour générer du LLVM-IR. Seulement,
    ce n'est qu'un bind des fonctions C++ correspondant qui est non-complet et
    pouvant occasionner des segfaults.

    La vrai différence de TyLLVM avec avec ce binding, en plus de pallier à ces
    problèmes mentionner précédament, est qu'il propose un moyen d'éviter un
    certain nombre d'erreurs grâce au système de types d'OCaml.