Программные средства систем первичной обработки информации

Модель системы обработки первичной информации. Опции, псевдокомментарии, константы, переменные, функции, процедуры, выражения, операторы (описания, присваивания, управления, вызова процедур, обработки прерываний, ввода/вывода, дополнительные) языка Q-2.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 16.01.2018
Размер файла 168,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Программные средства систем первичной обработки информации

1. Общая модель системы обработки первичной информации. Система КАМАК

Обобщённая модель АС первичной обработки. Экспериментальная модель можно представить в следующем виде:

Рис. 1

1 - подсистема регистрации и хранения экспериментальных данных.

2 - подсистема связи с ЭВМ верхнего уровня.

3 - подсистема связи с экспериментатором.

4 - управляющая микроЭВМ.

5 - экспериментатор.

6 - подсистема документирования результатов эксперимента.

7 - подсистема связи с объектом исследования.

8 - подсистема экспресс-анализа.

9 - объект исследования.

При построении систем сбора информации особое внимание уделяется подсистеме связи автоматизированного исследовательского комплекса с объектом исследования. С её помощью осуществляется получение потока измерительной информации, первичная его обработка, задание сигналов управления объектам исследования. Существуют различные виды таких подсистем, управление которыми осуществляется с помощью соответствующих технических и программных средств. Одним из стандартов управления таких систем является стандарт КАМАК (Computer Application to Measurement Control). Этот стандарт нашёл международное призвание и применяется при постановке экспериментов в ядерной физике, машиностроении, медицине и т. д. Упрощенная структура АСНИ в стандарте КАМАК имеет вид:

Рис. 2

· ОИ - объект исследования;

· МК - магистраль крейта (восьмиразрядная);

· М - модуль (ЦАП, АЦП);

· КК - контроллер крейта;

· ОШ - общая шина;

2. Система QUASIC-2 (Q-2)

Система Q-2 предназначена для выполнения программ на микро- и миниЭВМ. Её можно рассматривать как некоторую резидентную ОС с малой конфигурацией. Программирование в данной ОС осуществляется на языке близким к языку BASIC и ASSAMBLER. При этом она обеспечивает достаточно хорошее быстродействие, свойственные ASSAMBLER и позволяет программировать на языке высшего уровня и поддерживать диалоговый язык работы.

Система имеет три основных компонента:

1. монитор - обеспечивает редактирование исходного текста программы, управление выполнение программы, сервисные операции.

2. транслятор - переводит текст программы в объектные коды.

3. подпрограммы - чаще всего выполняются на языке ASSAMBLER и имеют различные функциональные назначения.

Язык системы ориентирован на решение задач в реальном масштабе времени. Система Q-2 может использоваться автономно или в рамках стандартных ОС:

RT 11(SY/РАФОС), RSX - 11M (OC PB).

информация оператор псевдокомментарий язык

3. Описание языка QUASIC-2 (Q-2)

3.1 Структура программы

Программы состоит из строчек, любая из которых имеет свои номер от 1 до 32767 (215 - 1). Строчки располагаются в порядке возрастания номеров независимо от той последовательности при их вводе. Длина строчки не должна превышать 72 символов. Любая строка содержит один или несколько операторов. Операторы в строке разделяются символом « \ ».

Например, 50 Y = X1.BIS.X2 \ Z = COM.Y

Операторы нельзя переносить на другую строчку. Допускается применение пустого оператора. Оператор может иметь любую длину, но системой распознаются только первые шесть символов. Операторы могут содержать комментарии, которые начинаются символом « ! ». Часть программы, начиная с символа « ! » и до конца строки или разделителя \, не выполняется. Исключением является псевдокомментарий.

3.2 Опции, псевдокомментарии

Опции определяют особенности или режимы трансляции, а также режимы выполнения отдельного операнда. Опции имеют вид: +Х или -Х, где Х - символ. +Х означает, что данная особенность (режим) требуется. -Х - означает, что данная особенность (режим) не требуется. Опции, относящиеся к отдельным операторам, входят в состав этих операторов. Опции, относящиеся к трансляции, задаются с помощью псевдокомментария. Псевдокомментарий начинается !, далее + или -, далее опция.

3.3 Константы

Целые константы

Целое десятичное число - это последовательность десятичных чисел. Значение десятичного числа не должно превышать 32767. Восьмиричное число - последовательность восьмиричных цифр. Количество цифр может быть любым, но учитывается только 16 младших двоичных разрядов.

