home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD2.mdf
/
c
/
preproz
/
readme.doc
< prev
next >
Wrap
Text File
|
1990-03-27
|
11KB
|
245 lines
JRCPP README FILE (3/27/90)
James Roskind C Porting Preprocessor
(Full ANSI C Preprocessor)
Copyright (C) 1990 James Roskind, All rights reserved. Permission
is granted to copy and distribute this file as part any machine
readable archive containing the entire, unmodified, JRCPP PUBLIC
DISTRIBUTION PACKAGE (henceforth call the "Package"). The set of
files that form the Package are described in the README file that
is a part of the Package. Permission is granted to individual
users of the Package to copy individual portions of the Package
(i.e., component files) in any form (e.g.: printed, electronic,
electro-optical, etc.) desired for the purpose of supporting
users of the Package (i.e., providing online, or onshelf
documentation access; executing the binary JRCPP code, etc.).
Permission is not granted to distribute copies of individual
portions of the Package, unless a machine readable version of the
complete Package is also made available with such distribution.
Abstracting with credit is permitted. There is no charge or
royalty fee required for copies made in compliance with this
notice. To otherwise copy elements of this package requires
prior permission in writing from James Roskind.
James Roskind
516 Latania Palm Drive
Indialantic FL 32903
End of copyright notice
What the above copyright means is that you are free to use and
distribute (or even sell) the entire set of files in this Package,
but you can't split them up, and distribute them as separate files.
The notice also says that you cannot modify the copies that you
distribute, and this ESPECIALLY includes NOT REMOVING the any part of
the copyright notice in any file. JRCPP currently implements a C
Preprocessor, but the users of this Package do NOT surrender any
right of ownership or copyright to any source text that is processed
by JRCPP, either before or after processing. Similarly, there are no
royalty or fee requirements for using the post-preprocessed output of
JRCPP.
This Package is expected to be distributed by shareware and freeware
channels (including BBS sites), but the fees paid for "distribution"
costs are strictly exchanged between the distributor, and the
recipient, and James Roskind makes no express or implied warranties
about the quality or integrity of such indirectly acquired copies.
Distributors and users may obtain the Package (the Public
distribution form) directly from the author by following the ordering
procedures in the REGISTRATION file.
DISCLAIMER:
JAMES ROSKIND PROVIDES THIS FILE "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM AND DOCUMENTATION IS WITH YOU. Some states do not allow
disclaimer of express or implied warranties in certain transactions,
therefore, this statement may not apply to you.
UNIX is a registered trademark of AT&T Bell Laboratories.
---------------------------------------------------------------------
JRCPP README FILE
James Roskind C Porting Preprocessor
(Full ANSI C Preprocessor)
TABLE OF CONTENTS
DEFINITION OF JRCPP PUBLIC DISTRIBUTION PACKAGE
WHY IS JRCPP USEFUL FOR DEVELOPERS?
WHAT IS THE DIFFERENCE BETWEEN JRCPP AND JRCPPCHK?
WHY IS ONLY JRCPPCHK DISTRIBUTED PUBLICLY?
DEFINITION OF JRCPP PUBLIC DISTRIBUTION PACKAGE
This is the main README file for JRCPP. The JRCPP PUBLIC
DISTRIBUTION PACKAGE consists of the 8 files:
README.DOC This file
REGISTER.DOC How to become a registered user
USERS.DOC User's Reference Manual
LANGREF.DOC Language Reference Manual
DIAGNOST.DOC Diagnostics Reference Manual
REFGRAM.Y Reference grammar for JRCPP
JRCPPCHK.EXE Executable version of JRCPP
The above list constitutes the entire "Package", as described in the
copyright notices. Users are invited to redistribute the above list
of files as a whole (typically in some compressed archive format).
This includes placing the set of files on a BBS, or distribution by
commercial or non-commercial means.
WHY IS JRCPP USEFUL FOR DEVELOPERS?
Although the ANSI C standard has been approved, very few compilers
are fully ANSI compliant (so far). Worse than than, even fewer have
ANSI C compliant preprocessors (but there seems universal acclaim
that support of all of the ANSI C standard is a high priority on
every compiler vendor's wish list). Rather than waiting for your
compiler to evolve to the generally more portable ANSI standards, you
can begin TODAY to use all the features of ANSI C preprocessing, with
the confidence that your code will be portable through tomorrow's
compilers. One step in this process is to begin to use ANSI C macro
definitions and coding conventions.
With the belief that ANSI conformant code is highly desirable
(including the preprocessing macro definitions and expansions), the
next point to address is why you should use JRCPP. First and
foremost it is available TODAY. Second, as a shareware offering, it
provides exceptional price/performance ratios. Finally, JRCPP offers
exceptional performance in a number of areas, independent of price.
The following list surveys these advantages.
The extensive diagnostic message set (over 170 distinct messages)
tends to pinpoint causes and locations of errors in the preprocessor
phases of C translation. Simple examples include:
1) Detecting /* within a comment. This typically is caused by
accidentally forgetting to terminate the previous comment, and
can (without such diagnostics) be VERY hard to locate.
2) Failure to close a #if with a #endif is diagnosed with the
line number corresponding to the #if (and NOT simply with the
message "unexpected end of file").
There are very few static limits in JRCPP. This tends to allow very
complex macro expressions to be evaluated. The only restriction is
available memory, and this is generally not a restriction under OS/2.
Full support of ANSI C preprocessing constructs are provided (as
opposed to some subset, plus some excuse by the vendor of the
compiler.) Since the preprocessing of C source code is separable from
compilation as a whole, JRCPP can be used with any existing C
compiler as a "front end" preprocessor.
Extensively customizable features provide compatibility with most
existing preprocessors, and hence provide a migration path towards
more portable ANSI C code. Customization of the diagnostic system
also supports the easy separation of "wheat from chaff" in diagnostic
listings.
For additional reasons, and details of the above reasons, see the
JRCPP USERS MANUAL.
WHAT IS THE DIFFERENCE BETWEEN JRCPP AND JRCPPCHK?
A registered user receives several versions of JRCPP. These include
highly optimized versions, target/platform specific versions,
versions to assist in providing problem (bug) reports, etc. All
versions are fully functional, but some provided superior assurances
of correctness, while others provided superior execution time.
JRCPPCHK is a version that provides the greatest assurance of
correctness (it has massive internal checking). Assuming there are
no bugs in the implementation of JRCPP, and there are no bugs in the
compilation and linking (i.e., building) of JRCPP, then JRCPP and
JRCPPCHK should provide identical preprocessing results (i.e.,
JRCPPCHK is NOT a crippled version of JRCPP).
As noted, the version of JRCPP that is distributed with this Package
has several distinctive attributes. These restrictions are NOT
fundamental to the product, but simply allowed for the widest
distribution of a competent product. See the REGISTER.DOC file for
details of other versions. The following are the restrictions on
JRCPPCHK:
1) It is a bound OS/2 and MSDOS executable. Hence it should run
under DOS 3.x and greater, as well as OS/2 1.1 and later.
2) It was compiled for use on 80286, 80386, and 80486 platforms.
It may not run on 8088 based platforms. (Registered users can
obtain an 8088 based version).
3) It contains "assertions". The assertions provide extensive
internal error checking. The presence of these assertions slows
execution by 33%, and increases the size of the executable's code
by 20%. These assertions also tend to guarantee reliable
software despite the fact that this is a beta release!
4) When JRCPPCHK.EXE is executed, the banner displayed on stderr
should include: "ASSERT checking is active". The presence of
this message distinguishes this executable from other versions
that are supplied ONLY to registered users.
WHY IS ONLY JRCPPCHK DISTRIBUTED PUBLICLY?
The decision to distribute JRCPPCHK as part of the public
distribution package was based on the following thoughts:
1) Since JRCPP is a new product, releasing the heavily "asserted"
JRCPPCHK during beta phases can prevent the tarnishing of the
product name. The use of JRCPPCHK is simply a conservative
selection, that poses a mild performance penalty.
2) If all the versions that were planned for release were placed
in the public collection, the collection might be too big for
most BBS systems to sponsor it, and too big for most users to
download it. This reason precluded supplying multiple versions.
3) By giving users a full function product with a slight
performance degradation, they might be more motivated to register
and obtain newer releases, with superior performance (but the
same quality).
If you have any comments on the above decisions for public release,
please feel free to submit them for consideration. Distributing
shareware is a very "nonclassical" means of product marketing and
dissemination, and input from users can prove most valuable. The
goal is to provided a very high quality product, obtain payment for
the author, and save the user money by eliminating the cost of
marketing and distribution channels. If you could direct your
comments towards these three goals, they would prove most interesting.
Thank you for your interest and support.
James Roskind
516 Latania Palm Drive
Indialantic FL 32903
(407)729-4348
jar@ileaf.com
or
...!uunet!leafusa!jar