home *** CD-ROM | disk | FTP | other *** search
- From: Lutz Prechelt <prechelt@ira.uka.de>
- Subject: v02i013: crefine - (Ver. 3.0) C language extension, Part00/06
- Newsgroups: comp.sources.reviewed
- Approved: csr@calvin.dgbt.doc.ca
-
- Submitted-by: Lutz Prechelt <prechelt@ira.uka.de>
- Posting-number: Volume 2, Issue 13
- Archive-name: crefine/part00
-
- Environment: any C environment
-
- Tested Environments:
- HP9000/425s running HP-UX 7.05 with the 7.40 C compiler.
- DecStation3100 (and 5100) - Ultrix 4.2 (gcc)
- NextStation - NextStep 2.0 (cc)
- Sequent Symmetry DYNIX 3.1.4
- Opus Systems PM-417 (88000 @ 25MHZ) Unix System V r3.2
- Data General AV4620 (88000 @ 33MHz) Unix System V r4 (DG/UX 4.1)
-
- Dates:
- Submission Received: May 8 1992
- Returned by Moderator: May 8 1992
- Revised Submission Received: May 13 1992
- Reviews Returned: June 10 1992
- Revised Submission Received: June 12 1992
- Accepted: July 7 1992
-
- Author's Summary:
- -----------------
-
- C-Refine is a preprocessor for programs written in C or C++ or a
- similar language. It introduces an additional language construct
- called 'refinement' which allows further decomposition with symbolic
- names inside functions. This makes programs much easier to read and
- modify and is very comfortable for programming.
-
- We also call these extended languages C-Refine (or C++-Refine, and so
- on). The C-Refine preprocessor converts programs written in C-Refine
- into plain C, and programs written in C++-Refine into normal C++, and
- programs written in Objective-C-Refine into normal Objective-C, and so
- on. The preprocessor is much faster than a C compiler, so it will not
- unbearably slow down the overall compilation process.
-
- The installed system consists of a single executable file (crefine)
- and one Unix Manualpage (crefine.1). An additional driver shell script
- (ccr) plus Manualpage are also provided. No further data files or
- libraries except the standard C library are needed.
-
- C-Refine is completely portable to all machines that have a standard
- C library. It should readily compile at least on all ANSI-C machines,
- all standard BSD-Unix machines and standard System V machines.
-
- If #include <strings.h> fails, change it to #include <string.h>
- If #include <string.h> fails, change it to #include <strings.h>
-
- Environments where C-Refine already once worked:
-
- Machine Operating System (and perhaps Compiler)
- ------- ---------------------------------------
- Apollo DN3xxx DOMAIN/OS SR10.3 BSD (ANSI C 6.8)
- Apollo series 400 DOMAIN/OS SR10.3 BSD (ANSI C 6.8)
- Atari ST OS-9/68000 V2.3
- AT/386 ISC Unix 3.2.2 (GNU C 1.39)
- AT/386 SCO Unix 3.2.2 (cc or GNU C 1.40 without optimization)
- AT&T 3B2 System V
- Commodore Amiga AmigaOS 1.3 (DICE 2.06.33)
- Convex C2 Convex OS
- DECstation 3100 Ultrix 4.1
- DG Aviion 4620 System V r4.1
- Next 68040 NextStep 2.0
- Opus System PM-417 System V r3.2
- PC etc. MS-DOS 3.2 (Microsoft C 5.0)
- PC etc. OS/2 Vers. 1.3 (Microsoft C 6.0)
- PCS (type???) some System V
- Sequent Symmetry DYNIX 3.1.4
- Sun3 SUN-OS 3.5
- Sun3,Sun4 SUN-OS 4.03
- Sun3,Sun4 SUN-OS 4.1
- VAXstation 3250 Ultrix-32 V3.1
-
-
- Reviewers' Comments:
- --------------------
-
- This program may be of some use in a teaching environment or a prototyping
- shop since it allows programs to be developed in a top-down way.
-
- Compilation was effortless and the man pages were very readable.
-
- This software was tested on a HP9000/425s workstation running HP-UX 7.05.
- There were no compilation problems.
-
- There was one small bug in the man page which meant that the example
- program couldn't be cut and pasted blindly. The test examples from the
- man page compiled and ran correctly after fixing the "\n" bug on line
- 347 of the unformatted man page.
-
- This is a nice, recommended package. It will be interesting to see if this
- ideas catches on in the real world.
-
- ------------------------------------------------------------------------------
-
- This program help a user get away from the irritating details of C
- programming, atleast for a while, and concentrate more on the algorithm
- part.
-
- Compilation was smooth, the man pages, as noted above, were also very
- good.
-
- Machines this software was tested on were DecStation and Next. There
- were no problems encountered as far as either compiling, or making the
- program do it's job were concerned. (OSs: Ultrix 4.2 and NextStep 2.0).
-
- Apart from the list of bugs given by the author, there were no
- limitations found.
-
- This package is highly recommendable. Congratulations to the author on
- a job well done.
-
- ------------------------------------------------------------------------------
-
- The package unpacked and compiled without errors or glitches. The
- documentation is adequate, and it ported between the two platforms
- without problem. I have a concern or two about the makefile, but they
- are matters of taste. The package seems to work (I couldn't break it
- easily :-) so I think its ready to go as it is.
-
- exit 0 # Just in case...
-