Another serious side-track/branch-line of mine has been a project to create a cross-compiler targeting the ICL PF56 machine.
OK, I hear you asking several questions, among which may be: -
The quick answers: -
Current Status
The current version is as follows:
| Component | Alias | Function | Status | |
| Listing Generator | LST | Generates compiler listing and error reporting. | Working | |
| Lexical Analyser | LEXA | Reads input text, handles file inclusion, tokenises the source. | Working | |
| Syntax Analyser | SYNA | Parses according to rules of the language, calls Lexical Analyser to fetch next token | Working | |
| Semantic Analyser | SEMA | Invoked by Syntax Analysis to determine types of identifiers etc. | Working | |
| Code Generation Interface | CGI | An API interface used to the Syntax and Semantic Analysers to request that code be generated according to items on a stack. | Largely Working | |
| Code Generator | CG | The 'back-end' called by the CGI and emits short sequences of code to perform the program's operations. In this case the code generated is PF56 assembly code, which will, in turn, be assembled by the PF56 assembler #SPAA. | Partially Working |
We intend as the project nears completion to release the compiler, written using FreePascal under Lazarus, so it should work under both Windows® and Linux.
Last updated: 22-Feb-2026