From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,15890893c0618a8a X-Google-Attributes: gid103376,public From: "David Sanderson, IV" Subject: Re: [Q] Tools for Ada Quality and Style Date: 1996/04/30 Message-ID: <4m5159$hgk@neon3.neonramp.com> X-Deja-AN: 152223533 references: <9604172134.AA27114@eight-ball> <767968529wnr@diphi.demon.co.uk> <4ltjat$dao@parlor.hiwaay.net> <4m3ouj$b0p@inferno.mpx.com.au> content-type: text/plain; charset=us-ascii organization: Nebraska On-Ramp, Inc. mime-version: 1.0 newsgroups: comp.lang.ada x-mailer: Mozilla 1.1N (Windows; I; 16bit) Date: 1996-04-30T00:00:00+00:00 List-Id: pdmillik@mpx.com.au (Peter Milliken) wrote: >Robert Dewar (dewar@cs.nyu.edu) wrote: >: Bob Crispen was looking for pretty printing tools to enforce a standard. >: >: I must say I do not like this approach. For uniform style rules to work, >: everyone has to buy into them, and buying into them means getting >: completely familiar with them and not considering writing code in any >: other style. >: >: If you rely on pretty printing tools, then there is a danger of continuing >: to foster a sloppy attitude to the style rules. >: > >: I *do* like tools that enforce style rules, to the extent that this is >: possible. Many style rules are simply too indefinite to enforce >: mechanically. >: > >If I understand you correctly here, it would perhaps be best to use/provide >tools that encourage the chosen style to be easily implemented at the >point of entry by the programmer rather than providing a 'clean-up' >utility after the fact. Such a tool is Language Sensistive Editting a la >DEC's LSE editor. It reduces program entry (largely) to "filling in the >blanks" ie the program structures are generated automatically (minimal >keystrokes anyway) by the editor and the programmer basically types in >the variable names and chooses the appropriate code structures along the >way. I have used LSE on an Ada project and provided I stuck to using the >language templates I had no style problems or semantic errors. Please do >not confuse the method that DEC have chosen for LSE'ing with the >"primitive" method provide by the Emacs ada-mode, DEC's method is far >superior and easier to use. > >>From experience on several projects now I have found that people either >love true LSE or hate it, it seems to end up being one of those >"religious" areas that programmers seem to develop about their work >habits and tools (witness the great editor wars that have been fought over >the years :-)). > > >-- >--------------------------------------------- _--_|\ | >Peter Milliken (pdmillik@mpx.com.au) / \ | >CAE Electronics (Australia) Pty. Ltd. \_.--._/ | >120 Silverwater Rd, Silverwater, N.S.W., 2128. v | I too used DECs LSE and loved it. At one time I considered myself an LSE / TPU (if I remember correctly LSE is built upon TPU) wiz! In fact, LSE is part of a tool suite (VAXSET) that includes CM, and other tools (sorry it has been 5 years since I used them and don't remember all the parts to DECs VAXSET). All that changed when we started using Rational's Apex. While the product is a bit pricey, from a software engineer's point- of-view it is worth every penny. The tool provides a nifty automatic pretty printer, but that is just the start. As you develop code it will, just by clicking a subroutine call and giving the command "Visit" it will bring up an editor window, if necessary, with the called subroutine visible. CMVC is built in so if you can check on a module's status (uncontrolled, checked in, or checked out and by whom). If you request to edit a given file and it is currently checked out then it will notify you. If it is not checked out then it will give you a dialog box (form) to fill out to check out the given file(s). The Apex debugger is no slouch either. You debug right from the edit windows. Step into a module and it brings up another edit window placing you directly into that module. You can do just about anything while you debug. Apex is also customizable so if you want to enhance a part of it (e.g. the check in/out dialog box) you can do it or have Rational do it. If your target is another compiler or another OS, Apex provides the Rational Compilation Integrator (RCI). We used RCI to produce VERDIX Ada code on our host hardware for a year and it worked well (VERDIX is owned by Rational now and is utilized as Apex's compiler). RCI allows you to develop code in the Apex environment where you can do syntactic and semantic checks. Analyze and Code is actually performed by the target compiler on the target hardware. RCI maintains your software integrity from the host to the target environments for you. Apex has a built-in Ada 83 compiler that does syntactic and / or semantic and / or analysis (produces a DIANA tree) and / or actual code (produces the DIANA tree and object code). The version that we are currently using has an Ada 95 compiler that only does syntactic and semantic checking for now. Sound like a Rational commercial... sure, but this is one satisfied Rational customer. BTW, Rational does produce or distribute a suite of development tools that work WITH Apex. These include, but not limited to: Testmate (test development and code coverage analyzer), Rose (object diagramming), X / Motif bindings, and Ada Analyzer (coding standards conformance). Most of these tools do work on a variety of platforms. ------------------------------------------------------------------- As long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem and now that we have gigantic computers, programming has become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them -- it has created the problem of using its product. E.W. Dijkstra Turing Award Lecture, 1972