Re: Translating OO program to procedural program

Pascal Bourguignon <pjb@informatimago.com>
11 Oct 2006 23:15:38 -0400

          From comp.compilers

Related articles
Translating OO program to procedural program samhng@gmail.com (=?iso-8859-1?B?bW9vcJk=?=) (2006-10-10)
Re: Translating OO program to procedural program pjb@informatimago.com (Pascal Bourguignon) (2006-10-11)
Re: Translating OO program to procedural program oliverhunt@gmail.com (oliverhunt@gmail.com) (2006-10-11)
Re: Translating OO program to procedural program napi@axiomsol.com (napi) (2006-10-11)
Re: Translating OO program to procedural program mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2006-10-11)
Re: Translating OO program to procedural program torbenm@app-6.diku.dk (2006-10-11)
Re: Translating OO program to procedural program englere_geo@yahoo.com (Eric) (2006-10-11)
Re: Translating OO program to procedural program DrDiettrich1@aol.com (Hans-Peter Diettrich) (2006-10-11)
[4 later articles]
| List of all articles for this month |

From: Pascal Bourguignon <pjb@informatimago.com>
Newsgroups: comp.compilers
Date: 11 Oct 2006 23:15:38 -0400
Organization: Informatimago
References: 06-10-039
Keywords: OOP
Posted-Date: 11 Oct 2006 23:15:38 EDT

"moop." <samhng@gmail.com> writes:


> I am working on a project translates OO programs to procedural
> programs, such as translating C++ to C and the like. I hope this
> effort can be spreaded out to other langs, so I am working on to
> abstract the common issues of doing so. I know there is a pinoneer
> attempt is C Front which produce C++ programs via a C compiler, I want
> to have a look on that, but still cannot find it now, anyone can
> suggest this to me?
>
> My approach is just to rename the methods with the instance name so
> that they can be placed in a single source file and then be compiled
> later by the procedural lang compiler. For instance,
> [...]
> So far I am a little bit frustrated on this approach, anyone has
> better idea? Pls share your thoughts, thank you!


About C++, you should have a look at method name mangling, (google for
C++ mangling): there are different methods for different type of
arguments! You can consider the type of the hidden 'this' object in
the name mangling, so you don't need to prefix the method name by a
class name.


And mind:
          class a{void m(void);};
          class A{void m(void);};
!


Since you're interested in some generality, I'd advise you to study
Objective-C (also implemented originally as a pre-processor in front
of C), and CLOS (Common Lisp). With both, you will probably find out
that you have to broaden notably your preconceptions: OO models are
widely different from one language to the other, in general.




--
__Pascal Bourguignon__ http://www.informatimago.com/


Post a followup to this message

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