Topic: Varieties of C++
Author: eyala@applicom.co.il (Eyal Alaluf)
Date: Wed, 15 Feb 1995 19:58:24 GMT Raw View
Schilling J. (jls@summit.novell.com) wrote:
: In article <D3DoLH.w0@applicom.co.il> eyala@applicom.co.il writes:
: >However, because of the complexity of the language, the compilers are becoming
: >harder and harder to develope and slower at compilation.
: >I would like to suggest that the standard will include requirements from the
: >compilers to allow using C++ without specific facilities.
: Doing what you suggest will make C++ compilers still more hard to develop,
: and take away from vendor resources that could otherwise be devoted to
: improving compilation speed. Furthermore the (new) standard library would
: be rendered unusable, since it depends on most of the language features
: you want to make optional.
: The place to keep a language small (if that's what you want) is in its
: definition, not its implementations.
I could not agree more, but I do not see the ARM shrinking in size in the
years to come...
What I am aiming at is component wise compilers. The user is given a compiler
that is composed of several components which can connected to do the
compilation. Now if some standard about the components is defined different
vendors might start to specialize on the different parts.
C++ was originally designed to allow using existing linkers, a linker is
one example of a component. The C++ compilers I am familiar with divide the
compilation process into several phases. Each phase could be a component.
The stuff that supports multiple inheritance could be component. (Assuming it
can be separated from the single inheritance case).
What I would like to have is a standard defining the components and the
interfaces that each component exposes, preferably in C++, so I can configure
the components myself to my needs. (I always dreamed of altering C++ in the most
subtle ways...)
On the short run this kind of standard and design will make the compiler vendors
work harder. In the long run though it will pay off. Each vendor could focus
on its specialty area and use the other vendors components. This is the Object
Oriented dream of component application hooked up together, and I think that
C++ compilers are an appropriate place to start, and IMHO a standard should
consider these issues.
-----------------------------------------------------------------------------
Eyal Alaluf eyala@applicom.co.il
Mainsoft Israel Ltd. c/o Applicom Systems Ltd.
16 Abba Hillel Silver St.
Phone : 972 -(3) 575 5550 ext : 1287 Ramat-Gan, 52506
Fax : 972 -(3) 751 5906 Israel
Author: jls@summit.novell.com (Schilling J.)
Date: 7 Feb 1995 14:07:38 -0500 Raw View
In article <D3DoLH.w0@applicom.co.il> eyala@applicom.co.il writes:
>However, because of the complexity of the language, the compilers are becoming
>harder and harder to develope and slower at compilation.
>I would like to suggest that the standard will include requirements from the
>compilers to allow using C++ without specific facilities.
Doing what you suggest will make C++ compilers still more hard to develop,
and take away from vendor resources that could otherwise be devoted to
improving compilation speed. Furthermore the (new) standard library would
be rendered unusable, since it depends on most of the language features
you want to make optional.
The place to keep a language small (if that's what you want) is in its
definition, not its implementations.
--
Jonathan Schilling
Novell, UNIX Systems Group
jls@summit.novell.com
Author: eyala@applicom.co.il (Eyal Alaluf)
Date: Thu, 2 Feb 1995 15:05:40 GMT Raw View
C++ is designed to allow different styles of programming. This is
consistent with the goal of the language to be a multipurpose language.
Examples for that are: Exceptions, templates, multiple inheritance, etc.
However, one person or a team may, and I think usually does, use only part
of the facilities C++ offers in each project.
However, because of the complexity of the language, the compilers are becoming
harder and harder to develope and slower at compilation.
I would like to suggest that the standard will include requirements from the
compilers to allow using C++ without specific facilities.
For instance, I, personally, do not use exceptions and multiple inheritance,
and I use templates only as inlines. I would like to compile my programs
without the above facilities.
BTW, I read some articles in comp.lang.pascal about the Borland Pascal,
(An OO pascal for PC), and users were asking why doesn't it support multiple
inheritance. The answer was that the compiler experts in Borland claimed that
the addition of multiple inheritance will reduce the compilation speed
significantly. Is the same true for C++? Any word from compiler experts?
The best solution would be for the compiler vendors to supply along with the
compiler, compiler libraries one for each facility so the user can write C++
code to configure his/hers own compiler. But this is asking too much...
Any comments?
Please mail eyala@applicom.co.il.
-----------------------------------------------------------------------------
Eyal Alaluf eyala@applicom.co.il
Mainsoft Israel Ltd. c/o Applicom Systems Ltd.
16 Abba Hillel Silver St.
Phone : 972 -(3) 575 5550 ext : 1287 Ramat-Gan, 52506
Fax : 972 -(3) 751 5906 Israel