ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 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.