Pascal-P5 Open source/Public domain project
Hi and welcome to the project. This is the GIT public depository for Pascal-P5. You will find the web page for Pascal-P5 at:
http://www.standardpascal.org/p5.html
Pascal-P5 is the compiler created by Nicklaus Wirth's group in ETH, Zurich, for the revised edition of the Pascal language. It was used as the basis for several compilers, and exists here updated to the ISO 7185 Pascal language
standard.
Pascal-P was a series of compilers starting at Zurich. The last of the series from Zurich was the Pascal-P4 compiler, which is available at:
http://www.standardpascal.org/p4.html
It compiles and runs a subset of the Revised Pascal language. That subset was designed to be the minimum language required to self compile for a new machine implementation. It was part of a "bootstrapping" kit designed to facilitate porting Pascal to new machines.
Pascal-P5 is the next increment beyond Pascal-P4, and is extended to include all of the ISO 7185 Pascal language, as well as incorporate a series of ISO 7185 Pascal test services. It also includes the ability to self compile "out of the box", that is, it can compile and interpret itself as is (with only a few one line changes), something the original Pascal-P could not do. It is also a full language compiler, not a subset.
P5 will stop after it achieves its status as a well tested and documented ISO 7185 compiler. As is customary with the Pascal-P series, the next set of improvements will go into into the Pascal-P6 compiler. This compiler will have a series of extensions designed to enable real world tasks, and also will feature backends for existing machines. It is the goal for the Pascal-P series to produce a stand-alone implementation.
This repository contains the working set of files for the Pascal-P5 project. It contains all files, including source for the compiler, scripts to build, run and test it, and a full set of tests.
See the file "the_p5_compiler" in several document formats for all information on the project.
I recently completed a "rejection" test series for the compiler. This completes the test series for the compiler. What remains is to address the issues brought up from the tests, and to finish the document for P5.
Releases
The procedure to distribute P5 previously to GIT was to zip up a "release" with a new version number. This practice persists even after the GIT repository. On occasions, I will wrap up a release from the P5 repository and place that on the web site. If you want a version of P5 that is well stable and tested, I recommend using one of the releases. Getting your code directly from GIT is essentially Alpha testing.
Several people have proposed language additions or feature upgrades to Pascal-P5. I don't disagree with that idea, I just believe that belongs in a follow-on project to Pascal-P5. I have been very clear that I will work towards that with the upcoming Pascal-P6. The great thing about Pascal-P5 is that you don't have to agree with that direction. Pascal-P5's implementation of ISO 7185 compliance is a major milestone, and allows it to serve as the basis of further implementations of all kinds.
There are several related projects to Pascal-P5:
Pascal-P4 (old version of this project)
https://sourceforge.net/projects/pascalp4/?source=directory
Pascal-P5 that compiles under FPC
https://github.com/tangentstorm/pascal/tree/master/p5
Pascal-P5 that converts input Pascal to C
https://sourceforge.net/projects/pascal-p5c/?source=directory