Jump to content

IBM System/36 БЕЙСИК

IBM System/36 БЕЙСИК
Впервые появился 1983 год ; 41 год назад ( 1983 )

IBM System/36 BASIC был интерпретатором компьютера среднего уровня IBM System/36 .

System/36 BASIC был впервые предложен в 1983 году и, как таковой, содержал многие атрибуты, с которыми программа BASIC могла столкнуться в период существования IBM PC , Commodore 64 , VIC-20 , TRS-80 или многие другие предложения семидесятых и начала восьмидесятых годов. Таким образом, S/36 BASIC использует соглашения, которые больше не являются стандартными в современных BASIC, такие как номера строк, и не поддерживает новые функции, такие как WHILE/WEND, DO/ENDDO, With/END With , процедуры, свойства и т. д.

Интерпретаторы BASIC, написанные в семидесятые годы, имели тенденцию «делать странные вещи странными способами». Например, на Apple II программист . мог встроить команду в программу через PRINT, если перед ней стояла строка символов CHR$(4). ПЭК и POKE можно использовать в различных BASIC-ах для проверки содержимого памяти или его изменения или даже для создания специальной программы на машинном языке и последующего ее запуска. System/36 BASIC стремится держаться подальше от этих странных соглашений; однако программист может вызвать сигнал тревоги (жужжащий звук, издаваемый терминалом) через PRINT CHR$(7).

Ожидается, что операторы BASIC будут вводиться заглавными буквами, и хотя оператор может нажать Cmd2, чтобы использовать нижний регистр, интерпретатор BASIC преобразует ключевые слова без комментариев в верхний регистр.

Чтобы BASIC мог быть полезен в вычислительной среде среднего уровня, IBM добавила к языку расширения, специфичные для аппаратного и программного обеспечения семейства IBM System/36, такие как WORKSTN , поддержка индексированных, прямых и последовательных дисковых файлов, возможность открывать и закрывать несколько файлов принтера, а также ЗАГРУЗИТЬ/СОХРАНИТЬ из библиотек на фиксированном диске.

Операторы, функции и команды

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

Были использованы следующие основные операторы, функции и команды BASIC:

 DATA
 DIM
 END
 FOR...NEXT
 GOSUB...RETURN
 GOTO
 IF...THEN
 INPUT
 LET
 ON...GOTO
 PRINT
 PRINT USING
 READ
 REM
 STOP
  
 ASC()
 RND()
 SIN()
 COS()
 TAN()
 TAB()
 SQRT()
 LOG()
 
 LIST

Более продвинутые утверждения, предоставленные IBM, включали:

 ON ERROR       Allows error trapping
 OPTION         Permits program-wide properties such as Base 1 or Base 0 array indexing, long or short precision, etc.
 OPEN           Allows a file or device (formatted workstation, printer) to be opened
 CLOSE          Closes a file or device
 WRITE          Outputs to a file or device
 REWRITE        Changes a record or display format
 APPEND         Adds to a file
 DELETE         Deletes a record from a file
 IMAGE          Defines the format of a record using COBOL-like syntax
 FORM           Defines the format of a record using RPG-like syntax
 DEF FN..FNEND  Defines a function
 CHAIN          Loads and passes control to another BASIC program
 
 PRINT #255:          Prints to the (default) printer file
 PRINT NEWPAGE        Clears the screen
 PRINT #255: NEWPAGE  Advances to the next page on the printer file
 
 AIDX()         Refers to the ascending index of an array, which is an array of relative sorted pointers to array elements
 DIDX()         Same as AIDX but uses a descending index
 SRCH()         Used to find a value in an array by retrieving the match pointer         
 SRCH$()        Used to find a string value in a string array by retrieving the match pointer
 RENUMBER       A command used to renumber the lines within a program
 LOAD           A command used to load a program from a library on the fixed disk
 SAVE           A command used to save a program to a library on the fixed disk
 OFF            A command used to exit the interactive BASIC session
 LISTP          A command used to list the current program to the printer

ON ERROR это оператор перехвата ошибок, который позволяет BASIC приостановить ошибку, которая в противном случае могла бы остановить запуск программы BASIC, и вместо этого выполнить процедуру обработки ошибок. Варианты включают суффикс OFLOW, ZDIV и другие типы ошибок в операторе и немедленно перехватывают эти ошибки.

ОПЦИЯ позволяет программе BASIC соответствовать особым критериям. Иногда в BASIC не было очень много пользовательского пространства (поскольку все программы S/36 ограничены 64 КБ), и область, называемая «пространством кода», содержащая текущую пользовательскую программу, должна находиться в пользовательском пространстве. Таким образом, пользователи могут выбирать OPTION LPREC что заставляет BASIC вычислять числа двойной точности (длинные), или OPTION SPREC который обеспечивает больше места и числовые значения одинарной точности (короткие). Некоторые программисты предпочитают матричную математику, где индекс с наименьшим номером равен 0, другие предпочитают 1. OPTION BASE 0 и OPTION BASE 1 выполнить это. Есть и другие варианты использования ВАРИАНТ .

Программы RPG II на S/34 и S/36 не могли вызывать друг друга, но программы BASIC могли, используя ЦЕПЬ заявление. CHAIN ​​передает управление от текущего модуля BASIC указанному модулю, перенося список аргументов, которые могут стать переменными в новом модуле при его загрузке.

DEF FN позволяет определить пользовательскую функцию в BASIC, которой можно присвоить имя и использовать в программе. FNEND помещается после последнего оператора функции.

