Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

IP-Pascal

IP Pascal compiler

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

text
********************************************************************************

                                  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.