Talk:VAX/Archives/2016

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

citation needed?

When it was introduced, many programs were written in assembly language, so having a "programmer-friendly" instruction set was important.[citation needed] I believe, which of course needs a citation, that this is just barely not true. That VAX came at the time of the transition, such that it was designed for the past, and not the future. Also the VAX page size of 512 bytes, again based on the past, was too small almost immediately. (and again, citation needed.) Gah4 (talk) 05:36, 30 September 2016 (UTC)

I was there, and I can assure you that from the year of its introduction (1978) and for many years after, a great many programs for the VAX were written in its assembly language (VAX MACRO, aka MACRO-32). As was much of VMS itself and many of its utilities. This was particularly true in DEC's traditional market of scientific computing as well as in utility programs. None of the HLLs available from DEC in the early days of VMS were particularly suitable for OS or utility programming, other than the very expensive Bliss-32, for which very few customers spent the money, so few people outside DEC were comfortable coding. Even after DEC shipped a C compiler (1983 iirc; certainly no earlier than 1982) many of the OS's internal interfaces could only be accessed from MACRO or Bliss. Some relied on uses of specific registers for e.g. argument passing and this was not (and remains not) possible with any HLL available from DEC other than Bliss. A glance through the contributed programs catalog in the DECUS library of the day will confirm the heavy use of MACRO-32. This was even true after the Alpha was introduced; DEC wrote a compiler that would turn VAX MACRO into machine code for the Alpha, preserving the register usage, etc., from the VAX MACRO code. I am happy to look for references for the existing text but you're not going to find any correct ones that support your view. Jeh (talk) 06:01, 30 September 2016 (UTC)
I was doing scientific programming on VAX from about 1978 through much of the 1980s, and pretty much all in Fortran. I do remember system programming calls done from Fortran, such as QIO calls. The only one I remember running into in Macro-32, which I believe was output form the Bliss-32 compiler, such that those without the compiler could use it, is Kermit. That is, until C-Kermit was ported to VAX/VMS. Now, consider from the Forward to "VAX Architecture Reference Manual"": "Computer design continues to be a dynamic field; I expect we will see more rather than less change on innovation in the decades ahead. No matter how computers evolve, however, it is clear that the VAX architecture is a major contribution to progress in the field. It will be as important to study and understand a generation from now as it is today." That was written in 1986. I did have a reference for the page size being too small, but I don't remember now where. Gah4 (talk) 07:12, 30 September 2016 (UTC)
Oh heck, the VAX didn't originally even have a native Fortran compiler at first release, only the compiler from RSX running in compatibility mode, as did the resulting code! And the optimization, even after F77 for VMS appeared, was not great. A good MACRO programmer could often do better.
Yes, you have the "system service" calls. Ever try building a $GETJPI itemlist in Fortran? Pain in the behind, while in Macro it is trivial. On the other hand... File access from VAX Fortran (even after the "native" compiler shipped) was primitive. For simple stuff, sure, it's fine. But if you look at the $FAB and $RAB macros you'll find a wealth of options that the VMS HLLs never provided. For example, the default file name and related file name specs.
Opinion such as that from the VAX ARM cannot be considered anything but a primary, first-party source. Nor does it say anything about why a "programmer-friendly" ISA was considered important, either. Jeh (talk) 07:25, 30 September 2016 (UTC)
Yes. What I was saying is that VAX was near the beginning of the transition away from mostly assembly code for systems programming. At about the time that Unix showed that operating systems could be writing in high-level languages like C. Yes, it took some years for the transition, but not near as long as VAX was expected to last. We are about now one generation from 1986. On the other hand, IBM direct descendants of S/360 are still commercially viable in z/ systems. Gah4 (talk) 08:25, 30 September 2016 (UTC)