pattis@JUNE.CS.WASHINGTON.EDU (Richard Pattis) (05/12/88)
I have been teaching the CS-1 and CS-2 courses here at the University of Washington in Modula-2 for the past 4 years. I am now strongly considering teaching Ada in these classes. I would like to solicit recommendations for compilers: we use a large VAX/VMS for instruction, but will also ultimately need compilers for our own department's machines (mostly VAX/ULTRIX and Suns). I am looking for a system with short compile times and good error diagnostics; fast run times are not as important. We typically have 20-40 students logged on at once. Also, I am interested in other language related tools, such as language sensitive editors, debuggers, and profilers. I hope to direct the Computer Center while it examines a few compilers early in the summer, and then choose one for use this Fall. I'd appreciate any relevant comments.
dragon@trwspf.TRW.COM (Roger Vossler) (05/14/88)
In article <8805121644.AA02786@june.cs.washington.edu> pattis@JUNE.CS.WASHINGTON.EDU (Richard Pattis) writes:
*
* I have been teaching the CS-1 and CS-2 courses here at the University of
*Washington in Modula-2 for the past 4 years. I am now strongly considering
*teaching Ada in these classes. I would like to solicit recommendations for
*compilers: we use a large VAX/VMS for instruction, but will also ultimately
*need compilers for our own department's machines (mostly VAX/ULTRIX and Suns).
In a word: DON'T! We have used Modula-2 a lot in our laboratory for
constructing a multi-sensor testbed to do high performance image
processing, synthetic aperture radar processing, and other applications.
Modula-2 has worked beautifully for this: it's clean, simple, elegant,
etc. Most of these prototypes are in the 50,000 to 100,000 lines of
code catagory.
We are also a large aerospace contractor which provides defense systems,
electronic systems, and spacecraft systems to the government. Needless
to say, more and more of this work is in Ada. We have a need for Ada
trained systems programmers as do many other defense contractors.
I would much prefer to hire people trained thoroughly in Modula-2
before we hit them with Ada. Why? As a hiring manager, I want my
young people to know how good it can be before I show them how bad
it can get. I do not want universities damaging their minds any more
than necessary before I hire them.
While many parts of Ada are useful, much of it is unnecessary for
teaching basic concepts, particularly, in something like CS-1 or
CS-2 (I'm assuming that these are entry level courses). If you really
must teach Ada, do it after they have a solid foundation - not when
their minds are soft and tender. I am not anti-Ada. Ada is a real
advance in software engineering when compared to assembly language
and Fortran which is still widely used on defense systems. I have
argued that Modula-2 is the subset of Ada that Ada should have been
before committees and contractors realized that they could get
rich from it. Sigh.
--
-- Roger Vossler
TRW, Bldg O2-1395, One Space Park, Redondo Beach, CA 90278
BIX: rvossler UseNet: dragon@trwspf.trw.com
ATT: 213.535.2804 ....!trwrb!trwspf!dragon
ecragg@GMUVAX.GMU.EDU ("EDWARD CRAGG") (05/14/88)
> Date: Thu, 12 May 88 09:44:03 PDT > From: pattis@june.cs.washington.edu (Richard Pattis) > Subject: Ada Compiler for Educational Use > > I have been teaching the CS-1 and CS-2 courses here at the University of > Washington in Modula-2 for the past 4 years. I am now strongly considering > teaching Ada in these classes. I would like to solicit recommendations for > compilers: we use a large VAX/VMS for instruction, but will also ultimately > need compilers for our own department's machines (mostly VAX/ULTRIX and Suns). > I am looking for a system with short compile times and good error diagnostics; > fast run times are not as important. We typically have 20-40 students logged > on at once. Also, I am interested in other language related tools, such as > language sensitive editors, debuggers, and profilers. I hope to direct the > Computer Center while it examines a few compilers early in the summer, and > then choose one for use this Fall. I'd appreciate any relevant comments. I have used DEC Ada, TeleSoft Ada, VERDIX Ada, and the ALS/N CAB all under VAX/VMS. If you have the funds, DEC Ada gives by far the most detailed diagnostic messages and has the best librarian. Furthurmore, its documentation is superb, if expensive (LRM @ $50, Developing programs guide @ $25, and Runtime guide @ $25). Finally it is fully integrated with both the DEC Debugger and Performance Coverage Analyzer. I have found that class room demonstrations using the debugger have been most effective both in showing execution and showing the effects of optimization. It would be my system of choice. TeleSoft Ada did not do anything. I ended up canceling the class 1/2 way through the course because it was so poor. The TeleSoft reps were not very helpful either which bothered me because were were a cash customer -- paying $15K as I recall. I recommended that we attempt to get a refund, but the powers that be chose not to. Verdix was so vanilla that it left no real impression. We tested a VADS for several weeks, and got programs running but we did not pursue the system furthur. As best I remember the documentation was not the best and it took quite a few false starts to get the programs running. Since we were running test programs which had been developed under other systems, we did not have many diagnostics. The ALS/N CAB is the system we are using, for funding reasons. (Its hard to beat $75). My biggest criticism is the quality of the diagnosic messages and the interpretation of how TEXT_IO GETs and PUTs are interlaced. (They are interlaced at the line level, rather than at the character level). This latter problem we are resolving by writing an IMMEDIATE_IO package which does what its name implies by calls to QIO. The July release is advertised to include an interactive debugger. ------------------------------------------------------------------------------- Edward E Cragg Bitnet: ECRAGG@GMUVAX Internet: ECRAGG@GMUVAX.GMU.EDU
wes@obie.UUCP (Barnacle Wes) (05/15/88)
First, let me explain that my only experience with Ada in a production environment was with VAX Ada in 1985-1986. It was used on an 11/785 with 9 meg of ram, during minimal-load time (0100-0600). In article <8805121644.AA02786@june.cs.washington.edu>, pattis@JUNE.CS.WASHINGTON.EDU (Richard Pattis) writes: [...] > I am now strongly considering teaching Ada in these classes. I would > like to solicit recommendations for compilers: we use a large VAX/VMS > for instruction, but will also ultimately need compilers for our own > department's machines (mostly VAX/ULTRIX and Suns). I am looking for > a system with short compile times and good error diagnostics; fast run > times are not as important. VAX Ada wins on good diagnostics and good (reasonably good) run-times. Compile times on the 785 mentioned above were abysmal; 20-30 lines per minute were about the average. > We typically have 20-40 students logged on at once. If you're going to have all 20-40 of them using VAX Ada, you'd better have an 8700, with lotsa memory. > Also, I am interested in other language related tools, such as > language sensitive editors, debuggers, and profilers. DEC has a software development environment of some sort; it includes LSE (Language Sensitive Editor - cute, eh?) that is very good. There is a key sequence which will read the word the cursor is in and then see if it can find a 'standard library' routine with that name. If it does, it will insert a prototype call to the routine into the source for you. It works really nice with C, I haven't tried it on Ada. Of course the VAX/VMS debugger works with VAX Ada. I don't know about an Ada (or VMS) profiling tool.
IVANOVIC%VAXR@CIRCUS.LLNL.GOV ("Vladimir Ivanovic, x3-7786") (05/17/88)
pattis@june.cs.washington.edu (Richard Pattis) asks for comments on Ada compilers. I am using DEC's Ada compiler running under VAX/VMS , its librarian (ACS), the Source Code Analyzer (SCA), the Language Senstitive Editor (LSE), and the symbolic debugger (DEBUG). The error messages from the compiler are excellent, the best I have ever seen. From within LSE, the compiler will very often attempt a correction of some simple syntactic error, like adding a semi-colon, adding a terminating END IF, or a missing BEGIN. Surprisingly, it is seldom wrong. Errors due to mismatched argument types are also quite good. The compiler tells you which procedures it has checked with which arguments of what type and why it has rejected those attempts at overload resolution. In every case, references to the paragraphs in the LRM which are relevant to the error message are given. LSE knows Ada syntax and will generate stubs for every construct. What it generates is actually user-modifiable, so it's possible to add local coding conventions. Compiler generated machine language code is available, tied to the original source lines. This is a feature I feel is mandatory for any compiler to be called of professional quality. It allows one to distinguish between very subtle bugs in your code, or genuine compiler bugs. The Source Code Analyzer allows almost instant access to every occurrence of an identifier, sorted by whether it is a declaration, a read reference or a write reference. Call trees and inverted call trees can be generated. The full power of SCA is available from within LSE. The debugger is actually language independent. It behaves the same way when you are debugging a routine written in any DEC-supported language. DEC uses the fact that their compilers generate code that follows the VAX/VMS Calling Standard as well as a symbol table convention to permit languages to call routines written in other languages transparently. The debugger does know about features that are particular to Ada, like multi-tasking. It is possible to set break points on task events like TERMINATED or RUN or RENDEZVOUS_EXCEPTION. Naturally, the debugger is a source line, symbolic debugger. You can execute debugger commands on every break, whenever a variable is modified, whenever a particular address is accessed or whenever a particular class of intstruction is used. Effectively you have debugger-aware language. With a little work, it is possible to create an environment where the edit, compile, link and debug cycle is quite fast. I keep one process around for the edit/compile portion and another for the link/debug. One keystroke allows me to switch between them. It's not as integrated as say the Lightspeed Pascal environment is on the Macintosh, but I find it quite good. I'd be hard pressed to suggest improvements, except for the obvious lack of cut and paste between processes/windows. (I have a VaxStation 2000.) I actually cross-compile my programs to a VAXELN machine. (VAXELN is a distributed, real-time operating system toolbox for VAXs that DEC sells and supports.) So I compile, link and use the debugger from one node and run the program on another. A few switches and the operations I do are essentially identical to the single node, vanilla VMS version. I have no hesitation in recommending DEC's Ada system. However, understand that quality is expensive, though DEC does have an educational discount. -- Vladimir
dd@sei.cmu.edu (Dennis Doubleday) (05/20/88)
In article <233@obie.UUCP> wes@obie.UUCP (Barnacle Wes) writes: >First, let me explain that my only experience with Ada in a production >environment was with VAX Ada in 1985-1986. It was used on an 11/785 >with 9 meg of ram, during minimal-load time (0100-0600). >VAX Ada wins on good diagnostics and good (reasonably good) run-times. >Compile times on the 785 mentioned above were abysmal; 20-30 lines per >minute were about the average. This was not at all my experience with DEC Ada on a VAX 11/785. Typical compilation times were in the range 600-1500 lpm depending on the complexity and size of the code being compiled. Perhaps somebody at your site didn't set system parameters correctly and you ended up doing a lot of paging? I love the DEC ACS environment; too bad it's not available under Ultrix. -- Dennis Doubleday dd@sei.cmu.edu Software Engineering Institute (412)268-5873 Carnegie Mellon University Pittsburgh, PA 15213
gail@telesoft.UUCP (Gail Potts @spot) (05/20/88)
In response to a recent note posted by Ed Cragg, TeleSoft would like to clarify what Ed's experiences were. Ed stated that "TeleSoft Ada did not do anything." After checking our files, it was determined that Ed was using TeleSoft Ada from four years ago. Since that time, TeleSoft has released our second generation technology, TeleGen2. TeleGen2 is a completely different product line than the product that Ed based his comments upon. Ed further commented that "The TeleSoft reps were not very helpful either". I cannot speak to Ed's personal experiences of four years ago, but I would like to state that today, TeleSoft has a dedicated Customer Support department which has helped customers write and debug applications encompassing millions of lines of code. Thank you for allowing me to indulge in this clarification. Gail Potts TeleSoft Customer Support (619) 457-2700