On 13/11/2021 08:51, Lasse Hillerøe Petersen wrote:
The companion language, PLZ/ASM (or one variant of it) is described in
this document: Z8 PLZ/ASM Assembly Language Programming Manual (1980) -
http://bitsavers.informatik.uni-stuttgart.de/components/zilog/z8/
Z8_Assembly_Language_Programming_Manual_Dec80.pdf
For anyone who needs the links I think my Usenet client may keep them together:
https://b-ok.xyz/book/2116190/5770ad
http://bitsavers.informatik.uni-stuttgart.de/components/zilog/z8/Z8_Assembly_Language_Programming_Manual_Dec80.pdf
I took a look at both. Z8 assembly code is quite different from what I remember of Z80 programming but I put that down to the Z8 being a microcontroller and, for example, having lots more registers.
PLZ/SYS looks quite conventional for proto languages: simple but
covering the bases, something between assembly and a more full-featured
HLL.
There have been others - e.g. BCPL and Wirth's PL360 for IBM, perhaps, - which IIRC were written to make an even higher level of language easier
to develop.
The development path is interesting from a design perspective -
especially to see how ideas have progressed (or some times regressed)
over the years though I don't know if there's still much value in using
such languages for real work?!
I check Usenet far to infrequently it seems. Tonight I read with interest James Harris' posts on a number of - as he calls them - "lesser known languages". Except for Bon, which I will enjoy reading about when I'm
done with the paper by Rutishauser that I found, I knew of all of them, though.
However, there is a language, which I first "heard" about in a
programming language "genealogy" graph in a book on "microcomputers",
back in 1982 or so, which probably deserves the title "lesser known language". (There are also some other languages I would like to mention,
but I will mimick Harris' style and give each a separate post.)
Actually, it is two languages in this case: PLZ/SYS and PLZ/ASM.
Information about these languages on the web is very scarce, but I did
manage to find a link to the defining report on PLZ/SYS, _Report on the Programming Language PLZ/SYS_ by Tod Snook, Charlie Bass, Janet Roberts, Armen Nahapetian, Mike Fay (1978) here: https://b-ok.xyz/book/
2116190/5770ad
The companion language, PLZ/ASM (or one variant of it) is described in
this document: Z8 PLZ/ASM Assembly Language Programming Manual (1980) - http://bitsavers.informatik.uni-stuttgart.de/components/zilog/z8/ Z8_Assembly_Language_Programming_Manual_Dec80.pdf
The PLZ "family" of languages were developed by (or for?) Zilog, and are quite interesting, I think. PLZ/SYS is a - for the time - fairly high-
level systems programming language, based on Pascal and several other languages of the era, with a syntax that looks quite Algol 68 inspired. According to the report, it is not intended as a general purpose language
or for large programs, but it does have modules.
It is very closely integrated with PLZ/ASM, which comes in several
flavours, as these are assembler languages for various Zilog CPUs: Z8,
Z80 and Z8000 seems to be the possibilities. PLZ/ASM extends traditional assembler with structured programming and other higher-level features, so control structure could be written using IF-FI and DO-OD,
Alas, I haven't been able to find any downloads of the language system.
Other than the Zilog operating system RIO I don't know of any implementations. It would seem that (probably given that export of 8-bit
cpus to the "communist block" was not prohibited during the Cold War) the language was somewhat popular in East Germany. If someone out there
should know where to find the compiler, I would very much like to get a
copy.
On 13/11/2021 14:19, James Harris wrote:
The development path is interesting from a design perspective -
especially to see how ideas have progressed (or some times regressed)
In PLZ/SYS, I like how they use BYTE, WORD for unsigned types, and
INTEGER for signed types. Just like I do now; I thought it was just me
who favoured that.
(I don't think I'd come across PLZ before; I'd only heard of PL/M. Interesting how isolated you could be at the period, without the
internet, and not working in academia or in a large company.)
On 13/11/2021 14:52, Bart wrote:
On 13/11/2021 14:19, James Harris wrote:
...
The development path is interesting from a design perspective -
especially to see how ideas have progressed (or some times regressed)
In PLZ/SYS, I like how they use BYTE, WORD for unsigned types, and
INTEGER for signed types. Just like I do now; I thought it was just me
who favoured that.
It's a bit weird how they are declared though. E.g. IIRC there's a line something like
i j selected BYTE
which looks the wrong way round to me. Blame the Pascal influence.
(I don't think I'd come across PLZ before; I'd only heard of PL/M.
Interesting how isolated you could be at the period, without the
internet, and not working in academia or in a large company.)
True. I'd forgotten until recently how difficult it was back then even
to obtain a compiler!
(Having keywords in capitals would also grate; it's not clear why
that was needed. Algol68's reason is that white-space is not
meaningful, so 'int abc' would be lexed as 'intabc'.)
On 13/11/2021 17:46, Bart wrote:
(Having keywords in capitals would also grate; it's not clear why
that was needed. Algol68's reason is that white-space is not
meaningful, so 'int abc' would be lexed as 'intabc'.)
Not at all the reason. With reserved-word stropping
[which is what you seem to be advocating], "int" is a reserved
word, so "int abc" lexes as a type and an identifier; other
stropping regimes have their own rules. Even as late as the
'70s, 20-odd years after the early Algols, there was no general
expectation that lower-case letters might be available [esp
(but not only) on teletypes, card equipment and lineprinters],
so upper case always had to be possible and was quite often
essential. White space is meaningful in plenty of places in
Algol 68, though not in the middle of identifiers; see, for
example, RR9.4.2.2b on representations, esp the last sentence.
A68G allows a declaration like this:
INTabc def = 1234;
print(abc def);
Are you saying that if normal-case reserved words were used, then I
would instead have to write:
int abc def = 1234; ?
And that I could declare an identifier 'intabc' ? What about [...].
I think that a more conventional way of writing source code (ie. like
most languages now) would make it more acceptable.
On 13/11/2021 15:36, James Harris wrote:
It's a bit weird how they are declared though. E.g. IIRC there's a line
something like
i j selected BYTE
which looks the wrong way round to me. Blame the Pascal influence.
That's Go-like I think, but also it seems kike your style with minimum punctuation.
(Having keywords in capitals would also grate; it's not clear why that
was needed. Algol68's reason is that white-space is not meaningful, so
'int abc' would be lexed as 'intabc'.)
For anyone who needs the links I think my Usenet client may keep them together:
I took a look at both. Z8 assembly code is quite different from what I remember of Z80 programming but I put that down to the Z8 being a microcontroller and, for example, having lots more registers.
PLZ/SYS looks quite conventional for proto languages: simple but
covering the bases, something between assembly and a more full-featured
HLL.
There have been others - e.g. BCPL and Wirth's PL360 for IBM, perhaps, - which IIRC were written to make an even higher level of language easier
to develop.
I have no idea if some of these ideas were original at the time, but it certainly was an ambitious concept.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 286 |
Nodes: | 16 (3 / 13) |
Uptime: | 86:11:32 |
Calls: | 6,496 |
Calls today: | 7 |
Files: | 12,099 |
Messages: | 5,277,030 |