Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

VSI BASIC for OpenVMS

From Wikipedia, the free encyclopedia
(Redirected fromHP BASIC for OpenVMS)
Dialect of the BASIC programming language
This article is about the BASIC dialect created for the OpenVMS operating system, which was previously known asHP BASIC for OpenVMS. For other BASIC dialects created at HP, seeHP BASIC (disambiguation).
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(July 2013) (Learn how and when to remove this message)
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "VSI BASIC for OpenVMS" – news ·newspapers ·books ·scholar ·JSTOR
(June 2014) (Learn how and when to remove this message)
The topic of this articlemay not meet Wikipedia'sgeneral notability guideline. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "VSI BASIC for OpenVMS" – news ·newspapers ·books ·scholar ·JSTOR
(June 2014) (Learn how and when to remove this message)
(Learn how and when to remove this message)
VSI BASIC for OpenVMS
Paradigmimperative
DeveloperDigital Equipment Corporation
OSOpenVMS

VSI BASIC for OpenVMS is the latest name for a dialect of theBASICprogramming language created byDigital Equipment Corporation (DEC) and now owned by VMS Software Incorporated (VSI). It was originally developed asBASIC-PLUS in the 1970s for theRSTS-11 operating system on thePDP-11 minicomputer. It was later ported toOpenVMS, first onVAX, thenAlpha,Integrity, and most recentlyx86-64.

Past names for the product include:BASIC-PLUS,Basic Plus 2 (BP2 orBASIC-Plus-2),VAX BASIC,DEC BASIC,Compaq BASIC for OpenVMS andHP BASIC for OpenVMS. Multiple variations of the titles noting the hardware platform (VAX, AlphaServer, etc.) also exist.

Notable features

[edit]

VSI BASIC has manyFORTRAN-like extensions, as well as supporting the originalDartmouth BASICmatrixoperators.

Line numbers are optional, unless the "ERL" function is present. It allows you to write "WHEN ERROR"error handlers around protectedstatements. The more traditional but less elegant "ON ERROR" statement lacks such context or scope.

One of VSI BASIC's more noteworthy features is built-in support forOpenVMS's powerfulRecord Management Services (RMS). Before the release VAX BASIC, native RMS support was only available in DEC'sCOBOL compiler.

History

[edit]

The VSI BASIC for OpenVMS product history spans a period of more than 30 years, and it has gone through many name and ownership changes in that time. It has also beenported to a succession of newplatforms as they were developed by DEC, Compaq, HP and VSI. The company and/or platform name has often been included in the product name, contributing to the proliferation of names.

BASIC-PLUS

[edit]
Main article:BASIC-PLUS

VSI BASIC began asBASIC-PLUS, created by DEC for theirRSTS-11operating system andPDP-11minicomputer. Programming language statements could either be typed into thecommand interpreter directly, or entered into atext editor, saved to a file, and then loaded into the command interpreter from the file. Errors in source code were reported to the user immediately after the line was entered.

Programs were stored as a .BASsource file, using the "SAVE" command. It could be "compiled" into a non-editable binary .BAC file, using the "COMPILE" command. This command did not produce truemachine language programs, but rather abyte code called "tokens". The tokens were interpreted upon execution, in a manner similar to the more modernJava.

Programs were entered into the command interpreter starting withline numbers, integers from 1 to 32767. Lines could be continued onto multiple lines by using aline feed character. For ease of external editing of the source file, later versions of BASIC-PLUS also allowed the & character as a line-continuation character. Multiple statements could be placed on a single line using\ as the statement separator.

For PDP-11 systems with virtual memory (RSTS/E), address space was limited to about 64KB. With BASIC-PLUS, about half of this was used by the combined command interpreter and run-time library. This limited user programs to about 32 KB of memory. OlderRSTS-11 systems lacked virtual memory, so the user program had to fit into whatever was left of physical memory after RSTS and BASIC-PLUS took up their share. For example, on a PDP-11/35 with 32K of physical memory, running RSTS-11 V04B-17, user programs were limited to 7 KB. Large programs could be broken up into various pieces by use of the "CHAIN" instruction. Programs couldchain to specific line numbers in a secondary program. The use of a shared memory section calledcore common also allowed programs to pass data among each other as needed;disk files could also be used but were slower.

