|
Часть 1
Введение.
---------
ТУРБО БЕЙСИК - это автономная программная среда для персо-
нальных компьютеров IBM и IBM-совместимых вычислительных машин.
Следуя по пятам за своим знаменитым собратом ТУРБО ПАСКАЛЕМ,
ТУРБО БЕЙСИК включает в себя редактор, быстродействующий компиля-
тор типа "память-память", библиотеку рабочих программ и внутрен-
ний редактор связей. Его современный пользовательский интерфейс
использует окна и спускающиеся меню. Для максимальной скорости и
эффективности использования памяти ТУРБО БЕЙСИК написан полностью
на языке ассемблера.
Другие важнейшие характеристики включают :
- Обеспечение работы с числами с плавающей запятой (полная под-
держка сопроцессора 8087 и полная эмуляция программного
обеспечения).
- Профессиональная среда разработки.
- Новые программные опреаторы с блочной структурой.
- Полное обеспечение расширенного графического адаптера (EGA).
Будучи языком программирования как для начинающих, так и для
опытных программистов, ТУРБО БЕЙСИК с его комплексной реализацией
позволяет быстро осуществлять разработку программ без принесения
в жертву богатых возможностей, необходимых профессиональным
программистам. Он совместим с интерпретирующей версией 3.00 рас-
ширенного языка программирования БЕЙСИК (Advanced BASIC) IBM
(обычно встречается под названием BASICа) и версией GW BASIC
Microsoft (с небольшими исключениями, т.к. они являются интерп-
ретаторами) и содержит много добавлений. (В дальнейшем мы будем
называть Advanced BASIC и GW BASIC - Интерпретатор БЕЙСИК
(Interpretive BASIC")
Программы, созданные с помощью ТУРБО БЕЙСИКа имеют доступ ко
всему объему памяти вычислительных машин - 64 К для числовых пе-
ременных, 64 К для символьных переменных, достаточная память для
массивов и более 64 К для программ. Компилятор генерирует обыч-
ные выполняемые файлы типа .EXE, которые выполняются от 4 до 100
раз быстрее, чем их интерпретаторные аналоги. А поддержка сопро-
цессора 8087 дает существенные преимущества в решении численных
задач. ТУРБО БЕЙСИК обеспечивает также все графические возможнос-
ти Расширенного Графического Адаптера (EGA).
Благодаря передовым конструкциям с управляющей логикой (бло-
ки IF/THEN/ELSE, IF/ELSE/ENDIF, DO/LOOP, CASE/SELECT, CALL/SUB),
программы на ТБ (ТУРБО БЕЙСИК) легче писать, отлаживать и сопро-
вождать, чем программы на Интерпретаторе БЕЙСИКа. Номера строк
необязательны; буквенно-цифровые метки могут служить адресом для
операторов GOTO и GOSUB. Определяемые пользователем функции и
процедуры дают возможность объявлять локальные, статические и
общие (совместно используемые) переменные, позволяют использо-
вать рекурсию.
ТУРБО БЕЙСИК обеспечивает значительно расширенную длину строк
(до 32767 знаков в строке) и исключает временные затраты, связан-
ные с периодической "сборкой мусора". Для обработки файла на ниж-
нем уровне существуют двоичные файлы типа BINARY, а для быстрой
гибкой обработки числовых данных - длинные целые числа. Операторы
CALL и REG осуществляют прямую связь с языком ассмеблера, есть
также многочисленные директивы компилятора для условной компи-
ляции, прерывания по ошибке, управления буфером и т.д.
ТУРБО БЕЙСИК - это мощный язык, совместимый с Интерпретато-
ром БЕЙСИКа, который генерирует быстродействующие программы.
О книге.
--------
Настоящее руководство является справочником по системе разра-
ботки программ, известной как ТУРБО БЕЙСИК. Мы начинаем с кратко-
го обучения тому, как установить систему на гикий или жесткий
диск, а затем объясняем, как использовать ТУРБО БЕЙСИК для реда-
ктирования и компилирования простых программ. Затем даются теоре-
тические основы, они располагаются в основном в Главе 3, "ТУРБО
БЕЙСИК: Программа." и в Главе 4 "ТУРБО БЕЙСИК: Язык." Глава 5, "
Справочное руководство по ТУРБО БЕЙСИКу" представляет собой спра-
вочный раздел с описанием команд ТУРБО БЕЙСИКа, переменных систе-
мы, функций, операторов и метаоператоров в алфавитном порядке.
В приложении даются: стандартный американский код для обмена
информацией (ASCII) и скэн-коды клавиатуры, а также дополнитель-
ная информация, информация о прерываниях, интерфейс с подпрограм-
мами на ассемблере, ошибки компиляции и выполнения и различия
между ТУРБО БЕЙСИКом и Интерпретатором БЕЙСИКа.
Г Л А В А 1
---------------------------------------------------------------
О языке БЕЙСИК.
----------------
Как и знаменитые Мейнские омары, кленовый сироп и баскетбол,
БЕЙСИК - это продукт Новой Англии. Созданный в 1964 в Дартмудском
Колледже в Ганновере, штат Нью-Хемпшир, как язык обучения прог-
раммированию, БЕЙСИК является общепринятым акронимом от
"Beginner's All-purpose Symbolic Jusruction Code" (BASIC) - Мно-
гоцелевой Символический Обучающий Код для Начинающих" (Циники,
однако считают, что его изобретатели Джон Кемени и Томас Куртс
сначала придумали броское название своему новому, простому в
употреблении языку, а затем выдумали ему такую расшифровку).
Вскоре как обучаемые, так и авторы программ обнаружили, что
БЕЙСИК может делать практически все то, что делает скучный неук-
люжий ФОРТРАН. А так как БЕЙСИКу было легко обучиться и легко с
ним работать, программы на нем писались обычно быстрее, чем на
ФОРТРАНе. БЕЙСИК был также доступен на персональных компьютерах,
обычно он встроен в ПЗУ. Так БЕЙСИК завоевал популярность.
Интересно, что спустя 20 лет после изобретения БЕЙСИКа, он и
сегодня самый простой для освоения из десятков языков общецеле-
вого программирования, имеющихся в распоряжении любителей прог-
раммирования. Более того, он прекрасно справляется с работой.
Несмотря на высказывания снобов - сторонников языков Си и Паска-
ля, БЕЙСИК считается деловым языком, снабженным мощными средс-
твами решения специфических задач, которые обычно большинство
пользователей решают при помощи небольших компьютеров, а именно:
работая с файлами и выводя текстовое и графическое изображение на
экране дисплея.
Несмотря на отдельные недостатки БЕЙСИКа, никто не будет от-
рицать, что Кемени и Куртс достигли основной цели: сделать прог-
раммирование доступнее для большего числа людей. Это ведет нас и
к ТУРБО БЕЙСИКу.
ТУРБО БЕЙСИК.
-------------
ТУРБО БЕЙСИК - компилятор БЕЙСИКа. Вам может быть известен
БЕЙСИК для ИБМ (IBM`S Advansed Basic) (котороый называется GW
BASIC на многих совместимых системах, но который мы здесь назы-
ваем "Интепретатор (Interpretive) БЕЙСИК"), популярная интерпре-
тирующая версия фирмы Microsoft. Интерпретирование и компилирова-
ние- два основных способа реализации языков высокого уровня. Для
понимания важных различий между данными двумя подходами, а, сле-
довательно, между языками ТУРБО БЕЙСИК и Интерпретатором БЕЙСИКа,
требуется вкратце осветить азы программирования.
Назад к основам - машинный язык.
--------------------------------
Может показаться удивительным, но конкретный компьютер спо-
собен работать с программами, написанными на его родном машинном
языке. Существует почти столько же разных машинных языков, сколь-
ко и компьютеров, но все они суть разновидности одной идей- прос-
тые опреации производятся со скоростью молнии на двоичных числах.
Персональные компьютеры IBM используют машинный язык микро-
процессоров семейства 8086, т.к. их аппаратная часть основывается
именно на данных микропроцессорах.
Можно писать программы непосредственно на машинном языке,
хотя это и сложно. На заре компьютеризации(в начале 1950-х г.г.),
машинный язык был единственным языком, большего человек к тому
времени не придумал. Для спасения программистов от сурового
машинного языка программирования, были созданы языки высокого
уровня (т.е. немашинные языки), которые стали своеобразным свя-
зующим мостом между человеком и машинным языком компьютера.
Языки высокого уровня работают через трансляционные програм-
мы, которые вводят "исходный код" (гибрид английских слов и ма-
тематических выражений, который считывает машина), и в конечном
итоге заставляет компьютер выполнять соответствующие команды,
которые даются на машинном языке.
Сущствует два основных вида трансляторов: интерпретаторы,
которые сканируют и проверяют исходный код в один шаг, и компи-
ляторы, которые сканируют исходный код для производства текста
программы на машинном языке, которая затем выпоняется отдельно.
Интерпретаторы.
---------------
Исторически БЕЙСИК обычно был реализован интерпретатор
(Interpretive БЕЙСИК). Одним из часто упоминаемых преимуществ
интерпретатора является то . что он разрешает "прямой режим".
Прямой режим работы позволяет вам дать компьютеру задание, нап-
ример PRINT 3.14159 * 3^2.1 и он возвращает ответ, как только вы
нажмете клавишу Enter.(Это позволяет использовать компьютер за
3000 долларов как 10-долларовый калькулятор).
Кроме того, интерпретаторы имеют определенные возможнос-
ти,которые упрощают отладку. Например, можно прервать обработку
программы интерпретатором, вывести содержимое определенных пере-
менных на экран, просмотреть исходную программу и затем продол-
жить выполнение программы.
Программистам особенно нравится в интерпретаторе моменталь-
ный ответ. Нет необходимости в компилировании, интерпретатор
всегда готов отреагировать на вашу программу. Введите RUN , и
результат последних изменений в программе будет выведен на эк-
ран.
Интерпретируемые языки не лишены недостатков. Например, не-
обходимо иметь копию интерпретатора в памяти все время - а мно-
гие из характеристик интерпретатора (и поэтому большие его
размеры) могут не понадобиться при выполнении данной программы.
Небольшой недостаток интерпретаторов заключается в том, что
они препятствуют хорошему стилю программрования. Так как коммен-
тарий и другие тонкости форматирования отнимают драгоценное
пространство памяти программы, программисты стараются не пользо-
ваться ими. Можно только представить себе адские муки програм-
миста, использующего Интерпретатор BASIC,пытающегося заложить
программу в 120К в память размером 60К.
Но самое неприятное это то,что интерпретаторы медленно ра-
ботают. Они тратят слишком много времени на обдумывание того, что
надо сделать, вместо того, чтобы сразу сделать это.При выполне-
нии оператора программы интерпретатор сначала сканирует каждый
оператор на содержание(Что этот человек хочет, чтобы я сделал
здесь?), а затем выполняет требуемую операцию. Операторы внутри
цикла сканируются избыточно.
Ознакомьтесь со следующей программой из трех строк:
10 FOR n=1 TO 100
20 PRINT n, SQR(n)
30 NEXT n
Сначала Интерпретатор BASIC будет вычислять, что строка 20
означает:
1. Преобразовать числовую переменную в символьную.
2. Вывести строку на экран.
3. Перевести курсор в следующую печатную зону.
4. Извлечь квадратный корень из n.
5. Преобразовать результат в строку.
6. Послать строку на экран.
При повторном прохождении цикла он будет вновь всю ее выпол-
нять, полностью позабыв все, что он узнал об этой строке всего за
миллисекунду до этого. Так же проходят следующие 999 циклов.
Понятно, что если вам удастся отделить фазу сканирование/по-
нимание от фазы выполнения, вы получите более быструю программу.
Вот для этого и нужны компиляторы.
Компиляторы.
------------
Компилятор- это транслятор типа текст/машинный язык, который
считывает исходный текст, оценивает его с точки зрения снтакси-
ческой структуры языка и переводит на машинный язык. Машинный
язык на выходе (называемый объектным кодом) затем выполняется как
независимая ступень. Другими словами компилятор не выпоняет
программу, он строит ее. Интерпретаторы нельзя отделить от прог-
рамм, которые они выполняют, компиляторы делают свое дело и за-
тем удаляются.
Работая с компилируемым языком, каковым является TYRBO
BASIC, необходимо учитывать в программах две главные фазы их су-
ществования: время компилирования и время выполнения. В случае
интерпретатора мы говорим только о времени выполнения.
Ускорение программы с использованием языка TURBO BASIC зави-
сит от самой программы. Большинство программ будут выполняться в
4-10 раз быстрее, чем их интерпретируемые аналоги. При желании
можно добиться 100-кратного ускорения.
Номера строк и TURBO BASIC.
---------------------------
Интерпретатору BASIC необходимы такие номера строк, чтобы он
мог хорошо ориентироваться в случаях, когда команды GOTO и GOSUB
передают выполнение программы оператору, который не является
следующим в последовательности команд. Кроме того, номера строк
являются сердцевиной его процесса редактирования. Допуская
существование номеров строк, язык TURBO BASIC не испытывает пот-
ребности в них. Вместо GOTO 5000 в языке ТУРБО БЕЙСИК вы скажете
что-нибудь вроде GOTO процедура Error Exit (выход из ошибки), где
Error Exit есть метка начала процедуры Error Exit.
|