re: Converting Pascal to C++, C

"Bob Sheff" <>
14 Apr 2006 21:17:18 -0400

          From comp.compilers

Related articles
Converting Pascal to C++, C# or VB (Steve) (2006-04-03)
re: Converting Pascal to C++, C (Bob Sheff) (2006-04-14)
| List of all articles for this month |

From: "Bob Sheff" <>
Newsgroups: comp.compilers
Date: 14 Apr 2006 21:17:18 -0400
Organization: Compilers Central
References: 06-04-017
Keywords: translator, Pascal
Posted-Date: 14 Apr 2006 21:17:18 EDT

"Steve" stated:
>It's a big chunk of code - about 500k lines in 200 files. I currently have a

Large systems typically have millions of lines and thousands of files.

>translator that converts it to Delphi. This enables us to run it on a PC,
>So far the main obstacle I can see with C++ is the nested routines of
>Pascal. I don't know of any way to do this in C++.

The Applied Conversion Tech translator "Pas-C" pops out the imbedded
routines by appending in-scope variables as arguments to the routine
definition and invocations (by reference if needed). It may need to
modify the procdure name (by pre-pending the imbedor's name) if there
are identicall named routines elsewhere in the system. This is done
recursively and automatically.

This proceedure was originally developed for a very large project
involving (Pascal-like) CHILL to C++ involving very large files, some
of which had multiple, sinliar recursive definitions more than 3 deep.
  After CHILL, Pascal was easy.

>We also have a few instances of Pascal procedural parameters. Can
>these be emulated?

Certainly, as pointer to function

>Fortunately no-one ever used conformant arrays. :)

One could perhaps do this with a #define macro for the invocation such as:
#define foo(array) foo_conform( array, sizeof(array) )
and overload the definition with a size argument.
if there were enough of them in a system, a special rule could be
designed to do this automatically.

If you would like a fixed price bid on conversion, contact me or the

regards, Bob Sheff
bsheff2 at yahoo dot com

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.