Talk:HP BASIC for OpenVMS
From Wikipedia, the free encyclopedia
Contents |
[edit] Disentangling HP BASIC
Hm. A quick search at HP's and Agilent's sites gives some hits on "HP BASIC", such as HP BASIC for Windows (HP) and E2045C HP BASIC/UX for S/700 Workstations (Agilent). The latter document states, among other things, that the BASIC covered is "Compatible with other HP BASIC platforms" -- which I'd guess means the DEC-inherited ones. I wonder if Compaq/HP built in such compatibility of their own BASIC with DEC's after acquiring DEC, or if DEC itself developed the compatibility as part of the continuing evolution of their BASIC on various platforms.
My question becomes: should we cover all of them in one article, HP BASIC, or perhaps in two, HP BASIC and VAX BASIC? The latter would be the best if the DEC-originated BASICs aren't directly related to the HP ones.
--Wernher 19:56, 22 Jan 2005 (UTC)
While I do not know if "HP BASIC/UX" is related to "HP BASIC for Windows", I do know that "HP BASIC for OpenVMS" is a totally different product. Some people on news group COMP.OS.VMS have speculated that HP should have renamed "Compaq BASIC for OpenVMS" to "OpenVMS BASIC" just to avoid this kind of confusion.
http://h71000.www7.hp.com/doc/basic.html
-- Neilrieck 00:21, 24 Jan 2005 (UTC)
I don't know anything about BASIC implementations created by the old DEC. But I can speak some about BASIC from the old HP. From what I understand:
HP created "Rocky Mountain BASIC" (RMB) as a software environment to support their automated test equipment. I've read that RMB was first created on DEC PDP hardware, but HP quickly moved it over to their then brand-new HP 9000 series (what is today PA-RISC and HP/UX). RMB implementations from HP have been called "HP BASIC", "HP BASIC/UX", and "HP Instrument BASIC". Another company, TransEra, cloned HP BASIC with their HT BASIC ("High Tech BASIC"). To confuse things further, for a time, HP licensed TransEra's product and called it "HP BASIC for Windows". Then they discontinued it, and now just sent people to TransEra directly. When HP spun off Agilent, Agilent got the leftovers of RMB.
If nobody comes forward with a better idea and/or more information, here is what I will do: I'll create a "Rocky Mountain Basic" article. The "HP BASIC" article will be changed from a simple redirect to a disambig with refs to "Rocky Mountain Basic" and "HP BASIC for OpenVMS". I'll add notes to both articles mentioning the other. I'll add a ref to "Rocky Mountain Basic" to the existing "RMB" disambig article.
--DragonHawk 18:23, 1 November 2005 (UTC)
Okay, I'm going ahead as described. I've already created the Rocky Mountain BASIC article, and I'm working on refactoring all the various articles on DEC-derived BASICs into this one.
--DragonHawk 01:14, 9 November 2005 (UTC)
I think I've got all the major clean-up, refactoring, and merging done. Hopefully this will clear up confusion and let people contribute their knowledge about each of the respective dialects. I'm getting the impression there's a lot of little-known history here that I'd hate to see get lost. On that note, does anyone know anything about something called BASIC-11? From what I can tell from mentions on Wikipedia and Google, I suspect it was the predecesor to BASIC-PLUS. Anyone have firm info on that?
--DragonHawk 19:57, 9 November 2005 (UTC)
[edit] BASIC-PLUS
My recent merge from the BASIC-PLUS article to this one were reverted by Atlant, with the comment "BASIC/Plus has very little to do with *ANY* VAX BASIC; un-refactored.".
First, please note that I didn't just nuke this article; I tried to carefully refactor all the information into HP BASIC for OpenVMS.
Now, let me address Atlant's comment: BASIC/Plus has very little to do with *ANY* VAX BASIC
Well, the information in this and the related articles is limited, but from what I can tell, "very little to do" is certainly inaccurate. The names alone demonstrate that, and there is a fair bit more then the names to go on. Looking at the information in the articles, and knowing the progression of DEC's hardware and OSes, it seems reasonable to draw this line:
BASIC-11 -> BASIC-PLUS -> BASIC-PLUS 2 -> VAX BASIC -> DEC BASIC -> Compaq BASIC for OpenVMS -> HP BASIC for OpenVMS
It appears (again, from the content in the articles) that it was a steady evolution of DEC's full-featured BASIC environment. First an implementation of BASIC for the PDP, which was then enhanced ("PLUS"). The ability to compile to object code was introduced, that's a major deal, so BASIC-PLUS-2. VAX BASIC was PDP BASIC ported to VAX/VMS. The name became DEC BASIC when the Alpha chip meant it wasn't just VAX any more. Then there are the Compaq/HP marketing renames.
**If** my take is accurate, I don't see the point of having separate articles. We don't have separate articles for K&R C, C89, and C99. The articles will just be giant duplicates of each other. They'll have the same syntax descriptions, commentary on features, historical information, and so on.
If, on the other hand, this isn't the way things are, I think that's useful information, too. What *are* the connections between all these BASIC dialects? There are obviously at least some: The naming; the DEC origin and platforms; source compatibility between at least some of them. Where does that hold, and where does it break down? I see from Atlant's profile that he is certainly in a position to know about this stuff; hopefully he can contribute?
I do have a theory of operation I'm following here. I try to see things as a reader will. A reader looking for information on BASIC implementations for DEC systems doesn't care about the single-article/multiple-article distinction for the sake of itself. They want the information in the form that best delivers it. That information may be technical, in which case syntax, semantic, and implementation details will be wanted. I would think it is easier to maintain that information in one article vs many, if most of the information is the same. Or, the reader may be trying to get some DEC BASIC software working. In that case, the context of what implementations have what features on what platforms is useful. Or the reader may be interested in computer history, in which case the combination into one article is ideal. On the other hand, what does keeping them as separate articles gain us?
So, perhaps BASIC-PLUS belongs in a separate article, perhaps not, but I think it deserves a little more discussion then a simple denial. :)
--DragonHawk 01:40, 10 November 2005 (UTC)
- I'm sorry but for whatever reason I didn't see this discussion until just now. So here's my 2 cents. (It would have been $1.02, but apparently I'm a day late and a dollar short.)
- I really meant what I said; there's really very little in common between BASIC+ and the other DEC BASICs. The similarities that exist are in some of the language syntax but mostly in the marketing that DEC wrapped around BASIC-PLUS-TWO.
- BASIC+ was a captive language developed by the RSTS/E engineering group. It was a compact, semi-compiled language that was then interpreted by the BASIC+ run time system. The entire language (compilation and interpretation) fit into the 16KB or so run time system. A notable feature of BASIC+ was that it allowed interactive execution of BASIC commands so if a program was STOPped, you could type things like "PRINT SQR(A)" and the run time system would do it for you. This created a very powerful, simple environment for debugging. You never needed to resort to XDT or any other "external" debugger (unless you were debugging the Run Time System itself).
- By comparison, BP2 was developed by DEC's Languages and Tools group (probably called TLE -- "Technical Languages and Environments" at the time). BP2 was developed for the RSX11 run time environment and it was a fully-compiled language that then executed via threaded code. Objects (.OBJ files) produced by the compiler than had to be passed through the RSX taskbuilder (TKB) to produced an executable image. No interactive debugging using BASIC was possible; you had to use one of the standard RSX debugging tools or PRINT statements and repeated compilation cycles.
- Personally, I found BP2 a stultifying environment after having enjoyed for years the easy interactive experience of RSTS/E and BASIC+. I tried to move some of my projects to BP2 and didn't enjoy the experience at all (and don't remember being all that successful in the allotted time). As I recall, there were some syntax features that didn't translate well and I'm not just referring to the use of syscalls, FIRQBs, and XRBs (although my codes did a lot of that).
- VAX BASIC, also developed by TLE, was an improvement over BP2, but still didn't offer interactive debugging in BASIC (at least not in its early releases; I don't know about the most-modern releases). Luckily, like all the rest of the VMS languages, it at least used the VAX linker rather than the RSX taskbuilder. And its syntax was much more compatible back to BP2 than BP2 had been back to BASIC+.
- Really, BASIC+ was a much different animal than BP2 (and that's why I feel strongly that the articles shouldn't be merged). I think Digital made a significant marketing error in not providing a more-compatible follow-on environment. I know that I never cared for the follow-on BASIC environments at all. It's only with my transition into the Unix world and Perl (and to a lesser degree, C) that I feel I finally am back in an environment that's as easily-expressive of complex problems as was BASIC+.
- Atlant 15:14, 2 April 2006 (UTC)
I agree with the original poster. Basic-Plus and VAX basic might as well be as different as Turbo Pascal and VAX Pascal. They have similar names but are not the same language. Basic-Plus (and Basic-Plus 2) are from different environments and different constraints. There are things one would do with Basic-Plus due to the limitations inherent on RSTS/E which were not present on the VAX/VMS environment. I used - and still occasionally use, I have a running version of RSTS/E on my computer - Basic Plus for years. While I never worked on VAX computers directly, (I read the vax USENET newsgroup for years), from what Atlant is saying, Basic Plus is equivalent to Visual Basic while running in the IDE, and VAX Basic is equivalent to a compiled program which has no debugging capability. And I believe the syntax for both is different. (The manuals for Basic Plus are around on the Internet and I presume HP has its VAX Basic manuals on-line, so it wouldn't be that hard to check.)
A program in Basic Plus, even a "compiled" program that you could not edit, could be interactively debugged at the command line (except a priveleged program, which would evacuate if the program quit). This feature is not possible in a compiled Basic Plus 2 program, and presumably is unavailable (from Atlant's comments) in VAX Basic.
So having used Basic Plus and having read about VAX Basic I would also argue the languages are different and the articles should not be merged. Cross-linking would be a good ides, but merging them would be too confusing for someone wanting to learn about the two different languages. Paul Robinson (Rfc1394) 17:49, 15 June 2006 (UTC)
[edit] Sample code 'stub' size
Honestly, I think the sample code section is far, far too large for a Wikipedia article (although, by all means, it gives a nice overview of the language). Perhaps the contributor who added the sample, or someone else, could find a reasonably sized alternative.
--Wernher 18:06, 23 Jan 2005 (UTC)
I posted the example in questions for two reasons: (1) I wanted to demostrate that this language could directly handle multi-key indexed files (2) I wanted to demonstrate the way that WHEN-ERROR blocks change the look and feel of the BASIC code. You are probably right about the code size. Maybe I'll make this program smaller and point people to my web site for the full one.
-- Neilrieck 00:21, 24 Jan 2005 (UTC)
I deleted the giant example program, and replaced it with some very simple ones. I'm kind of sorry to see such a well-crafted example program go like this, but like User:Wernher said, it was *way* to big for a Wikipedia article. I am also working on a major refectoring of DEC BASIC and VAX BASIC and BASIC-PLUS into this article, and the giant sample code made this article too unweildy. The link to User:Neilrieck's site is good -- hopefully, interested people will follow it.
--DragonHawk 01:12, 9 November 2005 (UTC)
Unfortunately, I know next to nothing about DEC BASIC, so I can only post rather horribly generic examples. (In fact, I'm considering deleted them, they could be any BASIC dialect.) I think it would be real nice to have some snipets highlighting the unique language features of DEC BASIC. I suggest focusing on the language, rather then VMS features. The conditional modifiers, exception handling, matrix ops, all that stuff sounds neat, and likely would be compact.
--DragonHawk 19:57, 9 November 2005 (UTC)
[edit] OpenVMS Product Names
Maybe HP should rename this product one more time to just "OpenVMS BASIC" so we can cover future ports to other technologies like x86-64.
[edit] About BASIC-PLUS
1976 Pheripherals handbook says:
- BASIC-11 -- An extended version of Darthmouth Standard BASIC is available for the PTS-11, CAPS-11 and RT-11. Many applications such as signal processing and graphics are accessed by the user through extensions to this simple yet powerful language. A multiuser version is available under PTS-11 and RT-11.
BASIC-PLUS was developed together with RSTS, as a way to use a simple PDP-11/20 with multiple terminals to run timesharing basic. It was originally an integral part of RSTS, and RSTS could not do anything else than run BASIC-PLUS. I think BASIC-11 and BASIC-PLUS are two completely different things.
BASIC-PLUS is written in MACRO-11, and was in the same address space as RSTS/E even up to version 4. It was not a tokenizing basic, but instead the program source was not kept in memory, and only the compiled version was. The source code was written to a temporary file in the user's directory. The result of this is that it executed much faster than interpreted basics. And when doing RUN, there was no compilation time, and executing started immediately. The compilation to internal code was when done line by line, when the program was typed in, or doing an OLD of a program stored to disk. When running a "compiled" program, there was no compilation time when loading, which is why compiled programs started much faster, but executed with the same speed.
I think BASIC-11 might have been a more common tokenizing or even fully interpreted basic. I once tried a basic, which was probably BASIC-11 on one XXDP diagnostic disk, and found it to be something completely different and much more primitive. Maybe BASIC-11 was based on DEC-10 basic. BASIC-PLUS appears to be an original idea.
Karolinali 16:16, 14 December 2006 (UTC)
-
- I think BASIC-11 and BASIC-PLUS are two completely different things.
- Yes, BASIC-11 and BASIC-PLUS are completely different. If I were to guess, I'd guess that the various BASIC-11 dialects evolved from the BASICs that were available on OS/8, but it may have been a clean-sheet implementation. I think I vaguely remember the XXDP BASIC; and I think I decided rather quickly that it, like the rest of XXDP, was just a waste of time.
- If I get a chance, I'll invite someone who probably knows about the origins of BASIC-PLUS to comment.
- Atlant 16:41, 14 December 2006 (UTC)