Interfaçage entre les langages de programmation¶
En construction
Notes personnelles à relire et compléter pour servir de support pour les cours.
Points clés¶
- Les langages de haut niveau sont construits sur la base d'un langage de plus bas niveau
- Il existe des ponts entre les langages
- Étudier ces mécanismes d'interfaçage est un bon point d'entrée pour comprendre en détail le fonctionnement des langages (C, C++, Java, NodeJS...) et outils (ex : PostgreSQL) que l'on utilise.
Interfaçage entre C et ASM¶
- www.devdungeon.com - How to Mix C and Assembly (archive) qui montre comment appeler de l'assembleur en C et vice versa.
- en.wikipedia.org - X86_calling_conventions - cdecl et en.wikipedia.org - X86_calling_conventions - fastcall pour les conventions d'appel de fonctions qui sont derrière ces possibilités d'interfaçage.
Interfaçage entre Python et C¶
Interfaçage entre Java et C¶
Interfaçage entre Rust et C¶
Interfaçage entre NodeJS et C++¶
Outils¶
- godbolt.org permet de visualiser le code généré par les compilateurs des différents langages (dont le code ASM généré pour du C ou du C++, bytecode JAVA,...)
- www.swig.org permet de générer du code pour interfacer de nombreux langages avec du C ou C++