Строчка символов - это последовательность символов, заключенных в апострофы ` … ' или кавычки “ … ”.

Целая константа - это либо десятичная константа или восьмиричная, либо символьная константа.

Десятичная константа - это целое число, либо целое число, перед которым стоит знак + или - .

Восьмиричная константа - это восьмиричное число, после которого стоит символ В. Например, 377В или 1001В.

Символьная константа - строка символов, длины не более двух.

Любая целая константа занимает в памяти одно слово, т.е. 2 байта.

Вещественные константы

Вещественные константы записываются в десятичной форме и, возможно, с экспоненциальным множителем. Перед или после десятичной точки обязательно должна стоять цифра. Общая форма записи вещественной константы имеет вид: [+, -] <целое>. <целое>[E[+, -]<целое>].

Правильно 0.12345, 12345.0Е-5.

Неправильно .12345, 12345.Е-5.

Вещественная константа в памяти занимает 2 слова в формате с плавающей запятой.

3.4 Переменные

Имя переменной - это последовательность букв и цифр, причём первым символом должна быть строчная латинская буква или символ .Переменные могут быть одного из следующих типов: целые, вещественные, байтовые. Все переменные имеют структуру одномерного массива, то есть состоят из компонентов, к любым из которых имеется доступ. Количество компонентов в переменной называется её размером. Если размер переменной равен 1, то она называются простой. Тип и размер переменных описывается операторами INTEGER, REAL, BYTE. Если переменная не была описана, то она по умолчанию считается простой целой переменной. Язык Q-2 не позволяет работать с переменной в целом как с массивом, а только с отдельными её компонентами (кроме простых переменных). В дальнейшем, употребляя слово, переменная будет иметь в виду компонент переменной. Например, А1(254) (это 255 выборка); А1(0). Компоненты переменной указываются с помощью индексов. Первый компонент имеет индекс 0, последний n-1, где n - размер переменной. Если имя переменной задано без индекса, то это эквивалентно заданию индекса 0. Var = var(0). Индекс должен быть одного из следующих видов:

1. Целое число AR(5).

2. Простая переменная (без индекса) TABL(I).

3. Простая целая переменная +/- целое числоLINE(K+1).

Выход индекса задан константой (выход обнаруживается при трансляции). В языке имеется возможность доступа к байтам для любых переменных (не обязательно описывать как байтовые). Для этого используется преобразователь типа переменной, который в виде символа % добавляется к имени переменной. Рассмотрим примеры для простой переменной и переменной размера >1.

Рис. 3

Для упрощения синтаксических конструкций языка введены служебные переменные. Эти переменные заранее определенны в любой программе. Они могут также использоваться, как и обычные переменные, но имеют дополнительную служебную нагрузку. Различные следующие служебные переменные (целого типа):

MOD - после выполнения операции деления получается результат равный остатку.

IOSM - статусное слово ввода/вывода (служебная переменная, обеспечивающая доступ из программы к внутренним ячейкам системы Q-2).

FTIM - предназначен для работы с таймером системы.

3.5 Функции

В языке имеется фиксированный набор стандартных функции ABS, SQRT,SIN,COS,ATAN,EXP,LOG (натуральный). Все функции имеют аргумент, который может быть задан целым или вещественным выражением. В качестве функции всегда используется вещественные.

3.6 Процедуры (программы)

Процедуры могут быть написаны как на самом языке Q-2(в этом случае они должны содержаться в тексте программы), так и на ассемблере или другом языке программирования (в этом случае они должны быть откомпилированы и загружены отдельно). Для процедур написанных в Q-2 передача параметров не поддерживается; любая процедура имеет имя, которое должно подчиняться тем же правилам, что и имена переменных.

3.7 Адресные константы

Адресная константа записывается в виде: #<переменная> или #<имя функции или процедуры>. Переменная должна либо не иметь индекса, либо индекс должен быть задан константой. Адресная константа имеет значение равное адресу переменной (функции, процедуры).

3.8 Выражения

Выражение строится из элементов, при помощи операции и скобок. Элемент выражения - это константа, переменная, адресная константа или обращение к функции. В выражения разрешается смешивать элементы разного типа. Если в выражении операнды имеют одинаковый тип, то и результат операции будет иметь тот же тип. Если в выражении один операнд имеет целый тип, а другой вещественный, то производится автоматическое преобразование целого операнда в вещественный. Результат будет вещественный.

1/2 = 0 1.0/2 = 0.5

Байтовые операнды всегда преобразуются в целый тип. Операции делятся на два типа:

1. Одноместные:

· +, - (или .NEG.) NEG - негативные. Это знаки.

· .INC., .DEC. - инкремент, декремент.

· .ASL., .ASR. - сдвиг влево/вправо.

· .ROL., .ROR. - циклический сдвиг влево/вправо.

· .COM. - инвертирование.

· .SWAB. - перестановка байтов.

· .ADC. - прибавление переноса.

· .SBC. - вычитание переноса.

2. Двухместные

· + или .ADP. - сложение.

· - или .SUB. - вычитание.

· .BIS. - установка разрядов (поразрядное логическое или) АВ.

· .BIC. очистка разрядов (поразрядное логическое вычитание) АВ=А-В.

Рассмотрим некоторые примеры выполнения операций:

1. .ASL., .COM., .SWAB, .STAT(2) выполнение одномерных операции над переменной STAT(2). Выполняется компилятор справа налево ASL, COM, SWAB.

2. .NEG.A - это эквивалентно -А.

3. .ASL.A - это эквивалентно А*2 (сдвиг на один разряд влево).

С - разряд промежуточный (одноразрядный аккумулятор).

4. .ASR.A это эквивалентно А/2 (сдвиг на один разряд вправо).

Пятнадцатый разряд (знаковый) не сдвигается.

5. .ROL. циклический сдвиг влево.

6. .ROR.

7. .SWAB.

8. .ADC.A - это эквивалентно прибавления к операнду А значения, содержащегося в регистре аккумуляторе С (значение 0 или 1).

9. .SBC.A - это эквивалентно вычитанию из операнда А значения, содержащегося в регистре аккумуляторе С.

10. .BIS. выполняется операция поразрядное дизъюнкции (или) левого и правого операндов.

11001

00100

11101

11. .BIC. соответствующий разряд левого операнда сбрасывается в нуль, если соответствующий разряд правого операнда равен 1.

11101

00100

01001

01001

12. X1.BIC.M1.BIS.X2.BIC.M2

Обработка операндов в данном выражении производится в соответствии с приоритетом.

Приоритеты операции:

1. одноместные операции

2. *, / , .BIC.

3. +, - , .BIS.

В рассмотрении выражении сначала выполняются операции между Х1 и М2, далее операция .BIS.

3.9 Операторы

Различаю следующие группы операторов: описания, присваивания, управления, описания и вызова процедур, обработки прерываний, ввода/вывода, дополнительные (работа с таймером и аппаратурой КАМАК).

Операторы описания

Операторы присваивания предназначены для описания переменных. В них указывается имя, тип, размер и возможно адрес, по которому будет размещена переменная. Для любого типа имеется свой оператор описания. Имя переменной должно быть уникальным, то есть отличатся от имен других операторов, функции и процедур. В скобках указывается максимальное значение индекса (размер переменной -1). Через двоеточие, когда необходимо, указывается восмиричный адрес. Максимальное значение переменной и её адрес необязательны. По умолчанию значение индекса равно 0, а адрес выбирается произвольно транслятором в соответствии области ОП.

Операторы присваивания:

1. INT - описывает целые переменные. Максимальный размер переменной 32768.

10 INT L(99), LIST(255)

20 INT RRK(6): 177400

2. REAL - описывает вещественные переменные. Максимальный размер переменной 16384.

15 REAL X,Y,LAMBDA(200)

3. BYTE - описывает байтовые переменные. Максимальный размер переменной 32768.

25 BYTE MAS(50) LINE(15)

Операторы присваивания

Данные операторы записываются в виде:

<переменная>=<выражение>

Выражение вычисляется и его значение присваивается переменной. Если тип выражения не совпадает с типом переменной, то производится автоматическое преобразование к типу переменной

70 X1 = (-B+SQRT(B*B-4*A*C)) / (2*A).

Оператора управления

Оператор IF.

Он служит для условного выполнения некоторой последовательности операторов. Этот оператор является началом одноименной конструкции, которая должна обязательно заканчиваться оператором ENDI. Данная конструкция может содержать операторы ELSIF и ELSE. В общем случае конструкция имеет следующий вид:

IF <условие> THEN

операторы

[ELS IF <условие> THEN

операторы … ]

[ELSE операторы]

ENDI

Конструкция IF соответствует следующей блок-схеме:

А) ELSE, ELS, IF - отсутствуют

Б) ELSIF отсутствует

В)

Оператор ELSIF.

Он может встречаться неограниченное число раз, а также может встречаться один раз.

Пример:

110 IF A = `Да' THEN

