[comp.lang.modula2] Multicompilers in <cont>

Jason.Kankiewicz@f345.n109.z1.fidonet.org (Jason Kankiewicz) (07/07/90)

Why go through the trouble of calling separate compilers?  It might be  
easier to have object code compatibility between several different  
compilers.  With Benchmark, for example, assembly language can be used  
to write a module as long as you write a DEFINITION module for the  
assembly code, compile and link the assembly code and the run M2GenObm  
on it.  Perhaps a similar method could be adopted for 'C' and other  
languages, then all you'd need is a M2GenOBM package that could  
incorporate the different object code standards.  You wouldn't have to  
mess around with the compiler at all.  The ideal situation would be to  
have several different language compilers which all produce the same  
kind of object code.  I think Jensen & Partners Int. has done this with  
their TopSpeed line of compilers.



--  
uucp: uunet!m2xenix!puddle!109!345!Jason.Kankiewicz
Internet: Jason.Kankiewicz@f345.n109.z1.fidonet.org

moeller@uniol.UUCP (Klaus Moeller) (07/12/90)

Jason.Kankiewicz@f345.n109.z1.fidonet.org (Jason Kankiewicz) writes:

>Why go through the trouble of calling separate compilers?  It might be  
>easier to have object code compatibility between several different  
>compilers.  With Benchmark, for example, assembly language can be used  
>to write a module as long as you write a DEFINITION module for the  
>assembly code, compile and link the assembly code and the run M2GenObm  
>on it.  Perhaps a similar method could be adopted for 'C' and other  
>languages, then all you'd need is a M2GenOBM package that could  
>incorporate the different object code standards.  You wouldn't have to  
>mess around with the compiler at all.  The ideal situation would be to  
>have several different language compilers which all produce the same  

This is avaliable for UNIX too.
Unix uses COFF (Common Object File Format) and all compilers on a UNIX
machine *should* use this format for thier object code.
The linker ld can then bind all the different objects together.
We did so with C, Pascal, Fortran and Assembler.
The MOCKA Compiler has the DEFINITION Module interface mentioned above.
It's called FOREIGN MODULE there and works very well.
-- 
   /---------------------------------------------------------------------\
  /  Klaus Moeller, Leiteweg 2, 2940 Wilhelmshaven, West - Germany        \
  |  UUCP : moeller at uniol.uucp  | BITNET   : 078326 at DOLUNI1.BITNET  |
  |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
  \    Fill what's empty, empty what's full and scratch where it itches   /
   \---------------------------------------------------------------------/