
On Sun, 11 Sep 2005 11:38:20 +1000 Colin Carter <colincarter@exemail.com.au> wrote:
I agree; you need to look at your own compilerS. I add the S because linking object code from two different languages can get one into a lot of trouble if they don't obey the same rules. Also one should note that some compilers pass addresses (best in my opinion) while others pass "values". (Values? C passes values sometimes and addresses if it feels like it, so be careful.) And some compilers pass 'hidden' information. This is true, but many systems have calling standards that define how functions and procedures are called. It is very important that the libraries all comply with a standard. For example, I use the Intel compiler on IA64 because it generates significantly faster code, but the system libraries are all generated by gcc, and some of the 3rd party binaries might be built with gcc or icc.
Interoperability is what you are talking about. For instance, C and C++ pass parameters by value (C++ may also pass by reference). Languages like FORTRAN and COBOL pass parameters by reference. The compilation system must provide the interoperability tools. (Passing by reference in C is simply passing the address, so the C programmer needs to know what is being called). -- Jerry Feldman <gaf@blu.org> Boston Linux and Unix user group http://www.blu.org PGP key id:C5061EA9 PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9