[comp.lang.c] Automatically translating programs to other languages

orville@weyrich.UUCP (Orville R. Weyrich) (05/19/91)

I am putting together a proposal for a program translation tool which
translates older languages into C++ or Ada.  I would appreciate any 
information the net can help me with. I expect to post the results, and 
hope to stimulate some discussion in this area.

I am aware of some work which translates one language or dialect of a language
into another language or dialect. These include:

	TAMPR -- can translate FORTRAN dialects. Later papers also
		describe it being used to translate LISP into FORTRAN.
		See "Multiple Program Realizations Using the TAMPR System,"
		by Kenneth W. Dritz, in Portability of Numerical Software
		(Lecture Notes in Computer Science # 57, Springer-Verlag
		(1977).

	TPL -- originally developed to translate FORTRAN dialects. May be
		being extended now to Ada. Contact Professor Paul A. D.
		de Maine, Department of Computer Science and Engineering,
		Auburn University, Auburn, AL 36849.

	f77 on some UNIX systems is implemented as a front-end which translates
	the FORTRAN to C, which is then further processed by the C compiler.

	Janus Ada has a tool to translate Turbo Pascal into Janus Ada.

	Logitech has a tool to translate Turbo Pascal into their Modula-2.

	Turbo Pascal has a tool to translate its version 3.0 into its 
	version 4.0.

	Cobalt-Blue has a product called FOR_STRUC which I understand converts
	FORTRAN to C++.

	Stuff to translate BASIC to C, Pascal to C, etc. also exists.


I suspect that many consulting/contract job shops have tool suites that they 
use in-house.

I will of course post a summary to the net of the responses which I receive.
Please e-mail responses to orville%weyrich@uunet.uu.net or else post to
comp.software-eng (note the followup line). Please excuse the cross-posting,
but I want to reach all the people who are fanatic about each of the languages
listed.

My questions:

	What products are available now, and what (if any) research is
	presently being done in this field?

	I have heard rumors to the effect that the present tools are less
	than satisfactory. I would be interested in hearing of the experiences
	(good and bad) of anyone who has used these tools. Bad experiences
	are particularly useful, since they help clarify where improvements
	need to be made.  The main problems that I am aware of are:
	
	1) The translated results are not always idiomatic in the target
	   language.

	2) The translated results are not always efficient.

	3) The translations are not always complete, or correct.

	I am particularly interested in stuff which translates BASIC or
	COBOL into Pascal, C, C++, Ada, etc. This is interesting because
	BASIC and COBOL usually use global variables for everything, while
	idiomatic Pascal, C, C++, Ada, etc. use local variables when
	possible. Do translator tools from BASIC or COBOL attempt to 
	"localize" variables?

	References to any articles on the subject would also be appreciated.

	Does anyone know of companies interested in this kind of stuff that
	I might offer my services to (as either a consultant or an employee?)
	[This is not a solicitation of a job at this time, but I am trying to
	find out who the "movers and shakers" are in this field].

Thanks,

Orville.

--------------------------------------           ******************************
Orville R. Weyrich, Jr., Ph.D.                   Certified Systems Professional
Internet: orville%weyrich@uunet.uu.net             Weyrich Computer Consulting
Voice:    (602) 391-0821                         POB 5782, Scottsdale, AZ 85261
Fax:      (602) 391-0023                              (Yes! I'm available)
--------------------------------------           ******************************