Jump to content

ВСЕ БАЗОВОЕ для OpenVMS

ВСЕ БАЗОВОЕ для OpenVMS
Парадигма императив
Разработчик Корпорация цифрового оборудования
ТЫ OpenVMS

VSI BASIC для OpenVMS — это новейшее название диалекта BASIC, языка программирования созданного Digital Equipment Corporation (DEC) и теперь принадлежащего VMS Software Incorporated (VSI). Первоначально он был разработан как BASIC-PLUS в 1970-х годах для операционной системы RSTS-11 на миникомпьютере PDP-11 . Позже он был портирован на OpenVMS , сначала на VAX , затем на Alpha и совсем недавно на Integrity .

Прошлые названия продукта включают: BASIC-PLUS , Basic Plus 2 ( BP2 или BASIC-Plus-2 ), VAX BASIC , DEC BASIC , Compaq BASIC для OpenVMS и HP BASIC для OpenVMS . Также существует несколько вариантов названий с указанием аппаратной платформы (VAX, AlphaServer и т. д.).

Примечательные особенности

[ редактировать ]

VSI BASIC имеет множество расширений, подобных FORTRAN , а также поддерживает оригинальные Dartmouth BASIC матричные операторы .

Номера строк не являются обязательными, если не присутствует функция «ERL». Это позволяет вам писать обработчики ошибок «WHEN ERROR» вокруг защищенных операторов . Более традиционному, но менее элегантному оператору «ON ERROR» не хватает такого контекста или объема.

Одной из наиболее примечательных особенностей VSI BASIC является встроенная поддержка OpenVMS мощных служб управления записями (RMS). До выпуска VAX BASIC встроенная поддержка RMS была доступна только в компиляторе COBOL от DEC .

История продукта VSI BASIC для OpenVMS охватывает период более 30 лет, и за это время он претерпел множество смен названий и владельцев. Он также был портирован на ряд новых платформ , разработанных DEC, Compaq, HP и VSI. Название компании и/или платформы часто включалось в название продукта, что способствовало увеличению количества названий.

БЕЙСИК-ПЛЮС

[ редактировать ]

VSI BASIC начинался как BASIC-PLUS , созданный DEC для их RSTS-11 операционной системы и PDP-11 миникомпьютера . Операторы языка программирования можно было либо вводить в командный интерпретатор непосредственно , либо вводить в текстовый редактор , сохранять в файл, а затем загружать в командный интерпретатор из файла. Об ошибках в исходном коде пользователю сообщалось сразу после ввода строки.

Программы сохранялись в виде исходного файла .BAS с помощью команды «СОХРАНИТЬ». Его можно было «скомпилировать» в нередактируемый двоичный файл .BAC с помощью команды «COMPILE». Эта команда создавала не настоящие программы на машинном языке , а скорее байт-код, называемый «токенами». Токены интерпретировались при выполнении аналогично более современному Java .

Программы вводились в интерпретатор команд, начиная с номеров строк , целых чисел от 1 до 32767. Строки можно было продолжать на несколько строк с помощью символа перевода строки . Для упрощения внешнего редактирования исходного файла более поздние версии BASIC-PLUS также допускали символ & в качестве символа продолжения строки. Несколько операторов можно разместить в одной строке, используя \ в качестве разделителя операторов.

Для систем PDP-11 с виртуальной памятью ( RSTS/E ) адресное пространство было ограничено примерно 64 КБ . В BASIC-PLUS около половины из них использовалось объединенным интерпретатором команд и библиотекой времени выполнения. Это ограничивало пользовательские программы примерно 32 КБ памяти. В старых системах RSTS-11 не хватало виртуальной памяти, поэтому пользовательской программе приходилось вписываться в то, что оставалось в физической памяти после того, как RSTS и BASIC-PLUS заняли свою долю. Например, на PDP-11/35 с 32 КБ физической памяти под управлением RSTS-11 V04B-17 размер пользовательских программ был ограничен 7 КБ. Большие программы можно было разбить на различные части с помощью инструкции «CHAIN». Программы могут связываться с определенными номерами строк во вторичной программе. Использование раздела общей памяти, называемого общим ядром, также позволяло программам передавать данные друг другу по мере необходимости; Дисковые файлы также можно было использовать, но они работали медленнее.

