home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
prgramer
/
pascal2c
/
readme
< prev
next >
Wrap
Text File
|
1992-08-03
|
3KB
|
68 lines
This directory contains "p2c" version 1.20, a Pascal to C translator.
"p2c" Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
Written and maintained by: Dave Gillespie
256-80 Caltech
Pasadena CA 91125
daveg@csvax.cs.caltech.edu, cit-vax!daveg
This program is distributed under the terms of the GNU License Agreement.
See the file src/COPYING for details.
The GNU License Agreement restrictions do _not_ apply to code generated
by p2c, nor to the p2c run-time files "p2clib.c" and "p2c.h".
The "examples" subdirectory contains a few sample Pascal programs and
a Makefile to translate and compile them.
HP Pascal Workstation System users will want to copy all of .\hp\include
into the p2c include directory (\emx\include), and copy all of .\HP\import
into the p2c home directory (\emx\p2c). You will have to write emulations
for the functions you use out of these modules.
!!! Incomplete interface texts for standard Turbo units are !!!
!!! included in turbo.imp. Turbo users will have to flesh these !!!
!!! out and write emulations for whatever parts of the Turbo runtime !!!
!!! library they need. !!!
If you wish to edit various system-wide configuration parameters, it is
better to put them in \emx\p2c\loc.p2c than in \emx\p2c\p2crc. As an
example, on a Turbo-oriented environment you may wish to add
Language Turbo
to the \emx\p2c\loc.p2c file to replace the normal default (HP Pascal).
PORTABILITY
P2c was originally developed on a homebrew C compiler on the HP Pascal
Workstation operating system. Current development takes place on HP-UX,
which is System V based. The translator has also been compiled and used
on Sun-3's, so presumably it is fairly portable among 32-bit Unix machines.
Many parts of the code will have to be adjusted in order for p2c to work
on a machine with 16-bit ints. I have never had reason or opportunity to
track these down since I don't have access to such a machine. Please note
that code _generated_ by p2c works with either size of int even though p2c
itself does not.
If your compiler supports ANSI prototypes, most of the 16-bit portability
problems will go away except for possible %d/%ld sloppiness in sprintf control
strings. There may be places where p2c tries to cast a pointer into an
int, but I believe all such cases use longs consistently. You will have
a problem if your long type is not large enough to store a pointer.
Because p2c was developed to run under Unix, it is sloppy about memory
allocation. Some data structures are allocated but never freed. Profiles
show that the waste is not too great in most cases, but if it is a problem
you may have to write a garbage collector (this shouldn't be too hard if you
only run the collector after translating each procedure).