[comp.lang.c] C Environment -- Responses

evil@arcturus.UUCP (Wade Guthrie) (08/22/89)

Thanks to the following people (at least) for responding:
	orion.mc.duke.edu!bet (Bennett Todd)
	ssbell!grego (Greg Ostravich)
	auspex!guy (Guy Harris)
	cs.utah.edu!jacobs%cmos (Steven R. Jacobs)
	sneaky!gordon (Gordon Burditt)
	ames!uwvax!astroatc!nicmad!madnix.ARPA!jason

Originally, I asked for the ideal C environment.  The idea (which was
not stated) was that I want to add all of the missing elements to any
systems on which I will program in C and to learn to use the things that
I don't already understand.  I post (an abridged version of) the responses 
here for those who would like to do the same.

Originally, I started with:
	- make
	- a symbolic debugger
	- error (on UNIX -- inserts comments which are error msgs.)
	- a C interpereter (which can call compiled sub-modules)
	- a C compiler (of-course)
	- vi
	- curses (no flames, please)

A common comment was: Exchange "vi" with your favorite editor (most 
votes seems to go to EMACS.

Next, many wanted me to delete:
	- interperetor (Okay, but only with the proper debuggers)
	- curses (No, I think this is essential for portable screen handlers)
	- error

One person gave compiler requirements:
	- C pre-processor output must be available 
	- Assembler must be examinable (I'm not big on this one)
	- ANSI compatible (A MUST)
	- good optimization

And people wanted to add (In the I-knew-this-but-forgot-to-mention-it
category):
	- a windowing system 
	- a really good programmable shell
	- "AWK, sed, ..."
	- "TAGS, grep, ...": 
	- a good profiler 
	- "lint".  *Definitely* "lint".
	- A code beautifier would be good.

(In the I-didn't-think-of-it-but-really-neat category):
	- "SCCS, RCS, ...": a source code control system
	- "ar, ...": a library manager that can create libraries 
	  and extract objects from them.  This is not obviously 
	  included in the C compiler.
	- an assembler, which is not obviously included in the C compiler.
	- "yacc, bison, ...": a parser generator 
	- "lex or flex, ...": lexical analyzer generator 
	- "ctags, ...": a code browsing mechanism; and an editor 
	  that can handle tag files as a minimum.
	- Something like the SunOS "make" scheme for having the 
	  compilers generate dependency lists (include files, libraries, 
	  etc.) automatically, so that I don't have to worry about 
	  manually constructing dependency lists. 

(In the hmmm-looks-interesting category):
	- "nm, ...": a program that can list the symbols in an object 
	  file (This is useful as the basis for lots of things like 
	  cflow, and inspecting your C library for conflicts with 
	  things you wrote.)
	- If your system uses a fixed-size stack, a utility to estimate 
	  stack use for non-recursive programs.
	- "diff,...": compare differences between source versions
	- A cross-referencer (multi-file). Bi-directional as well. 

I just thought that some people would be interested in what other people
are using to generate code -- might make things easier.


Wade Guthrie
evil@arcturus.UUCP
Rockwell International
Anaheim, CA

(Rockwell doesn't necessarily believe / stand by what I'm saying; how could
they when *I* don't even know what I'm talking about???)