Dec 242017
Con-current Pascal Compiler -- very interesting, but not complete.
File COPASCAL.ZIP from The Programmer’s Corner in
Category Pascal Source Code
Con-current Pascal Compiler — very interesting, but not complete.
File Name File Size Zip Size Zip Type
COPASCAL.000 48896 21607 deflated
COPASCAL.001 30336 13832 deflated
COPASCAL.COM 13861 10160 deflated
COPASCAL.DOC 3545 1476 deflated
COPASCAL.LIS 9698 1792 deflated
COPASCAL.PAS 14785 4651 deflated
HEADER.MOD 3707 1382 deflated
INIT.MOD 6903 2153 deflated
INSYMBOL.MOD 5504 1398 deflated
INTERPT.MOD 15747 4090 deflated

Download File COPASCAL.ZIP Here

Contents of the COPASCAL.DOC file

C o - P A S C A L v2.0

CP/M & MS-DOS implementations by : Charles Schoening
4012 Fulford St.
Olney, MD 20832

I. Notes about the Co-Pascal Compiler

Co-Pascal is an extension of the Pascal-S
compiler (itself a subset of Pascal)
developed by Nikalus Wirth. Modifications
to the Pascal-C compiler were suggested by
M. Ben-Ari in Principles of Concurrent
Programming and implemented on a DEC VAX by
Barry Burd of Drew University. I enhanced
and modified the code to run under CP/M and
MS-DOS. Co-Pascal is written in Pascal and
optimized to run under Turbo-Pascal(tm).

Co-Pascal currently provides an excellent
environment for experimenting with
concurrent programming. It's well suited
for designing and testing of algorithums,
but it is not a full Pascal compiler and
does have some unfortunate restrictions.
For this reason, hoping that users will
enhance and update the compiler, and because
it a good chance to tinker with a compiler,
I am providing the Co-Pascal compiler in
its source code.

II. List of Known Problems and/or Limitations of Co-Pascal

Some features common to other Pascal compilers are not
available in Co-Pascal.

Record types are not properly handled; no error or
warning message is issued. This improper handling
of record types MAY apply only to the use of record
types with the functions WAIT and SIGNAL.

Standard Features NOT supported :

. Sets, including the 'IN' operator
. GOTO and label's.
. Pointers
. the 'INPUT' parameter is required in EOF and EOLN
function calls (i.e. EOF(INPUT) ).
. File I/O is not yet available. The READ/WRITE
procedures for data files are currently under

The following limit values are in effect:

. 10 characters in identifier names
. 200 lines of output
. CP/M: 2 concurrent processes
MS-DOS: 4 concurrent processes
. Memory limitations dictate a fixed maximum number of
procedures which can be executed concurrently at any
one time. This number is operating system dependent.
- CP/M : Limit of 2 concurrent processes
- MS-DOS: Current limit of 4 concurrent processes.
Presumably, this could be increased if

Some of the above limits may be changed in the constant
declaration area of the source code.

There may be a limit on the number of lines in a source
program (I'm not sure).

Pre-declared functions :

RANDOM(I) : returns a random INTEGER X such that 0 <= X <= I

III. Operating the Compiler

Command line syntax is : FNAME /X*

where FNAME is a legal file name with the .TYP optional
and the option is one of the following :

C :: compile the source code to P-code
E :: execute a previously compiled P-code
D :: compile and then execute

* is an optional flag to display debug information

 December 24, 2017  Add comments

Leave a Reply