Существует четыре способа форматирования ввода и вывода BASIC. Во-первых, неформатированный; только ПЕЧАТЬ и ВВОД в свое удовольствие. Во-вторых, с PRINT USING, который в S/36 BASIC может включать константу, строковую переменную, номер строки или метку. В-третьих, с PRINT FIELDS и INPUT FIELDS, которые размещают поля отображения типа 5250 на ЭЛТ в немедленном режиме. В-четвертых, используя файл рабочей станции (открытый с помощью OPEN #x: "WS,NAME=" и так далее) и выполнение различных комбинаций ПИШИТЕ и ПРОЧТИТЕ этот файл рабочей станции, используя форматы экрана, созданные SDA, аналогичные форматам в других приложениях S/36. ПИШИТЕ и ЧИТАЙТЕ , а также PRINT USING и INPUT USING, может направить BASIC на номер строки или метку, содержащую ключевое слово IMAGE:.

Оператор IMAGE содержит десятичные дроби, запятые, знаки доллара, тире и знаки решетки («#») для представления замененных числовых или буквенно-цифровых значений.

3540 IMAGE: ###-##-####  #############################  $#,###,###.##

Оператор FORM обозначает размер переменных, которые необходимо прочитать или записать. Чтобы сохранить числовое значение от 0,00 до 99 999,99, используйте следующее обозначение:

2959 FORM N 7.2

Метка — это тег на строке следующего вида:

260 BEGIN_CALCULATIONS::
270 FOR X = 1 TO 12
280 Y = Y + X*1.08
290 NEXT X

При желании заявление GOSUB BEGIN_CALCULATIONS можно использовать вместо GOSUB 260.

ОТКРЫТЬ, ЗАКРЫТЬ, ЗАПИСАТЬ, ПЕРЕЗАПИСАТЬ, УДАЛИТЬ и APPEND уже знаком программистам на COBOL и описывает действия, предпринимаемые для доступа к дисковым файлам S/36 с использованием BASIC. Невозможно получить доступ к каждому типу файла S/36, поскольку к ним относятся системные файлы, библиотеки и папки, но возможен доступ к каждому созданному пользователем файлу S/36 с фиксированной длиной записи (только программы FORTRAN могут использовать переменную длину записи). будет достаточно. Файлы на диске можно открывать последовательно, по индексу или относительно (по номеру записи). Если файл поддерживает удаление, записи можно удалить с помощью УДАЛИТЬ заявление. Чтобы добавить запись, используйте ПИШИТЕ APPEND, указанный в оператор OPEN ) и для обновления использования ПЕРЕПИСАТЬ .

В S/36 BASIC для печати на принтере необходимо использовать файл устройства. Файл принтера по умолчанию с именем #255 всегда существует при запуске BASIC. Он имеет имя принтера BASIC255 и открывает устройство, которое является принтером по умолчанию для терминала, который начинает сеанс BASIC. При желании можно создать другой файл принтера с номером от 1 до 254. Используйте OPEN #x: PRINTER,NAME= и т. д., указав столбцы, идентификатор устройства или другие параметры по мере необходимости. Ключевое слово PAGEOFLOW можно использовать для обнаружения состояния переполнения страницы для принтера.

Некоторые версии BASIC позволяют программисту сортировать массив. В S/36 BASIC нет функции для этой проблемы, но есть интересное решение. Программист может определить массив с тем же количеством элементов, что и целевой массив, и использовать AIDX или DIDX для создания возрастающего или нисходящего индекса. Каждый элемент нового массива будет содержать число, представляющее порядковую отсортированную позицию целевого массива, поэтому, если АМЕРИКА является шестым элементом массива A$ , но сначала в алфавитном порядке, затем установка A() = DIDX(A$) вызовет A(6) содержать значение 1.

Написание программы на BASIC гораздо увлекательнее, чем переписывать одну и ту же программу каждый раз, когда вы ее используете, поэтому авторы BASIC позволяют программистам СОХРАНИТЕ свой программный код для члена библиотеки и для ЗАМЕНИТЕ его при внесении изменений.

SAVE PROG1,PGMRLIB заставляет текущий модуль сохраняться как член подпрограммы (тип R) с именем PROG1 в пользовательской библиотеке с именем ПГМРЛИБ .

Обратите внимание, что файлы System/36 не являются частью библиотек. Если файл на диске назван FNF001 , затем Оператор OPEN, подобный этому, может работать:

OPEN #3:"NAME=FNF001,SEQUENTIAL",INPUT

Не имеет значения, какая библиотека используется для доступа к файлу FNF001.

RENUMBER — это команда S/36 BASIC, используемая для изменения нумерации операторов. Все внутренние ссылки на номера операторов немедленно пересчитываются.

В System/36 BASIC есть очень опасная команда под названием БЕСПЛАТНО . Ввод текста FREE, за которым следует имя файла, удаляет этот файл без следа. Он будет работать для каждого пользовательского файла, если только не возникнет конфликт безопасности или условие использования, которое блокирует его.

В System/36 BASIC есть еще одна опасная команда под названием ЗАМОК . Команда LOCK сделает текущий исходный код программы недоступным, и это необратимо. Всегда сохраняйте разблокированную копию перед использованием LOCK.

Несовместимость между S/34 и S/36

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

System/34 BASIC и System/36 BASIC очень похожи; однако несовместимость машинного кода делает невозможным перенос программы BASIC-члена подпрограммы между этими системами.

См. также решение «Квадратный корень из 2» и «ПИ π» для решения, опубликованного для мэйнфреймов в 1980-х и 1990-х годах.

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ad5c5f304f78f57b0cf34422898998e3__1655441220
URL1:https://arc.ask3.ru/arc/aa/ad/e3/ad5c5f304f78f57b0cf34422898998e3.html
Заголовок, (Title) документа по адресу, URL1:
IBM System/36 BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)