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???)