VSI BASIC for OpenVMS is the latest name for a dialect of the BASIC programming language created by Digital Equipment Corporation (DEC) and now owned by VMS Software Incorporated (VSI). It was originally developed as BASIC-PLUS in the 1970s for the RSTS-11 operating system on the PDP-11 minicomputer. It was later ported to OpenVMS, first on VAX, then Alpha, and most recently Integrity. Past names for the product include: BASIC-PLUS, Basic Plus 2 (BP2 or BASIC-Plus-2), VAX BASIC, DEC BASIC, Compaq BASIC for OpenVMS and HP BASIC for OpenVMS. Multiple variations of the titles noting the hardware platform (VAX, AlphaServer, etc.) also exist. Notable features VSI BASIC has many FORTRAN-like extensions, as well as supporting the original Dartmouth BASIC matrix operators. Line numbers are optional, unless the "ERL" function is present. It allows you to write "WHEN ERROR" error handlers around protected statements. 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 for OpenVMS's powerful Record Management Services (RMS). Before the release VAX BASIC, native RMS support was only available in DEC's COBOL compiler. History 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 been ported to a succession of new platforms 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 VSI BASIC began as BASIC-PLUS, created by DEC for their RSTS-11 operating system and PDP-11 minicomputer. Programming language statements could either be typed into the command interpreter directly, or entered into a text 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 source file, using the "SAVE" command. It could be "compiled" into a non-editable binary file, using the "COMPILE" command. This command did not produce true machine language programs, but rather a byte code called "tokens". The tokens were interpreted upon execution, in a manner similar to the more modern Java. Programs were entered into the command interpreter starting with line numbers, integers from 1 to 32767. Lines could be continued onto multiple lines