Difference between revisions of "Externals"
(Category: Book) |
(prefer plug_in over java) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Book]] |
[[Category:Book]] |
||
+ | ''Externals'' build on top of a standard Eiffel mechanisn. This mechanisn permits calling code in a language different from Eiffel. |
||
− | *** Please translate the French page |
||
+ | |||
− | *** thanks! |
||
+ | You will find below the current list of ''external'' specifications supported by SmartEiffel. |
||
+ | |||
+ | == external "C" == |
||
+ | |||
+ | This specification permits calling C code from Eiffel. This mechanisn is described in [[Bibliography#ETL_1992|''Eiffel: The Language'']]. |
||
+ | |||
+ | Some examples are available in the tutorial, <TT>tutorial/external/C</TT>. |
||
+ | |||
+ | This mechanisn is only available with [[compile_to_c]]. |
||
+ | |||
+ | This mechanism has since been supplanted with plugins (see below). |
||
+ | |||
+ | == external "C++" == |
||
+ | |||
+ | This specification permits calling C++ code from Eiffel. This mechanism is described in [[Bibliography#ETL_1992|''Eiffel: The Language'']]. |
||
+ | |||
+ | Some examples are available in the tutorial, <TT>tutorial/external/C++</TT>. |
||
+ | |||
+ | This mechanism is only available with [[compile_to_c]]. |
||
+ | |||
+ | This mechanism has since been supplanted with plugins (see below). |
||
+ | |||
+ | == external "Java" == |
||
+ | |||
+ | This specification permits calling Java code from Eiffel. |
||
+ | |||
+ | Some examples are available in the tutorial, <TT>tutorial/external/Java</TT>. |
||
+ | |||
+ | This mechanism is only available with [[compile_to_jvm]]. |
||
+ | |||
+ | This mechanism has since been supplanted with plugins (see below). |
||
+ | |||
+ | == external "plug_in" == |
||
+ | |||
+ | This specification is particularly utilized y the SmartEiffel standard libraries. This form is preferred to ''external "C"'' and ''external "Java"''. |
||
+ | |||
+ | Examples are available throughout the standard library. |
||
+ | |||
+ | A [[plugins|dedicated page]] is devoted to this functionality. |
||
+ | |||
+ | == external "built_in" == |
||
+ | |||
+ | This specification is reserved for the SmartEiffel compiler. It is not usable outside of very specific cases unique to [[compile_to_c]] and [[compile_to_jvm]]. These cases are the "building blocks" that produce specialized output code depending on the code generator being used. |
||
+ | |||
+ | For example, <TT>infix "#+"</TT> in the class [[library_class:INTEGER|<TT>INTEGER</TT>]] is directly translated in C by a <TT>+</TT>, and in Java by the <TT>iadd</TT> bytecode. |
Revision as of 12:56, 24 July 2006
Externals build on top of a standard Eiffel mechanisn. This mechanisn permits calling code in a language different from Eiffel.
You will find below the current list of external specifications supported by SmartEiffel.
external "C"
This specification permits calling C code from Eiffel. This mechanisn is described in Eiffel: The Language.
Some examples are available in the tutorial, tutorial/external/C.
This mechanisn is only available with compile_to_c.
This mechanism has since been supplanted with plugins (see below).
external "C++"
This specification permits calling C++ code from Eiffel. This mechanism is described in Eiffel: The Language.
Some examples are available in the tutorial, tutorial/external/C++.
This mechanism is only available with compile_to_c.
This mechanism has since been supplanted with plugins (see below).
external "Java"
This specification permits calling Java code from Eiffel.
Some examples are available in the tutorial, tutorial/external/Java.
This mechanism is only available with compile_to_jvm.
This mechanism has since been supplanted with plugins (see below).
external "plug_in"
This specification is particularly utilized y the SmartEiffel standard libraries. This form is preferred to external "C" and external "Java".
Examples are available throughout the standard library.
A dedicated page is devoted to this functionality.
external "built_in"
This specification is reserved for the SmartEiffel compiler. It is not usable outside of very specific cases unique to compile_to_c and compile_to_jvm. These cases are the "building blocks" that produce specialized output code depending on the code generator being used.
For example, infix "#+" in the class INTEGER is directly translated in C by a +, and in Java by the iadd bytecode.