Re: development of C++ compiler



Responding to Grizlyk...

Some statements:

There are C++ compilers, that has been written in old good C. Are C or
pascal perfect languages that can be used to build any powerful OO
language with mutable source representation, as C++ could be?
Obviously no.

C++ is the most technically deficient of the major OOPLs mostly because it was originally constrained to be a pre-processor for C (i.e., cfront). IOW, defining OOPLs in terms of non-OOPLs doesn't work out well.

OTOH, the execution models for languages like C and PASCAL are well understood so there is nothing to prevent an OOA/D being transformed into C or PASCAL (though PASCAL would be tricky because of the lack of address manipulation). In fact, the commercial full code generators for OOA models routinely target straight C as the output for performance reasons. So there should be nothing to prevent cross-compilation from an OOPL to <most> non-OOPLs.

Is current C++ can be used to build the OO language? Obviously no,
because unfortunatelly C++ simultaneously is not-trivial for
implementation in C or pascal, but quite limited for users.

I'm not sure I understand this. C++ /is/ an OOPL, so why would it be used to "build" an OOPL? Conversely, C++ does map directly into C because it was originally developed as a C preprocessor.


Some questions:

I have got a hint, that we can select "core of C++" (that does not
mean the core must be completely compatible with current C++ or its
subset) and use the not-mutable core language to build all concrete-
hardware "complete C++" compilers. The "complete C++" language can be
the powerful OO language with mutable source representation,
structured by dialects.

Ah. I am getting the impression you want to design a /new/ OOPL that will produce C++ as an intermediate step, much like cfront and Eiffel produce C. Given the technical deficiencies of C++ from an OO perspective, I don't understand why one would want to do this. IOW, if one is going to define a new OOPL based upon an existing OOPL, I think there are a lot better choices than C++ for that basis.



--
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl@xxxxxxxxxxxxxxxxx
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info@xxxxxxxxxxxxxxxxx for your copy.
Pathfinder is hiring: http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH
.



Relevant Pages

  • Re: object-oriented programming explained in 51 lines
    ... Technically the most correct is that it is programming using an OOPL. ... any programming language that supports objects with identity that encapsulates properties and operations that collaborate using message passing as well as classes related by inheritance, polymorphism, and binding. ... Anything you can express in OOA/D model can be expressed in a procedural language, as full code generators for OOA models routinely do. ... Therefore there is no OO problem solution than cannot be implemented in both an OOPL and a procedural language. ...
    (comp.object)
  • Re: Object Oriented simpleton design pattern
    ... OOP is really beneficial for bigger projects only. ... VB isn't really an OO language and so won't help in properly ... VB is a limited OOPL when compared to other OOPLs, ... VB doesn't have implementation inheritance - but you can construct ...
    (microsoft.public.vb.general.discussion)
  • Re: OOA?
    ... If the model is somehow executable, then the language is ... the model is *expressed* in an OOPL ... OO principles can only be applied in the context of an OO language. ... model that is fit for C++ and expect it to be fit for Smalltalk. ...
    (comp.object)
  • Re: Paradigms which way to go?
    ... narrow definition permits one to write OO _programs_ in whatever language. ... The narrowest definition of OO is polymorphism: ... But we can agree to define an OOPL as a language that makes all the ... > Does Perl support these? ...
    (comp.programming)