ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 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. |