[comp.lang.c++] development environments

twagner@baobab.berkeley.edu (Tim Wagner) (09/03/90)

There has been some discussion recently concerning solutions
to the problem of continually recompiling include files, smart
linkers to aid the prototyping efforts of programmers, etc.

Does anyone know of good references in the literature or examples
of well-done implementations of this sort of thing?  I would like
paper titles/authors or specific products to look at.

Yes, I know Ada and Modula-2 support a notion of "program database".  I'm
looking for other examples, and C or C++ experiences, and technical
discussions in a language-independent framework.

If there is sufficient response to this request, I will post a summary.

Tim A. Wagner
UC Berkelely
twagner@sequoia.Berkeley.EDU

roy@alfrat.uucp (Roy Phillips) (09/05/90)

In article <27437@pasteur.Berkeley.EDU> twagner@baobab.berkeley.edu 
(Tim Wagner) writes:

>    There has been some discussion recently concerning solutions        <
>    to the problem of continually recompiling include files, smart      <
>    linkers to aid the prototyping efforts of programmers, etc.         <

One environment that goes a long way to providing this functionality
is that provided by the Eiffel language, in which the language compiler, es,
makes the decision as to what it should recompile for you, based upon
dependencies in the system you are building.  

An SDF (System Description File) lists the directories in which classes
required by the program can be found, so if the compiler finds a statement:

   position: POINT

it scans these source directories (Eiffel's UNIVERSE) for the class point.e
and it's compile-directory point.E, from which the compiler can determine if
the class's interface (ie., the signature of the class's exported features)
has changed (if the implementation has'nt changed, ok, it will just link it in 
at link time). A change in the interface will trigger-off compilation of those
classes that make use of it.  

In addition, many tools are provided for investigating and documenting 
inheritance hierarchies and interface descriptions via class browsers and 
graphical utilities such as *good*.

A handy overview of the features offered can be found in the publication:

   Eiffel: The Environment.  Ref. TR-EI-5/UM

available from:

   Interactive Software Engineering Inc.
   270 Storke Road Suite 7
   Goleta CA 93117  (805-685-1006)

Roy

-------------------------------------------------------------------------------
 Roy Phillips           |  /~~~\/~~\         ,,,  | roy@alfrat.UUCP
 A+F SystemEntwicklung  | ( [ U U [||||||||||<<<  | {world}!mcsun!unido!alfrat
 D-4030 Ratingen        |  \___/\__\         ```  | "I used to think header
 West Germany        Vox: +49-2102-850511         |  files were a neat idea"
-------------------------------------------------------------------------------

dog@cbnewsl.att.com (edward.n.schiebel) (01/24/91)

I am looking into a c++ development environment.  I have limited
experience with Objectworks for C++ and have seen a demo of Saber C++.
Does anyone out there have experience with these tools?  What do you
think of them?  How well do they integrate into a project with 15 or so
developers? What other environments are out there?

Your input would be appreciated...post or e-mail

	Ed Schiebel
	ens@cblph.att.com
	614-860-7224

bytor@ctt.bellcore.com (Ross Huitt) (01/25/91)

I've been looking at Sabre C++ and ObjectWorks lately and have talked
to users of both.  From a purely debugging perspective I would have to
lean towards Sabre, although I hate the costs associated with its
interpreter.  The big feature that Sabre has that ObjectWorks doesn't
is the ability to evaluate expressions during a debug session, such
as 'print x.foo(1, 2)'.  And you don't need an full-blown interpreter
to do this: dbx, gdb, Turbo Debugger, and Codeview can all evaluate
expressions.
As far as cooperative programming goes, I don't think either package
provides any explicit support.  You'll have to look elsewhere.

	-ross aka bytor@ctt.bellcore.com

gwu@quark.tcs.com (George Wu) (01/26/91)

-
     After much debate and extensive experience with both GNU and Sun (AT&T
Cfront) C++ compilers, we've decided to go with Saber C++.  By far, the
biggest advantage was dynamic linking and the debugging capabilities.  The
ParcPlace sales people showed us a lot of fancy browsing, but they just
don't have very good debugging facilities.

     Saber C++'s debugging is right up there with my other favorite debugger,
gdb.  There are features I like about each debugger, but since we now use
multiple inheritance and some of our applications run into the hundreds of
thousands of lines of code, Saber C++ wins hands down.  Now only if Saber
would implement a "finish" (current function) command . . . .

							George

Disclaimer: These opinions are strictly my own.  They're mine and only mine.
You and noone else can have 'em.

----
George J Wu                           | gwu@tcs.com or uunet!tcs!gwu
Software Engineer                     | 2121 Allston Way, Berkeley, CA, 94704
Teknekron Communications Systems, Inc.| (415) 649-3752