您有新信

 
C++ to Java Translator (fwd)
#1
Post Gateway
發信站: 由 獅子吼站 收信 (ccstudent.ee.ntu.edu.tw , 信區: BudaTech)
---------- Forwarded message ----------
Date: Wed, 18 Sep 1996 12:36:17 +0800
From: DavidChiou.bbs@bbs.ee.ntu.edu.tw
To: b3503050@cctwin.ee.ntu.edu.tw
Subject: C++ to Java Translator


c2j is a C++ to Java translator that translates C++ code to Java code.
The parser is written in C++, because I wrote it before I ever heard of Java...
The input to c2j must consist of:
 
   - one .H file, containing one or more C++ class definitions.
   - one .C file, containing all method bodies referenced in the .H file.
 
c2j is basically a shell-script that calls sed, a C++-to-Java translator,
and the C pre-processor to do all the weaving of moving methods into one
Java class definition.
 
This parser currently uses a shell script and a Unix utility called "sed".
When you have access to Unix utilities on a Windows PC (like the MKS
toolkit), the parser could also be used. However, that setup has not been
tested, as I did not have a strong incentive to do this because we have
plenty Unix machines available at Morgan Stanley.
 
It should be pretty simple to make this thing work on DOS-only tools.
If someone does this, please let me know.
 
Different problems that are tackled by this parser:
 
   - C++ can have a header file with a class declaration and a member
     function given in another file (typically a .C or .cpp file),
     Java has all the methods "inlined" in the class definition.
 
   - Data types are incompatible (unsigned versus int, for instance)
 
   - Pointer references (->) need to be translated into refs (.)
 
   - Access (public,protected,private) is done by region in C++, and
     is per method in Java.
 
   - Print statements to cerr and cout, which are to be translated into
     calls to System.out.print, and System.err.print.
 
   - Statements with "delete object;" need to be translated into
     "object = null;" to render a similar effect. Note that these
     assignments are not necessary at all in a destructor, as we will
     lose the reference to the object automatically.
 
   - Overloaded operators in a class definition are meaningless in Java.
 
   - C++ has multiple inheritance. Java has single inheritance and
     interfaces. In the case of multiple inheritance, we need to make
     a decision.
 
Still to be done:
 
   - Variable declarations on the stack are not recognized and handled.
 
   - Overloaded operators in the code.
 
   - Templates.
 
   - Global variables are collected and put into the first class found
     in the .H file. Something goes wrong during collection or writing,
     and this class might not be the right location after all.
 
   - Sometimes the parser has problems with method parameters 
     (especially with constructors). Keep the .H and .C file handy...
 
   - Documentation (no time...)

 
C2j translates roughly about 85-95 percent of the code correctly. It saves
me a lot of editing time (inlining all methods, translating simple types,
removing &'s everywhere, changing -> into ., etc.
Just run it and see what it does for you...
 
We have decided to put this parser in the public domain. Use it at your
own risk, and if you make any changes (especially improvements), tell us!
We hope that this utility is useful for you and the rest of the C++/Java
community.
 
Sorry for sending code like this, but we do not have a publicly accessible 
site for depositing source code.
 
Chris Laffra
-------------------------------------------------------------------
Morgan Stanley, 750 Seventh Avenue (between 49 & 50), NYC, NY 10019
Email: laffra@ms.com,   Tel: (212) 762 2223,    Fax: (212) 762 0520
-------------------------------------------------------------------
 
Save this posting in a file, and run uudecode on that file, 
then execute:
 
        uncompress c2j.tar.Z
        tar xvf c2j.tar
        cd c2j
        make
 
The makefile uses the Lucid compiler, replace it with any other
C++ compiler you use.
 
begin 664 c2j.tar.Z
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
@GUH%OP L0&NZ ._!?' ?[ ?_P8!P("P(#\*$<"$\OP+S

end
Wed Sep 18 13:02:39 1996
回覆 | 轉寄 | 返回

卍 台大獅子吼佛學專站  http://buddhaspace.org