Journal
Ce journal contient 1 entrées.
LLVM - Low Level Virtual Machine
J'aime beaucoup l'idée derrière LLVM (Low Level Virtual Machine). Il s'agit d'une boîte à outils pour la création de compilateurs, et qui repose, notamment, sur un langage intermédiaire (LLVM IR), un peu comme le bytecode Java ou le CIL de .NET. Les outils de LLVM sont capables d'effectuer des optimisations très sophistiqués sur ce langage intermédiaire et peuvent ensuite le transformer en code machine, comme le ferait un compilateur à la volée (Just-In-Time compiler).
Tout l'intérêt réside dans l'existence de bridge qui transforment des langages comme le C, le C++ ou encore l'Objective-C en code LLVM (des briges pour le bytecode Java et le CIL .NET sont en cours de développement).
Ainsi, d'un langage quelconque (si le bridge existe), on obtient du code LLVM qui (i) va pouvoir bénéficier des optimisations spécifiques à LLVM IR, (ii) va pouvoir être transformé en code machine pour de nombreuses architectures.
Tout l'intérêt réside dans l'existence de bridge qui transforment des langages comme le C, le C++ ou encore l'Objective-C en code LLVM (des briges pour le bytecode Java et le CIL .NET sont en cours de développement).
Ainsi, d'un langage quelconque (si le bridge existe), on obtient du code LLVM qui (i) va pouvoir bénéficier des optimisations spécifiques à LLVM IR, (ii) va pouvoir être transformé en code machine pour de nombreuses architectures.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.