When Pascal is mentioned in this Mainframe related mailing list,
this triggers me, of course.

I am the current maintainer of the New Stanford Pascal compiler,
which runs on MVS, VM (and on Windows, OS/2, Linux, MacOS, BTW)
and on modern z/OS (and probably z/VM), too ... although limited to
AMODE 24 at the moment. The compiler itself is written in Pascal, and
the source code is the same for all the platforms above; the generated
P-Code is portable across platforms. On the PC, the P-Code is interpreted
by the P-Code interpreter (at the moment); on the mainframe, the P-Code
is translated by a second translator to 370 machine code.

The compiler now has about 21500 lines of source code; the time needed
for the compiler to compile itself on the PC (using the P-Code interpreter)
is about 10 to 15 seconds. Same time for the compiled version on Hercules.
On real z/OS, it should be much faster.

You can get it for free from GitHub or from the New Stanford Pascal website
http://bernd-oppolzer.de/job9.htm

Regarding the current topic, I added an extension recently to the compiler,
which allows a WITH clause in record definitions; this WITH clause adds
all the field definitions from a subrecord to the namespace of the surrounding record, no matter if the subrecord is included (embedded) into the surrounding record or addressed by pointer. This was inspired by a video from games developer
Jonathan Blow on data orientation; you will find more information on this
on the Stanford Pascal FB page: https://www.facebook.com/StanfordPascal/

The new version is not yet available for the mainframe targets; I am working on this and I hope to get it ready soon. When available, it will be published
on the pages mentioned above.

If you have additional questions, feel free to contact me offline.

Kind regards

Bernd



Am 21.09.2019 um 20:13 schrieb Paul Gilmartin:
On Sat, 21 Sep 2019 10:03:26 -0600, Jack J. Woehr wrote:

On 9/21/19 9:56 AM, Jon Perryman wrote:
   It's interesting to see an actual use case for C union and bit mapping.
In all these years, I've never seen these used in programs I've worked with
because of portability issues and not really providing useful functionality
for those products.
An archaism of C that remains because old *nix programs use or used them.

Legacy of the era of expensive RAM.

And for mapping variant record types.  Would SMF data be a good example?

But C leaves the programmer inundated with sometimes needless identifiers:
One for the union; one for each variant (is the former optional nowadays?)
Pascal is friendlier: leaf fields in any variant may be referenced as fields of
the root if unique, and neither the union nor the variants need be named.
Very similar to the requirements of Assembler.

-- gil



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to