120 `Обработка ответа 'Да'

130 ELSIF A = `Нет' THEN

140 `Обработка ответа 'Нет'

150 ELSE

160 'обработка ошибочного ответа

170 ENDI

Оператор WHILE.

Он служит для условного повторения некоторой последовательности операторов. Условие повторения проверяется до выполнения последовательности операторов. Оператор WHILE является началом одноименной конструкции, которая заканчивается ENDW. Конструкция имеет вид:

WHILE <условие> операторы ENDW

Рис. 3

Оператор REPEAT UNTIL.

Этот оператор выполняет те же функции, что и WHILE. Условие повторения проверяется после выполнения последовательности операторов. Оператор REPEAT является началом одноименной конструкции, которая заканчивается оператором UNTIL.

Структура:

REPEAT

Операторы

UNTIL <условие>

Рассмотрим пример использования такой конструкции:

Пусть имеется массив А, содержащий N элементов, и число х. Требуется найти индекс I элемента, при котором А(I)=х, 1 I N. Если такого I нет, то возвращается I = 0.

Рис. 4

100 A(0) = X

110 I = N - 1

120 REPEAT

130 I = I - 1

140 UNTIL A(I) = X

Оператор LOOP.

Этот оператор служит для безусловного повторения некоторой последовательности операторов. Он является началом одноименной конструкции, которая должна заканчиваться оператором ENDL и может содержать произвольное количество операторов EXIT.

Конструкция: LOOP

Операторы [EXIT]

Операторы ENDL

Конструкция LOOP - это объединение конструкции WHILE и REPEAT. Любой оператор EXIT, встречающийся в конструкции приводит к переходу на оператор следующий за оператором ENDL.

Оператор FOR.

Этот оператор служит для повторения некоторой последовательности операторов, заданное определенное число раз. При любом повторении некоторая переменная, называется переменной цикла. Переменная, которая уменьшается или увеличивается на определенное значение, называется шагом. Оператор FOR является началом одноименной конструкции, которая должна обязательно заканчиваться оператором ENDF. Рассмотрим два варианта этой конструкции:

1.Увеличение.

FOR V = A1 TO A2 [STEPA3]

Операторы ENDF

Данная конструкция эквивалента

V = A1

WHILE V <= A2

операторы

V = V + A3

ENDW

2. Уменьшение

FOR V = A1 DOWN TO A2 [STEPA3]

Операторы ENDF

Данная конструкция эквивалента

V = A1

WHILE V >= A2

операторы

V = V - A3

ENDW

В рассмотренных примерах V - переменная цикла, А1 и А2 - начальное и конечное значение переменной, А3 - шаг.

Переменная цикла должна быть простой целой. Начальное и конечное значение, а также шаг - целыми константами или переменными без индекса или с индексом, заданный константой. Если шаг не задан, то по умолчанию он считается равным 1. Если величины начального и конечного значений переменных не соответствуют варианту, например, для варианта1: А1 > A2, а для варианта 2: A2 > А1, то цикл не выполняется ни разу.

Оператор GOTO.

Он передает управление на строку. Записывается:

GOTO <номер строки>

175 GOTO30.

Оператор STOP.

Прекращает выполнение программы. На терминале печатается сообщение:

STOP AT LINE N PC = A,

где N - номер строки, в которой стоит оператор STOP, А - восьмиричный адрес, соответствующий инструкции +2. Далее управление передается монитору.

Оператор END.

Он заканчивает программу. Присутствие оператора END в программе необязательно. Если он отсутствует, трансляция заканчивается на строке с набольшим номером.

Операторы описания и вызова процедур

Описание процедур.

Описание процедуры содержит имя процедуры и адреса входа в процедуру. Имя процедуры также должно быть центральным. Оператор описания процедур PROC имеет вид: PROC<имя процедуры> [: <адрес>].

Первый случай: внутренние процедуры. В этом случае адрес должен отсутствовать. За оператором PROC должны следовать операторы, составляющие содержание (тело) процедуры, которая должна оканчиваться оператором END. Тело процедуры может содержать произвольное количество операторов RETURN, по которым осуществляется возврат из процедуры во время выполнения условных операторов. Операторы RETURN могут и не включатся в состав процедуры. В этом случае возврат из процедуры обеспечивает оператор ENDP. Конструкция имеет следующий вид:

PROC NAME

Операторы [RETURN]

Операторы ENDP

Второй случай: внешние процедуры. В этой процедуре внешний адрес должен быть обязательно задан. Оператор PROC вызывает имя процедуры с указанным адресом. В данной процедуре тело процедуры и оператор ENDP должен отсутствовать.

Вид описания следующий:

PROC NAME:<адрес>

Вызов процедуры.

Он имеет вид:

NAME [P1, P2 …],

где Р1, Р2 и так далее - параметры, которые должны быть переменными без индекса или индексом заданных константой. Для внутренних процедур, написанных на Q-2, параметры могут быть заданы, но они не передаются процедуре.

Примеры:

115 PROC PL: 60000 ! Описание внешней процедуры PLOT

125 PROC INIT ! Описание внутренней процедуры INIT

130 FOR I = 1 TO N! \

135 A(I) = 0 ! Тело процедуры

140 ENDF ! /

1145 INIT ! Вызов внутренней процедуры INIT

2145 PL X, Y ! Вызов внешней процедуры PLOT с параметрами X, Y

Обработка прерываний

Оператор ON.

Этот оператор описывает безымянную процедуру, предназначенную для обработки некоторого события. События - это прерывания по некоторому вектору или окончание программы. Когда такое событие происходит, выполнение программы прерывается и вызывается соответствующая подпрограмма обработки прерываний. После выполнения продолжается выполнение основной программы после m прерываний. Положение оператора ON в основной программе безразлично. За оператором ON должны следовать операторы, составляющие процедуру (тело процедуры), которые должны заканчиваться ENDO.

ON

Операторы [RETURN]

Операторы ENDO

Оператор ON имеет 2 варианта:

1. ON A [PSW S]. Этот вариант предназначен для обработки прерываний по вектору А, где А - восьмиричный адрес вектора. Адрес А должен быть меньше 500 и делиться на четыре. Параметр PSW S является необязательным, где S - восьмиричное число, которое задает слово состояния процессора для обработки прерывания. По умолчанию S = 200. Если имеется место PSW 200, это означает, что процедура обработки прерывания не может быть прервана.

2. ON STOP. Этот вариант указывает, что процедура должна быть выполнена при окончании программы пользователя, то есть когда выполнение программы заканчивается на операторах STOP и END, или последним операторе программы. Данный вариант запускается также, когда программы прерывается при помощи одновременного нажатия <CTRL + P> или фатальной ошибке. Главное назначение данного оператора состоит в запрещении прерывания от ВУ пользователя. Если при окончательной работы программы прерывания от ВУ будет продолжать возникать проблемы, то они будут обрабатываться программой пользователя во время работы монитора. Пример:

100 ON 300

110 BUFF(I) = DDB

120 I = I+1

130 ENDO

140 ON STOP

150 DDS = 0

160 ENDO

Оператор REQUEST.

Это оператор дает возможность пользователю управлять выполнением программы прерывания с клавиатуры, не переходя к монитору. Прерывание осуществляется нажатием ESC.

REQUEST [<к номеру строки>]

Если номер строки задан, то оператор разрешает прерывание по ESC. После выполнения этого оператора, любое нажатие на ESC вызывает прерывание и переход на указанную строку. Любой новый оператор REQUEST может устанавливать новый адрес перехода по прерыванию. Если оператор REQUEST не содержит номера строки, то прерывание по ESC запрещается. Пример, который показывает, как можно прерывать выполнение бесконечного цикла.

100 REQUEST 200

110 LOOP

….

190 ENDL

200 REQUEST

Операторы ввода/ вывода

Операторы OPEN и CLOSE служат для открытия и закрытия каналов. Операторы GET и PUT используются для формального ввода и вывода. Номер канала в операторах GET и PUT указывает, куда выводятся и откуда выводятся данные. Число номера канала задается от 1 до 8. Канал должен быть связан файлом или устройством оператором OPEN. Оператор CLOSE освобождает канал. Список в операторах GET и PUT указывает, что вводить или выводить.

Примечание: по умолчанию, если в процессе выполнения любого оператора ввода/вывода происходит ошибка, то выполнение программы прекращается и на терминал выводится сообщение. Если в операторе заданна опция +Е, то программа продолжается, а в переменную IOSW(1) записывается код ошибки.

Оператор OPEN.

Этот оператор записывается следующим образом:

OPEN [<опции>]<номер канала><файл>

N создание нового файла, по умолчанию -N.

C предварительное закрытие открытого файла (по умолчанию -C).

G глобальный канал (по умолчанию -G).

E продолжение выполнения программы при наличии ошибки открытия канала (по умолчанию -E).

Файл должен быть задан или символической строчкой или переменной. Если файл задан переменной, то эта переменная должна содержать последовательность символов, заканчивающаяся кодом 0. Примеры:

1100 OPEN 1'FI: INPUT.DAT'! Открытие существующего файла.

1120 OPEN +N 2 'FI: INPUT.DAT'! Создание нового файла.

1450 OPEN 3 'LP'! Назначение канала 3 на печатающее устройство.

2000 OPEN +E +C 5 FILE

Оператор CLOSE.

CLOSE [<опции>]<номер канала>

G - глобальный канал (по умолчанию -G).

E - продолжение выполнения программы, при ошибке закрытия канала (по умолчанию -E).

Оператор PUT.

Структура:

PUT [<Опции>] [<номер канала>] [<список>]

L - перевод стоки после вывода списка (по умолчанию +L)

E - продолжение выполнения программы при ошибке вывода (по умолчанию

-E). Если номер канала не указан, то производится вывод на терминал. Список имеет следующую структуру:

<Элемент><Элемент>…

Элемент - это

1. / [//…] Перевод стоки один (или несколько) раз;

2. Строка символов;

3. Переменная в формате VAR[: FORMAT]. Здесь используются следующие виды форматов:

a) I[N] - целый десятичный, N - количество позиций, по умолчанию семь для целых и для байтов;

b) O[N] - целый восмиричный, N - количество позиций, аналогичных формату I[N];

c) G[N,M], F[N,M], E[N,M] - вещественные форматы, где N - количество позиций, М- количество значащих цифр для форматов G и E и количество цифр после точки для формата F. По умолчанию N и M выбирается 15 и 7;

d) A: EXP - символьный формат. EXP - это выражение, определяющее количество байтов. По этому формату выводится последовательность байтов без преобразования.

По умолчанию для целых и байтовых переменных используется формат I, а для вещественных формат G. Если значение переменной не может быть выведено по указанному формату, то оно заменяется звездочками. При выводе по формату А символы с кодом меньше 32 игнорируются, кроме кода 0 - символ VEOL. Оператор VEOL интерпретируется как перевод стоки. Если в операторе PUT список отсутствует, то выводится пустая стока.

Примеры:

100 PUT X ! печатает Х и переводит строку

120 PUT -L X ! печатает Х и не переводит строку

500 PUT LINE: A: N+1 ! вывод N+1 символа по формату А

Оператор GET.

GET[<опции>][<номер канала>][<список>]

Опции:

Р - ввод приглашения ? при вводе с терминала, по умолчанию, +Р;

F - продолжение выполнения программы, при обнаружении конца файла

( -F). Если номер канала не указан, то ввод производится с терминала. Список имеет структуру аналогичную оператору PUT. В качестве элемента используется переменная в формате VAR[:FORMAT]. Используемые форматы:

1. I целый десятичный. В этом формате могут выводиться любые константы

2. O целый восьмиричный. В этом формате могут выводиться только восьмиричный числа

3. G F E вещественные форматы. Для ввода эти все форматы эквивалентны.

4. A: VAR символьный формат. Эта переменная, в которую попадает количество введенных байтов. По этому формату вводится последовательность байтов без преобразования.

По умолчанию для целых байтовых переменных используется формат I, а для вещественных - G. Когда в списке ввода задано несколько переменных, вводимые значения должны разделяться запятыми. Если значения не вводятся, то вместо них ставится код 0. Ввод с терминала заканчивается символами. Если используется, то все вводимые переменные сохраняют свои значения. В формате А после введенной последовательности байтов передается символ VEOL. Если в операторе GET список отсутствует, то производится ожидание производительного ввода.

Пример:

400 GET X: 0

120 GET A, B, C

450 GET LINE: A: N ! Ввод по формату А.

Дополнительные операторы и особенности программирования в Q-2

Оператор DATA.

Служит для задания начальных значений переменных. Начальные значения присваиваются при трансляции. Оператор имеет вид:

DATA V1/[K1*]D1, [K2*]D2, … /, V2/… ,

где V1 и V2 - переменные, D1 и D2 - константы, K1 и K2 - константы кратности (константы).

Переменные либо не должны содержать индексов, либо индексы должны быть константами. Кратности могут отсутствовать. В этом случае считается, что они равны 1. Количество констант, то есть K1+K2+... не должны превышать переменной.

Примеры:

10 INT A(50), B(50) \ DATA A/51*0/, B(40) /11*0/

40 DATA EX /'ПР','ИМ','ЕР'/ ! Размер EX должен быть менее трёх

Программирование ВВОДА/ВЫВОДА.

Операторы описания позволяют разместить переменную любого типа по заданному адресу. Это позволяет программировать нестандартные ВУ на физическом уровне.

А) Ввод символа с терминала:

10 BYTE TTS: 177560, TTB: 177562 ! регистр терминала

20 WRITE TTS >= 0 \ENDW ! ожидание ввода символа

30 CIAS = UTB ! чтение символа из буферного регистра

Б) Вывод блока на магнитную ленту.

10 INT BLOCK (1023)

20 INT MTCS: 172522, MTWC: 172524, MTMA: 172526

30 MTMA = # BLOCK ! Запись адреса памяти

40 MTWC = 1024 ! Запись счетчика слов

50MTCS = 5 ! Запись команды

60 WRITE MTCS% >= 0 \ ENDW ! Ожидание операции

Стиль программирования.

В языке Q-2 описание переменных не обязательно. Все неописанные переменные являются простыми, целыми переменными. Описание процедуры обязательно, но оно не обязательно должно предшествовать их вызову. Эти возможности могут быть полезными при создании коротких программ разового использования (отладочные и тестирующие фрагменты). Но такой подход является источником ошибок для более крупных программ. Правильный стиль программирования предполагает описание переменных и процедур до их использования; задание режима А при трансляции программы обеспечивает проверку этих правил.

Ввод/вывод.

Система Q-2 обслуживает операции ВВ для стандартных физических устройств или файлов на этих устройствах. Любое физическое устройство имеет свое имя:

ТТ - терминал, PR - считыватель с перфоленты, РР - перфоратор ленты, LP - принтер, печатающее устройство, NL - нулевое устройство, FI - интерфейс с файловой системой, NT - интерфейс с сетью ЭВМ. Нулевое устройство реализуется программно. Интерфейс файловой системы - это также программно реализующее устройство, осуществляющее связь Q-2 с внешней средой, например с ОС. Имя файлов в Q-2 задается строчкой символов следующего вида:

`DD[:FFFFFF]',

