Catalog · How the catalog works
IP-Pascal
IP Pascal compiler
- ★ 5 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
********************************************************************************
PASCAL COMPILER
********************************************************************************
Notes from 2025/09/14 push
IP Pascal is a large system for Pascal language used from about 1993 to 2010.
Its a very complex, but well structured and well commented compiler. It
continued on the original compiler created in 1980, but it is written in Pascal
itself. The language of IP Pascal started with ISO 7185 Pascal and included a
modest number of extensions, most importantly
-Modularity
-Container arrays of any length.
Based on IP Pascal, a new level of extensions for Pascal was created called
"Pascaline". IP was partially converted to Pascaline, but it remains a 32 bit
x86 compiler. The language Pascaline is currently being implemented in
Pascal-P6, which is in another archive in this repo. The plan is that after
Pascal-P6 implements all of Pascaline, that this more extensive compiler will
be updated to that language as well.
IP Pascal is a different kind of compiler. It outputs code directly to a binary
file that can be linked. This is far faster than going through an assembler, but
also much more complex.
There is also an assembler and linker that goes with IP Pascal. In addition,
IP Pascal has a lot of support programs that will end up running under Pascal-P6
I am sure. It has a compiler integrator (pc), a graphical IDE, and a ch2ph or
C header to Pascal header convertor that I am sure will also find its way to
Pascal-P6.
********************************************************************************
ch2ph
check_encoder
common_headers
common_libraries
c_parser
document
dump_intermediate
encoder
ibmpc_platform
ide
installer
parser
pc
pretty_printer
readme.txt
simulator
test
unix_platform
windows_platform
Last updated 2010/04/18
The Pascal compiler is the successor to the Z80 compiler created in 1980. The
compiler and its support tooling, which is extensive, lies here. However it also
relies heavily on the assembly language toolset, which is located elsewhere.
At this writing, the compiler supports 80386 and up processors, Windows, linux
and standalone environments.
================================================================================
CONTENTS OF PASCAL COMPILER AREA
================================================================================
readme.txt - This file.
c_parser - Contains a front end only for the C language. This was used
as the basis of the ch2ph tool. A dead project now, since
there is no intention of integrating C into the IP
platform.
ch2ph - Contains a converter for C header files to Pascal header
files.
check_encoder - Contains the check encoder. This is an obsolete program
that was used to bring up the first I80386 compiler. It
will not be developed further.
common_headers - Contains a series of header files for common library
components. No actual code is contained, just header files.
The names will be the same as various modules around the
system.
common_libraries - Contains several support libraries for pascal that are not
machine dependent, such as paslib, strlib and several
others.
document - Contains the compiler manual, various documents.
dump_intermediate - Intermediate dump program. This is a utility to produce a
formatted of Pascal intermediate files.
encoder - Contains the production encoder. The encoder is presently
targeted at I80386 and up CPUs. However, it is general
purpose and will be extended.
ibmpc_platform - Contains facillities to run Pascal directly on the IBM-PC
as an embedded program. Note this is not for MS-DOS.
ide - Contains the integrated development environment for Pascal.
installer - Contains the graphical installer for Pascal.
parser - Contains the front end for the compiler.
pc - Contains pc, which is the command line tools integrator for
Pascal. It calculates a dependency tree for a program, and
runs all of Pascal utilities.
pretty_printer - The start of a prettyprinter program for pascal (not
operational).
simulator - Contains the CPU independent intermediate code simulator.
This was used during compiler bring up and is obsolete.
However, it will be modernized and used as a debug
facility later.
test - Contains various testing files, including the test suite.
Note however, that several programs use their own testing
programs in the same directory as the program.
unix_platform - Contains the support library implementation for Unix/Linux.
windows_platform - Contains the support library implementation for Windows.
================================================================================
Common methods and procedures used here:
================================================================================
build.bat - Build program(s) in the given directory
update.bat - Copy binaries and any other data to the run tree and release tree
clean.bat - Remove transient (automatically built) files
Each directory has a "build.bat" file that will cause the main program in the
directory to be built. Each directory also has an "update.bat" file that copies
the binaries and any assocated files to the IP run area, usually c:/ip/...
Most directories have a readme.txt file that explains more about the specific
program the directory contains.
