Это программа, которая уже составлена и хранится на магнитном диске. А предназначена она для обработки программы, написанной на Бейсике, расшифровки, какие действия эта программа поручает машине выполнять, и более того в самом деле эти действия исполнить. Одним словом интерпретировать программу на Бейсике.
Так что? Получается, что одна программа обрабатывает другую?
Да. Так и получается, что программа на Бейсике является входными данными для интерпретатора.
Ну и как же вызвать этот ин-тер-пре-та-тор? Ты, кажется, так сказал?
Да. Вызвать это означает списать программу с диска в оперативную память и запустить ее. А делает это еще одна программа
Да ты что! Сколько же здесь этих программ?
Спокойно. Пока были только две. А всего таких обслуживающих программ, наверно, несколько десятков так когда-то говорил Алгоритмыч. Все обслуживающие программы вместе образуют так называемую операционную систему. Алгоритмыч о ней нам рассказывал очень мало, все шутил: чтобы понять, как работает операционная система, надо кончать физмат. Надеюсь, ты догадываешься, что программы операционной системы нельзя было написать на Бейсике, потому что без них некому вызвать интерпретатор. И сам интерпретатор, очевидно, тоже написан на другом языке программирования.
Но что же, в конце концов, нужно делать с этим твоим интерпретатором?
Сначала обрати внимание на последнюю строчку экрана. Там ты видишь знак «больше» и рядом с ним курсор. Это означает, как я тебе уже говорил, что сейчас операционная система ждет команду. Раз ты хочешь вызвать интерпретатор Бейсика, то, разумеется, нужно ввести команду вызова. Она очень проста BAS. Три буквы латинского алфавита. Ну, можешь вводить.
>BAS_
Все в порядке. Найди сейчас клавишу ввода и нажми.
И Тоня нажала. В одно мгновение все строки экрана переместились вверх, в том числе и введенная Тоней строчка, а снизу показался текст
IAS/RSX BASIC V02-01M
READY
«Рэди», прочла Тоня, готово.
И верно. Интерпретатор готов к работе. А строка выше означает, что работает именно интерпретатор Бейсика.
Слушай, а что машина и впредь только по-английски будет изъясняться? Мои предки, честь им и хвала, старались изо всех сил и водили меня на растерзание к одной «англичанке», но я не могу сказать, что наши с нею мучения дали какие-то плоды.
Тебе повезло. А что делать тем, кто в школе изучает немецкий язык и притом не очень преуспевает? Но не расстраивайся, английского языка при изучении Бейсика надо не очень много. Твоих знаний вполне хватит, раз уж ты знаешь, что «рэди» это «готово».
Хватит болтать, ведь интерпретатор уже готов к работе. Что сейчас можно сделать?
Интерпретатор приводит в действие команда BAS
Например?
Например, можешь образовать переменную А и присвоить ей значение, ну, скажем, 12. Просто введи А=12.
A=12
READY
Ну, и что дальше? Ничего не произошло.
Сейчас введи В=20.
Опять ничего не произошло!
Ничего и не должно было произойти. Пока ты только образовала две переменные и присвоила им значения. Сейчас с этими значениями, то есть с числами 12 и 20, ты можешь, например, совершить любое арифметическое действие. И какое именно ты бы хотела?
Я хочу сделать все и сложить, и вычесть, и умножить, и поделить тоже, раз уж такая прекрасная возможность появилась.
Тогда поступай так. Введи С=А+В. Это означает, что интерпретатор должен образовать переменную С и ее численное значение взять равным сумме значений переменных А и В.
Сделано. Результата нет.
Хорошо.
Теперь Тоня на экране видела
Да, все-таки получилось!
Очень удобно, что после PRINT совсем не обязательно писать одни только переменные можно писать сразу их сумму А+В или произведение А*В, знак «*» здесь означает умножение, или частное A/В, где дробной чертой «/» обозначаем деление. Хорошо запомни обозначения арифметических действий. По-другому писать нельзя.
А ты ничего не сказал про вычитание.
Вычитание обозначается, как всегда, знаком минус. Итак, в операторе вывода можно писать любое арифметическое действие и, более того, любое арифметическое выражение, состоящее из большого количества арифметических действий, например (А*В+С)/С+20. Важно, чтобы длина этого выражения не превышала
длину одной строки дисплея, то есть содержала бы не более 80 символов. Выведи, пожалуйста, результат расчета какого-нибудь арифметического выражения!
Ладно. Введу я вот что.
PRINT 24/A*2
4
Фи! Машина совсем не умеет считать. Результат должен быть 1, а не 4!
Не может быть! Ясно. Я тебе не сказал, как в Бейсике использовать скобки. Если в знаменателе имеется произведение, оно обязательно должно быть в скобках. Если скобок не будет, то интерпретатор разделит только на первый сомножитель, а на последующие сомножители умножит. Если ты, например, напишешь 6/2*3, то шесть будет разделено на два, получится три, после умножения еще на три результат будет девять. А расчет выражений 6/(2*3) или 6/2/3 даст единицу. Повтори этот пример.
PRINT 24/(A*2)
1