The interpreter included a garbage collecting memory manager, used for both string data and byte-code. A running program could be interrupted, have variables examined and modified, and then be resumed. Many of the control structures used in other high-level languages existed in BASIC-PLUS, including WHILE and UNTIL. The language also supported the use of conditional modifiers on a single line. For example, the line "PRINTIUNLESSI<10" would print the value of "I" unless I was less than 10.

BASIC Plus 2

[edit]

Basic Plus 2 (BP2 orBASIC-Plus-2) was later developed by DEC to add additional features and increase performance. It used true compilation intothreaded code, and wrote its output tomachine languageobject files. These were compatible with other object files on the system, and could be assembled into libraries. A linker (the TKB taskbuilder) then createdexecutable files from them. TKB also supported overlays; this allowed individual routines to be swapped into the main memory space as needed.

BP2 programs ran underRSX-11 or RSTS/E's RSX Run Time System. This RTS only occupied 8KB (later, 2KB) of the user's address space, leaving 56KB for the user's program. These two factors allowed individual BP2 programs to be much larger than BASIC-PLUS programs, often eliminating the need for CHAINing. Unlike BASIC-PLUS (which was only available on RSTS-11), BP2 allowed use on the RSX-11 operating system as well.

VAX BASIC and DEC BASIC

[edit]

With the creation of theVAXminicomputer, DEC ported BASIC-PLUS-2 to the newVMS operating system, and called itVAX BASIC. VAX BASIC used the standard VMS calling standards, so object code produced by VAX BASIC could be linked with object code produced by any of the other VMS languages. Source code for BASIC Plus 2 would usually run without major changes on VAX BASIC.

When DEC created theirAlphamicroprocessor, VMS was ported to it and renamedOpenVMS. VAX BASIC was likewise ported to Alpha and renamedDEC BASIC. The BASICinterpreter was permanently dropped at this point, which meant that DEC BASIC programs could only be run as OpenVMSexecutables, produced by acompile followed by alink.

Compaq, HP and VSI

[edit]

When DEC was purchased byCompaq in 1997/98, the products were renamedCompaq BASIC for OpenVMS VAX andCompaq BASIC for OpenVMS Alpha.

Likewise, whenCompaq merged withHP in 2001/02, the products were renamedHP BASIC for OpenVMS on VAX andHP BASIC for OpenVMS on AlphaServer. HP later releasedHP BASIC for OpenVMS on Integrity for their Integrityserver platforms based uponIntel'sItanium processors.

In mid 2014, HP sold the whole OpenVMS ecosystem to VSI who renamed the productVSI BASIC for OpenVMS.[1]

Sample code

[edit]
Main article:BASIC § Structured BASIC

VSI BASIC is a structured variant of BASIC in which line numbers are optional, and the language supports both SUBs and FUNCTIONs.

Hello, world

[edit]
print"Hello, world!"

Celsius to Fahrenheit conversion

[edit]
functionrealto_fahrenheit(realcelsius)to_fahrenheit=(celsius*1.8)+32endfunctionexternalrealfunctionto_fahrenheit(real)declarerealtemp_celsiuswhenerrorinprint"Enter a temperature in celsius";inputxtemp_celsius=real(x)useprint"Error: enter a valid numeric value, please."endwhenprint"Temperature in degrees fahrenheit is ";to_fahrenheit(temp_celsius)end

References

[edit]
  1. ^"VSI BASIC for OpenVMS User Manual"(PDF). 2018.[dead link]

External links

[edit]
Dialects of theBASIC programming language (list)
Classic
Microsoft
Texas Instruments
Hewlett-Packard
Locomotive Software
Microcomputers
Minicomputers
Time-sharing computers
Other
Extenders
Procedure-
oriented
Proprietary
Free and
open source
Withobject
extensions
Proprietary
Free and
open source
RAD
designers
Proprietary
Free and
open source
Defunct
Retrieved from "https://en.wikipedia.org/w/index.php?title=VSI_BASIC_for_OpenVMS&oldid=1319334060"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp