Essential programming of algorithms in CP/M ...
:... if you do not like PASCAL compiler !
Nikolaus Wirth invented 1970 a new programming language named 'PASCAL' (in fact it was influenced by Algol). He continued to develop this language and as a result, Modula-2, a more structured language, was created in 1980 (first for the Lilith computer at ETH Zuerich).
For a complete history, take a look into the Wikipedia page or visit modulaware.com here.
At least, three major implementations exist for CP/M-80. Please take a look at Herb's comprehensive page about CP/M Modula also.
Hochstrasser Computing Modula-2 for the Z80:
The software itself (3 disks) and the manual can be found here at cpm.z80.de (search for "disk1.zip" on the page)
The full manual set can be found as single files here at hartetechnologies.com
Borland's Turbo Modula-2:
Software can be found here at retroarchive.org
The manual can be found here (scanned), at oldcomputers.dyndns.org
A brief description of its abilities can be found here at cpmwelt.de
FTL Modula 2
Version 1.14 and 1.30 can be found at retroarchive.org language page.
A User Guide and Language Reference Manual can be found at cpcwiki.com here (and also FTL Modula-2 1.30 for Amstrad PCWs).
If you are really curios about the roots of all, try to look inside the original sources of the M2M for the Lilith Computer, three files in total: Zipfile1, Zipfile2 and Zipfile3 (mirrored at z80cpu.eu).
Please take a look also at my PASCAL page.