где DD - имя устройства, FFFFFF - внешнее имя файла. Пример:

`FI: MT1: PROGR.Q' - Файл с именем PROGR.Q размещен на магнитной ленте MT1.

Работа системы

Терминал.

Взаимосвязь системы Q-2 обеспечивается через терминал. С клавиатуры терминала пользователь вводит команды, а на экране отражаются сообщения от системы. При вводе с терминала, система определенным образом обрабатывает символы, называющиеся управляющими.

· CR - заканчивает ввод с терминала.

· D - стирает последний введенный символ в текущей строчке.

· CTRL+V - стирает текущую строку. Эта дает возможность ввести сточку заново. Уничтожение строки нужно принять до нажатия CR.

· CTRL+S - приостанавливает ввод на терминал.

· CTRL+Q - возобновляет вывод на терминал.

· CTRL+R - отменяет и разрешает вывод на терминал.

· CTRL+P - выход в монитор в любой момент времени при использовании программы

· ESC - прерывание программы и переход по заданному адресу, задаваемого оператором.

· SO/SI - соответствующий русский/латинский регистр

Монитор.

Общее описание.

После загрузки системы Q-2 управление получает монитор, который отражает следующее QUASIC - 2 SYSTEM READY. Система, находящаяся в режиме ожидания ввода анализирует тип вводимой информации. Пользователь может вводить либо программу на языке Q-2, либо команды монитора, если введенная строка начинается с цифры, то монитор считает ее строкой программы и запоминает в текстовом буфере. Если строка начинается с буквы, то монитор считает ее командой и переходит к ее выполнению. Ввод любой строки заканчивается нажатием кнопки СR. Команды идентифицируются по первым шести символам. Если команда содержит ошибку, то она не выполняется и выдается сообщение вида ERROR I, где I - код ошибки. Сообщения об ошибках могут пользоваться при вводе текста программы. Если монитор не распознает команду, то передает всю строку транслятору и после трансляции выполняются все полученные команды. Этот режим называется режимом непосредственного доступа. Находясь в мониторе он позволяет выполнить любой оператор языка или последовательность операторов, разрешенных в одной строке. Строки программы вводятся в текстовый буфер в соответствии с их номерами. Если в тексте присутствует строка с вводимым номером, то новая строка записывается на место старой.

Команды монитора.

Монитор использует следующие команды:

· NEW - стирание программы и ввод новой программы из заданного файла. Формат команды NEW FILE, где файл - имя функции.

· READ - ввод текста из заданного файла и добавление его к буферу текста READ FILE.

· WRITE - вывод программы в заданный файл. WRITE FILE [K[, L]], где K, L - номера строк. Если K и L отсутствуют или вместо них ALL, то производится вывод всей программы, если присутствуют K или L, то осуществляется вывод соответствующих строк. Если присутствуют K и L, то производится вывод программы со строки К по строку L.

· LIST - вывод исходной программы в виде, удобном для чтения. LIST[FILE] [K[, L]]. Параметры имеют те же значения, что и операторы READ.

· DEL (DELETE) - стирание строк DEL K [, L].

· EDIT - редактирование исходной программы. EDIT K [, L].

· Для любой строки пользователь вводит строку модификации, которая имеет вид:

/<что менять>/ <на что менять>,

где / - разделитель, в качестве которого может быть использован любой символ, кроме цифр и букв. Если в строке модификации фрагмент <что менять> не задан, то производится вставка фрагмента <на что менять> в начало строки. Если фрагмент <на что менять> не задан, то в строке производится стирание <что менять>.

· Команда REPL(REPLASE) - перестановка строк. Формат команды REPL K[, L] TO N, где K, L, N - номера строк. Строки, имеющие номера и размещенные в интервале от K до L, получают номера N+I.

· Команда BYE - заканчивает работу системы Q-2. При этом закрываются все открытые команды.

· RUN - выполнение программы в случае, если она оттранслирована и не содержит ошибок.

· COMP - трансляция программы. COPM [<опции>][FILE]. Опции задают режим компиляции.

· SHOW - вывод на печать различной системной информации.

SHOW [FILE] [KEY] [K[, L]]

· KEY - ключевое слово, определяющее что выводить: ID - выводится название системы, версия, дата последних изменений, код пользователя. Дата выводится в упакованном восьмиричном коде.

31324=3-13-248=03-NOV-20

· MEM - выводится информация о распределении памяти. Она состоит из четырёх строчек:

А) Название области памяти.

Б) Начальный адрес (восьмиричный).

В) Размер области (десятичный).

Г) Размеры системной области и буферирование ВВ.

· LUN - выдает информацию о логических каналах.

· CODE - выдает команды, в которых транслируются исходные программы.

· DATA - выдает таблицу распределений переменных в памяти.

· OBJ - CODE+DATA.

· SYS - выдает таблицу распределения системных переменных. По умолчанию KEY=ID.

K и L - номера строк исходной программы, для которой нужно выводить команды (допустимо только с ключевым словом CODE). По умолчанию выводится вся программа.

Непосредственный режим.

Непосредственный режим осуществляет компиляцию и выполнение строки команды. Данный режим полезен при отладке программы. Он позволяет напечатать (оператором PUT) или изменить оператором присваивания любые переменные программы, а также перейти оператором GOTO на любую строку программы. Непосредственный режим имеет ряд ограничений:

1. Нельзя использовать оператор PROC без адреса и оператора ON.

2. Не разрешается неявное описание переменных.

3. Если выполняется переход на программу пользователя, то эта программа должна быть оттранслирована и не содержать ошибок.

Компиляция, выполнение и отладка.

Компиляция программы. Для того, чтобы выполнить программу, ее необходимо скомпилировать. Компиляция осуществляется явно командой COMPILE, либо неявно командой RUN, если программа не была ранее скомпилирована. В процессе компиляции мог быть создан листинг программы. Если в программе имеется ошибка в какой-то строке, то в след за этой строкой выдается значок «». Этот знак указывает на то, что место ошибки находится не правее данного знака. Также выводится сообщение об ошибке - «ERROR I», где I - код ошибки. В конце текста программы может появиться сообщение об ошибке ERROR I AT LINE N, говорящее о том, что в строке N имеется ошибка. При компиляции может произойти переполнение внутренней таблицы компилятора. В этом случае сообщение об ошибке имеет вид SYS ERR I, то есть системная ошибка.

Если программа успешно оттранслирована, то она может быть выполнена. Выполнение осуществляется командой монитора RUN. В ходе выполнения программы могут возникнуть ошибки, о которых выдается сообщение на терминал. В любой момент выполнения программы пользователь может прервать её, введя CTRL+P. При этом управление передается монитору.

Размещено на Allbest.ru

...

Подобные документы

  • Получение изображения объекта с помощью оптико-электронных систем, построенных на основе ПЗС-приемника. Методы обработки первичной измерительной информации. Реализация алгоритма обработки графической информации с помощью языка программирования Python.

    лабораторная работа [1,1 M], добавлен 30.05.2023

  • Программирование линейных алгоритмов. Процедуры ввода READ и READLN и вывода WRITE и WRITELN. Примеры решения задач на языке Паскаль. Оператор присваивания и выражения. Основные способы формирования структурных операторов. Операторы вызова процедур.

    курсовая работа [44,3 K], добавлен 18.03.2013

  • История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.

    контрольная работа [2,3 M], добавлен 04.05.2015

  • Вычислительные системы, сети и телекоммуникации: цели и задачи обработки информации, аппаратные средства её реализации. Функции управления ЭВМ, их программные составляющие (память, интерфейс, средства обработки). Многопроцессорные вычислительные системы.

    курсовая работа [2,1 M], добавлен 17.12.2009

  • Выбор операционной системы и среды программирования. Рабочие процедуры обработки IRP-пакетов. DPC–процедура отложенного вызова. Структура Legacy-драйвера. Периодичность обновления информации о процессах и потоках. ISR–процедура обработки прерываний.

    курсовая работа [227,5 K], добавлен 23.06.2009

  • Формирование тактовых импульсов микроконтроллера. Схемы входных и выходных устройств, источника напряжения питания. Проектирование модуля инициализации микроконтроллера, процедур обработки прерываний, процедур вывода информации и процедуры Main.

    курсовая работа [273,1 K], добавлен 19.12.2010

  • Основные преимущества модульного программирования. Выделение процедуры: ввода массива с консоли, вывода на экран массива, информации об авторе и условии решенной задачи до обработки и после обработки. Иерархия процедур, характеристика назначения модулей.

    реферат [2,3 M], добавлен 29.01.2016

  • Структурная схема компьютера. Основные характеристики процессора - устройства, предназначенного для обработки информации и управления процессом обработки. Способы хранения информации. Описание, назначение и принципы работы устройств ввода и вывода данных.

    презентация [862,1 K], добавлен 20.07.2011

  • Требования и структура систем обработки экономической информации. Технология обработки информации и обслуживание системы, защита информации. Процесс создания запросов, форм, отчетов, макросов и модулей. Средства организации баз данных и работы с ними.

    курсовая работа [2,7 M], добавлен 25.04.2012

  • Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.

    контрольная работа [8,0 M], добавлен 19.05.2010

  • Язык программирования Java, история и предпосылки его создания. Переменные, именованные константы, массивы, перечисления. Интерфейсы и обратные вызовы в Java. Удаленный вызов процедуры: общие сведения. Передача параметров при удаленном вызове процедур.

    курс лекций [526,7 K], добавлен 24.06.2009

  • Требования, предъявляемые к свойствам систем распределенной обработки информации. Логические слои прикладного программного обеспечения вычислительных систем. Механизмы реализации распределенной обработки информации. Технологии обмена сообщениями.

    курсовая работа [506,8 K], добавлен 03.03.2011

  • Анализ структуры и управления предприятием. Функции, виды деятельности, организационная и информационная модели предприятия, оценка уровня автоматизации. Перспективы развития автоматизированных систем обработки информации и управления на предприятии.

    отчет по практике [243,3 K], добавлен 10.09.2012

  • Анализ видов обеспечения автоматизированных систем предприятия. Средства программирования распределенных систем обработки информации. Изучение особенностей использования технологии распределенных объектов. Эксплуатация программного обеспечения системы.

    отчет по практике [486,0 K], добавлен 23.11.2014

  • Анализ существующих алгоритмов обработки информации человеком и современных моделей памяти. Разработка алгоритмов и математической модели ассоциативного мышления. Имитационная модель обработки информации. Компьютерный эксперимент по тестированию модели.

    курсовая работа [2,3 M], добавлен 19.11.2014

  • Роль и место комплекса задач в экономической информационной системе, технико-экономическое обоснование автоматизации обработки информации. Характеристика и анализ существующей организации обработки информации по комплексу задач на объекте управления.

    дипломная работа [5,3 M], добавлен 29.06.2012

  • Основные возможности программных комплексов "АРМ-Клиент", "Астрал-Отчет". Технология обработки информации в системе электронной обработки данных. Разработка рабочего места налогового инспектора, предназначенного для автоматизации заполнения деклараций.

    дипломная работа [285,3 K], добавлен 12.04.2013

  • Структура программы в Турбо Паскале и определение переменной в ней. Понятие идентификатора и его основные ограничения. Операторы присваивания в языке программирования. Процедура ввода-вывода информации. Способы описания массива, обработка его элементов.

    контрольная работа [134,5 K], добавлен 28.09.2012

  • Разработка проекта автоматизированной системы обработки экономической информации для малого рекламного предприятия. Назначение и основные функции проектируемой системы, требования к ней. Технология обработки и защиты экономической информации предприятия.

    контрольная работа [27,8 K], добавлен 10.07.2009

  • Режимы компьютерной обработки данных. Централизованный, децентрализованный, распределенный и интегрированный способы обработки данных. Средства обработки информации. Типы ведения диалога, пользовательский интерфейс. Табличный процессор MS Excel.

    курсовая работа [256,9 K], добавлен 25.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.