XPL0
XPL0 is a computer programming language that is essentially a cross between Pascal and C. It looks somewhat like Pascal but works more like C. It was created in 1976 by Peter J. R. Boyle who wanted a high-level language for his microcomputer and wanted something more sophisticated than BASIC, which was the dominant language for personal computers at the time.
XPL0 is based on PL/0, an example compiler in the book "Algorithms + Data Structures = Programs" by Niklaus Wirth. The first XPL0 compiler was written in ALGOL. It generated instructions for a pseudo-machine that was implemented as an interpreter on a Digital Group computer based on the 6502 microprocessor. The compiler was converted from ALGOL to XPL0 and was then able to compile itself and run on a microcomputer.

XPL0 soon proved its worth in a variety of products based on the 6502. These embedded systems would otherwise have had their code written in assembly language, which is much more tedious to do.

Boyle used XPL0 to write a disk operating system called Apex. Beginning in 1980 this was sold, along with XPL0, as an alternative to Apple DOS for the Apple II computer, which was based on the 6502.

Since those early years XPL0 has been implemented on a dozen processors, and many features have been added. There are now optimizing native code compilers with 32-bit integers in place of the original 16-bit versions. Open source compilers for Windows and MS-DOS on PCs and Linux on the Raspberry Pi are available from the link below.
Q81571
Pascal
Concept
Q15777
C
Concept
Q32738
microcomputer
Concept
Q42979
BASIC
Concept
Q1719128
PL/0
MEDIA
Q92604
Niklaus Wirth
PER
Q188436
ALGOL
Concept
Q7730182
Digital Group
UNK
Q255528
6502
MISC
Q5297
microprocessor
Concept
Q193040
embedded system
Concept
Q165436
assembly language
Concept
Q600659
disk operating system
Concept
Q621234
Apple DOS
Concept
Q1130645
Open source
Concept
Q1406
Windows
Concept
Q47604
MS-DOS
MISC
Q388
Linux
MISC
None
Raspberry Pi
UNK
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
Q7475390
XPL0
MEDIA
1976-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1976
DATE
6502-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
6502
DATE
6502-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
6502
DATE
1980-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1980
DATE
6502-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
6502
DATE
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
0^^http://www.w3.org/2001/XMLSchema#decimal
0
NUMBER
+32^^http://www.w3.org/2001/XMLSchema#decimal
32
NUMBER
+16^^http://www.w3.org/2001/XMLSchema#decimal
16
NUMBER
inception
based on
programming language
subclass of