On Aug 1, 6:09 pm, John Bokma <j...@castleamber.com> wrote: > Roy Smith <r...@panix.com> writes: > > In article <4c55fe82$0$9111$426a3...@news.free.fr>, > > candide <cand...@free.invalid> wrote: > > >> Python is an object oriented langage (OOL). The Python main > >> implementation is written in pure and "old" C90. Is it for historical > >> reasons? > > >> C is not an OOL and C++ strongly is. I wonder if it wouldn't be more > >> suitable to implement an OOL with another one. > > > One thing that comes to mind is that it's much easier to distribute C > > libraries than C++ libraries. > > In the beginning of C++ there were programs that just converted C++ to C > (frontends). At least that is how the C++ compiler Acorn sold worked. > So I don't think your argument was much true back then.
No, it was that way back then too. They might all generate C code but different C code by different backends wouldn't be able to call each other natively. For instnace the function int foo(int); might be name-mangled this way in one cfront: foo$d and this way in another: ____int_foo__int_i The virtual table of this class: class Bar { virtual int foo(int); virtual int bar(int); }; might be generated like this in one cfront: struct Bar$$Vtable$ { int (*Bar$$bar$d)(int); int (*Bar$$foo$d)(int); }; and like this in another: struct ____class_Foo___vtable_ { int (*foo)(int); int (*bar)(int); }; So, just because they both generated C code, it doesn't mean they can call one another. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list