Интерпретатор включал в себя диспетчер памяти для сбора мусора, используемый как для строковых данных, так и для байт-кода. Выполняемую программу можно было прервать, проверить и изменить переменные, а затем возобновить. Многие управляющие структуры, используемые в других языках высокого уровня, существовали в BASIC-PLUS, включая WHILE и UNTIL. Язык также поддерживает использование условных модификаторов в одной строке. Например, строка " PRINT I UNLESS I < 10" выведет значение "I", если только я не меньше 10.

БЕЙСИК Плюс 2

[ редактировать ]

Basic Plus 2 ( BP2 или BASIC-Plus-2 ) был позже разработан DEC для добавления дополнительных функций и повышения производительности. Он использовал настоящую компиляцию в многопоточный код и записывал выходные данные в машинного языка объектные файлы . Они были совместимы с другими объектными файлами в системе и могли быть собраны в библиотеки. Затем компоновщик (построитель задач TKB) создал исполняемые файлы из них . TKB также поддерживает наложения; это позволяло при необходимости загружать отдельные процедуры в основную память.

Программы BP2 работали под управлением RSX-11 или системы времени выполнения RSX RSTS/E. Этот RTS занимал всего 8 КБ (позже 2 КБ) адресного пространства пользователя, оставляя 56 КБ для программы пользователя. Эти два фактора позволили отдельным программам BP2 быть намного больше, чем программы BASIC-PLUS, что часто устраняло необходимость в ЦЕПИ. В отличие от BASIC-PLUS (который был доступен только в RSTS-11), BP2 допускал использование и в операционной системе RSX-11.

VAX BASIC и DEC BASIC

[ редактировать ]

С созданием миникомпьютера компания VAX DEC портировала BASIC-PLUS-2 на новую операционную систему VMS и назвала ее VAX BASIC . VAX BASIC использовал стандартные стандарты вызовов VMS, поэтому объектный код, созданный VAX BASIC, можно было связать с объектным кодом, созданным любым другим языком VMS. Исходный код BASIC Plus 2 обычно работает без серьезных изменений на VAX BASIC.

Когда DEC создала свой Alpha микропроцессор , VMS была портирована на него и переименована в OpenVMS . VAX BASIC также был портирован на Alpha и переименован в DEC BASIC . BASIC На этом этапе интерпретатор был окончательно удален, а это означало, что программы DEC BASIC можно было запускать только как исполняемые файлы OpenVMS , создаваемые путем компиляции с последующей ссылкой .

Compaq, HP и VSI

[ редактировать ]

Когда DEC была приобретена Compaq в 1997/98 году, продукты были переименованы в Compaq BASIC для OpenVMS VAX и Compaq BASIC для OpenVMS Alpha .

Аналогичным образом, когда Compaq объединилась с HP в 2001/02 году, продукты были переименованы в HP BASIC для OpenVMS на VAX и HP BASIC для OpenVMS на AlphaServer . выпустила HP BASIC для OpenVMS on Integrity для своих серверных платформ Integrity на базе процессоров Intel Позже HP Itanium .

В середине 2014 года HP продала всю экосистему OpenVMS компании VSI, которая переименовала продукт VSI BASIC в OpenVMS . [1]

Пример кода

[ редактировать ]

VSI BASIC — это структурированный вариант BASIC, в котором номера строк не являются обязательными, а язык поддерживает как SUB, так и FUNCTION.

Привет, мир

[ редактировать ]
print "Hello, world!"

Перевод Цельсия в Фаренгейт

[ редактировать ]
function real to_fahrenheit(real celsius)
  to_fahrenheit = (celsius * 1.8) + 32
end function    

external real function to_fahrenheit(real)
declare real temp_celsius

when error in
  print "Enter a temperature in celsius";
  input x
  temp_celsius = real(x)
use
  print "Error: enter a valid numeric value, please."
end when

print "Temperature in degrees fahrenheit is ";  to_fahrenheit(temp_celsius)

end
  1. ^ «Руководство пользователя VSI BASIC для OpenVMS» (PDF) . 2018.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dc5abc5958312c72bdbc141419285ff4__1704575820
URL1:https://arc.ask3.ru/arc/aa/dc/f4/dc5abc5958312c72bdbc141419285ff4.html
Заголовок, (Title) документа по адресу, URL1:
VSI BASIC for OpenVMS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)