Discussion:
OpenVMS system programming language
Add Reply
David Meyer
2024-12-19 06:56:43 UTC
Reply
Permalink
Does VSI have a preferred or official language for system programming
for OpenVMS?

I know system programming for VAX/VMS was done in MACRO-32 and BLISS-32,
and at least some system programs were written in C when Alpha was
introduced.

VSI has the BLISS reference manual on the Legacy shelf.

Have all the MACRO and BLISS programs been ported to C or C++, or will
they be in the future?
--
David Meyer
Takarazuka, Japan
***@sdf.org
Robert A. Brooks
2024-12-19 16:38:09 UTC
Reply
Permalink
Post by David Meyer
Does VSI have a preferred or official language for system programming
for OpenVMS?
I know system programming for VAX/VMS was done in MACRO-32 and BLISS-32,
and at least some system programs were written in C when Alpha was
introduced.
VSI has the BLISS reference manual on the Legacy shelf.
Have all the MACRO and BLISS programs been ported to C or C++, or will
they be in the future?
About 40% of the operating system is now written in C, 30% in both MACRO-21 and BLISS.

Work was done in the mid-90's to make it easier to write kernel mode code in C;
most of the MACRO-only JSB interfaces were jacketed with the ability to call them from C.

As a result, the "Writing OpenVMS Alpha Device Drivers in C" book (Szubowicz, Sherlock)
describes some of those changes.
--
-- Rob
Robert A. Brooks
2024-12-19 16:40:46 UTC
Reply
Permalink
About 40% of the operating system is now written in C, 30% in both MACRO-21 and BLISS. ^^^^^^^^
MACRO-32 . . .
--
-- Rob
Lawrence D'Oliveiro
2024-12-19 19:55:26 UTC
Reply
Permalink
Post by David Meyer
Have all the MACRO and BLISS programs been ported to C or C++, or will
they be in the future?
I hear there is this new language called “Java”, that is supposed to take
over from C++ ...
Arne Vajhøj
2024-12-19 20:20:10 UTC
Reply
Permalink
Post by David Meyer
Does VSI have a preferred or official language for system programming
for OpenVMS?
I know system programming for VAX/VMS was done in MACRO-32 and BLISS-32,
and at least some system programs were written in C when Alpha was
introduced.
VSI has the BLISS reference manual on the Legacy shelf.
Have all the MACRO and BLISS programs been ported to C or C++, or will
they be in the future?
Brooks already explained what VSI actually has in the VMS code base.

Since I am not with VSI then I can better speculate and my
guess is that:
- VSI would like to rewrite all the remaining Bliss and Macro
to make maintenance easier
- VSI does not have the money to start a systematic migration
of all the remaining Bliss and Macro because migrating that
many millions of lines would be too expensive (I stuffed some
random numbers into a COCOMO style model and it said 1500
man years!)

If you are really asking what language you should use for
writing VMS code interfacing closely with the OS (more close
than just using documented LIB$ and SYS$ calls), then I will
suggest C. C is officially supported for writing device drivers
nowadays and I believe they have a subset of the C RTL that is
safe to call in inner modes.

Arne
David Meyer
2024-12-20 06:39:29 UTC
Reply
Permalink
Thanks, all.

I'm working on a retrocomputing project on a VAX teaching myself
BLISS-32 and was curious about the current state of the OS.
--
David Meyer
Takarazuka, Japan
***@sdf.org
Stephen Hoffman
2024-12-28 03:47:58 UTC
Reply
Permalink
Post by David Meyer
Does VSI have a preferred or official language for system programming
for OpenVMS?
Starting in the early 1990s, the language choice for DEC OpenVMS was C.
Post by David Meyer
I know system programming for VAX/VMS was done in MACRO-32 and
BLISS-32, and at least some system programs were written in C when
Alpha was introduced.
VSI has the BLISS reference manual on the Legacy shelf.
BLISS was retired as a salable layered product long ago.

The BLISS compilers became available on the Freeware.

BLISS remains necessary for OpenVMS itself. As is MACRO-32, and some
layered products including Notes.
Post by David Meyer
Have all the MACRO and BLISS programs been ported to C or C++, or will
they be in the future?
No, and no.

Back around Y2K, MACRO-32, BLISS, and C were roughly divided in thirds
of the ~64K source modules in OpenVMS Alpha and OpenVMS I64 source
pool, with the percentage of C rapidly increasing starting with the C
system programming work introduced at V6.1.

VSI is likely still following those longstanding DEC OpenVMS practices
here, and will be writing new code in C, rewriting existing code being
overhauled into C, and maintaining and modifying the rest of the
existing code in the original language as needed.

Some code gets rewritten due to other constraints, such as the PL/1
code, and the Ada code.

Rewriting existing code is best approached with great caution, as it
can very easily become exceedingly expensive, and tedious. It also
requires immense resources. And even the best results can be perilous.

In a manner of consideration, rewrites are a whole lot like platform
ports, though rewrites are far bigger and far riskier and far more
costly projects. And keep other development work constrained for even
longer than the port tends to cause.

There are, of course, other and even better ways to spend vast sums for
negligible benefits for the OpenVMS vendor, such as a Linux "kernel
transplant" that was suggested by a few folks around here. Though if
you do want that something akin to that approach, have a look at Sector
7 product.

I'd suggest reading some of Martin Fowler's writings in the area of
incremental rewrites and refactoring, as that might help avoid some
common missteps.
--
Pure Personal Opinion | HoffmanLabs LLC
Lawrence D'Oliveiro
2024-12-28 07:09:38 UTC
Reply
Permalink
Post by Stephen Hoffman
Starting in the early 1990s, the language choice for DEC OpenVMS was C.
It could do with Pascal-style extensions added to it to cope with
descriptors, counted strings, named arguments etc. Otherwise it is quite
an awkward language to use for VMS programming.

Loading...