Externals
Un article de SmartEiffelWiki, l'encyclopéde libre.
Les externals participent d'un mécanisme fourni en standard par Eiffel. Ce mécanisme permet d'appeler du code dans un langage différent depuis Eiffel.
Vous trouverez ci-dessous la liste actuelle des specifications external supportées par SmartEiffel.
| Sommaire |
external "C"
Cette spécification permet d'appeler du code C depuis Eiffel. Ce mécanisme est décrit dans Eiffel: The Language.
Des exemples sont disponibles dans le tutorial, tutorial/external/C.
Disponible uniquement avec compile_to_c.
Ce mécanisme est désormais supplanté par les plugins (voir plus bas).
external "C++"
Cette spécification permet d'appeler du code C++ depuis Eiffel. Ce mécanisme est décrit dans Eiffel: The Language.
Des exemples sont disponibles dans le tutorial, tutorial/external/C++.
Disponible uniquement avec compile_to_c.
Ce mécanisme est désormais supplanté par les plugins (voir plus bas).
external "Java"
Cette spécification permet d'appeler du code Java depuis Eiffel.
Des exemples sont disponibles dans le tutorial, tutorial/external/Java.
Disponible uniquement avec compile_to_jvm.
external "plug_in"
Cette spécification est utilisée en particulier par les bibliothèques de SmartEiffel. Cette forme est à préférer à external "C" et external "Java".
Des exemples sont disponibles partout dans la bibliothèque standard.
Une page particulière est dévolue à cette fonctionnalité.
external "built_in"
Cette spécification est réservée au compilateur SmartEiffel. Elle n'est pas utilisable en dehors de cas très particuliers, connus de manière exclusive par compile_to_c et compile_to_jvm. Ces cas sont les "briques de base" qui produisent un code très spécifique dépendant de chaque générateur de code.
Par exemple, infix "#+" de la classe INTEGER est directement traduite en C par un +, et en java par le bytecode iadd.





