Gary Kildall's Original PL/M Compiler
Gary Kildall's original PL/M compiler was written entirely in Fortran 66, it targetted the Intel 8008 chip. It was later modified to target the 8080.
This compiler supports two data types: BYTE and ADDRESS - 8 and 16 bit unsigned integers respectively.
1-dimensional arrays, BASED variables and pointers are also available.
This version of the language does not include STRUCTUREs, $INSERT statements and other features available in later versions of the language.
The source for the 8080 compiler is available here: http://www.cpm.z80.de/index.html
Note, the iicense for the sources and other software on the site only allows distribution by that site, so though you can use the compiler, you can't distribute it yourself.
Two versions of the compiler are available on the site - the Fortran source and the Fortran source converted to C.
It can be compiled and run on e.g. Windows and Linux. The compiler outputs a HEX file that can be converted to a .COM file and executed under CP/M or an emulater.
The compiler consists of two programs, PLM81 which is the front-end and PLM82 which is the back-end.
A Windows batch file, distributed with the C version of the compiler shows how to use the two programs. It should be fairly easy to convert it to a Linux shell-script.
Almost every PL/M sample on Rosetta Code (as at 17th October 2021) is written for this compiler and CP/M.