Язык программирования Бейсик — это семейство языков программирования высокого уровня. Первоначально разработанный в качестве учебного пособия, он получил широкое распространение на домашних микрокомпьютерах в 1980-е годы, и остается популярным и по сей день в сильно изменном диалекте. Программирование для начинающих.
Название языка программирования BASIC было придумано в классических традициях информатики, что привело к хорошему сокращению наименования, Beginner’s All-purpose Symbolic Instruction Code (Многоцелевой код символьных инструкций для начинающих). Название связано с названием неопубликованной работы изобретателя языка Томаса Курца . Некоторые критики шутливо называют его Попытка языка Билла захватить контроль над промышленностью в ответ на политику Microsoft в отношении интерпретатора Бейсика, который включенали во все поставки с ранними ПК совместимых с IBM. Программирование для чайников.
История
До появления
До середины 1960-х годов, компьютеры были очень дорогие инструментами, которые использовались только для задач специального назначения, в то время выполнять могли они только одну «работу». С середины 1960-х годов, однако, компьютеры начали падать в цене, вплоть до того момента, когда даже небольшие компании могли их себе позволить, а скорости исполнения инструкций выросли до такой степени, когда компьютеры стали простаивать, потому что не было достаточного количества работы для них, что впоследствии рассматривалось в основах программирования.
Языки программирования той эпохи, как правило, разрабатывались с учетом возможностей вычислительных машин и для конкретных целей, таких, как научная обработкая формул. Компьютеры, которые могли выполнять только одну «работу» были дорогими, а самой главной характеристикой являлась скорость исполнения инструкций. В общем, их использование было трудным делом, и, даже можно сказать, немного «уродливым».
Именно в это время концепция разделения времени операционной системой начала становиться популярной. В такой системе время основной обработки компьютер «нарезал» на части, и каждый пользователь получал небольшое количество времени в определенной последовательности. Машины были уже достаточно быстрыми, так что большинство пользователей заблуждались, думая, что они монопольно использовали целый компьютер. В теории разделения времени снижение времени вычисления чрезвычайно важно, поскольку на одном компьютере могут работать сотни пользователй, по крайней мере теоретически.
Рождение и ранние годы
Язык программирования BASIC изобрел в 1964 году Джон Джордж Кемени (1926-93) и Томас Курц Евгений (1928 -) в Дартмутском колледже. В последующие годы, после появления множества разновидностей Бейсика, было выпущено описание оригинального BASIC от Кемени и Курца, которое дало название настоящему Бейсику «Дартмут Бейсик».
Язык программирования Бейсик был разработан для того, чтобы студенты могли писать программы, используя с компьютерные терминалы в режиме разделения времени . Бейсик предназначен для решения сложных вопросов, которые решало предыдущее поколение языков. Разработанный специально для нового класса пользователе, которые приняли идею использования разделения времени, то есть для «простого» пользователя, который был заинтересован не столько в скорости, сколько в простой возможности использования компьютера. Разработчики языка также хотели, чтобы язык стал общественным достоянием, которое помогло бы ему распространяться.
Восемь принципов построения BASIC:
- Быть легким для новичков
- Быть языком общего назначения
- Разрешить расширенные возможности добавления собственным усовершенствований для специалистов (при сохранении языка простым для начинающих)
- Быть интерактивным
- Разработка четких и дружественных сообщений об ошибках
- Быстро реагировать на небольшие программы
- Не требуется знание компьютерных аппаратных
- Ограждение пользователя от операционной системы
Язык был основан частично на Фортран II и частично на Алгол 60, с дополнениями, чтобы сделать его пригодным для разделения времени и матрицей арифметики, BASIC был впервые реализован на манфреймах GE-265, которые поддерживали несколько терминалов. Вопреки распространенному мнению, на момент создания это был компилируемый язык. Почти сразу же после его выпуска, компьютерные специалисты начали высмеивать Бейсик как слишком медленный и слишком простой. Так как элитарность языка является постоянной темой в компьютерной индустрии.
БЕЙСИК тем не менее, распространяется на большое количество машин, и становится довольно популярным на новых миникомпьютерах, таких как серия DEC PDP и Data General Nova. В этих случаях язык, как правило, выступает в качестве переводчика, а не компилятора, или, наоборот, в зависимости от потребностей.
Взрывной рост
Однако только с появлением микрокомпьютера Altair 8800 в 1975 году BASIC начинает свое массовое распространение. Большинство языков программирования были слишком велики, чтобы уместиться в небольшой памяти компьютеров, которые большинство пользователей могут позволить себе купить, а если еще учесть, что чтение происходило с медленной бумажной ленты (или в более поздних версиях аудио кассеты) и отсутствовали подходящие текстовые редакторы, то малый требования языка BASIC хорошо отвечали этим требованиям. Одним из первых появившихся на этой машине был Tiny BASIC, простая реализация BASIC изначально написанная доктором Ли-Ван Чэнь, а затем перенесенная на Альтаир Деннисом Эллисоном по просьбе Боба Альбрехта (который позже основал доктор Dobbs Journal — DDJ) . Дизайн Tiny BASIC и полный исходный код был опубликован в 1976 DDJ.
В 1977 году Microsoft (в то время это были только два человека — Гейтс и Аллен) выпустила Altair BASIC. Версии затем начали появляться и на других платформах в соответствии с лицензией, и миллионы копий и вариантов вскоре были в использовании, он стал одним из стандартных языков на Apple II. К 1979 году Microsoft ведет переговоры с несколькими поставщиками микрокомпьютеров, в том числе IBM, для того, чтобы лицензировать интерпретатор BASIC для этих компьютеров. Версия была зашита в чипах IBM PC в ПЗУ, а для ПК без дисков, Бейсик стал загружаемым автоматически при включении питания.
По мере появления новых компаний, многие из них пытались повторить успех Альтаира, например, IMSAI, Полярная звезда, и Apple, и, таким образом произошла революция домашнего компьютера, в котором BASIC стал стандартным атрибутом домашних компьютеров того времени. Большинство шли с интерпретатором BASIC в ПЗУ ( функция впервые появилась на Commodore PET в 1977). Вскоре появились многие миллионы машин, работающих с BASIC во всем мире, вероятно, гораздо больше, чем число всех пользователей всех других языков вместе взятых. Многие программы, особенно те, что на Apple II и IBM PC, стали зависимыми от интерпретатора BASIC компании Microsoft и не работали без него. Таким образом, Microsoft использовали авторскую лицензию на трансляторы BASIC, чтобы получить рычаги давления на переговорах с поставщиками компьютеров.
Зрелость
В этот период времени были созданы новые и более мощные версий BASIC. Microsoft продала несколько версий BASIC для MS-DOS / PCDOS включая BASICA, GW-BASIC (BASICA-совместимую версию, которая не требовала наличия ROM IBM) и Quick Basic. Компания Borland (разработчик Turbo Pascal) опубликовала Turbo Basic 1.0 в 1985 (преемник этой версии все еще продается под названием PowerBASIC другой компанией). Появлялись различные расширения для домашнего компьютера которые поддерживал Бейсик, например, графика, звук и DOS команды, а также средства для структурного программирования. Другие языки программирования использовали широко известный синтаксис языка Бейсик в качестве основы для переноса на другие операционные системы, в качестве примера можно вспомнить GRASS .
Однако во второй половине 1980-х годов новые компьютеры были гораздо более сложными и имели множество возможностей (например, графические интерфейсы пользователя), что делало BASIC все менее и менее подходящим для программирования. В то же время компьютеры прогрессируют от инструмента любителей до инструмента профессионалов. Персональные компьютеры начинают использоваться в основном для выполнения приложений, написанных другими людьми, и программирования в целом становится менее важной составляющей для быстро растущего числа простых пользователей. БЕЙСИК начал исчезать, хотя многочисленные версии остались доступными.
Бедственное положение БЕЙСИКА изменяется с появлением Visual Basic от Microsoft. Хотя уже довольно трудно рассмотреть в этом языке классический BASIC (несмотря на использование в названии знакомых слов BASIC), но этот новый стал одним из наиболее часто используемых языков на платформе Windows. Не забудем упомянуть, что программы, написанные на этом языком представляют собой примерно 70 до 80% всех коммерческих приложений. Visual Basic для приложений (VBA) был добавлен в Microsoft Excel 5.0 в 1993 году и включен во всю линейку продуктов Microsoft Office в 1997 году. В Windows 98 появился транслятор VBScript. Последняя версия Visual Basic называется VB.NET. OpenOffice Suite включает в себя вариант BASIC менее мощный, чем его коллега MS.
Язык
Синтаксис
Оператор завершения логической строки это перевод на новую строку, если только не встретился оператор переноса логической строки на следующую с помощью символа продолжения строки. Минимальный синтаксис Бейсика: LET, PRINT, IF и GOTO команды. Интерпретатор, который запускает программу с этим минимальным синтаксисом не нуждается в стеке, потому что некоторые ранние реализации микрокомпьютеров были настолько простыми. Если добавить стек, то могут быть добавлены циклы и команды GoSub . Интерпретатору BASIC для работы с этими функциями необходимо иметь код номера строк.
Номера строк были отличительной особенностью классического BASIC для домашнего компьютера. Увы, использование номеров строк имеет большой недостаток, который требует от программиста чутья на то, сколько строк будет в программы, поскольку основными командами был переход к номеру определенной строки. А в случае внесения правок или дополнений в более поздних версиях программы, номера этих строк начинали изменяться, что приводило к необходимости изменения почти всей программы. Для решения данный проблемы использовались хитрые приемы, которые скажем гласили, что нумеровать надо строки с запасом и шаг составлял +10. Но все равно это не спасало в случае серьезных модификаций программы. Чтобы решить эту проблему с ранними трансляторами BASIC, опытные пользователи скоро написали свои собственные утилиты для перенумерации строк исходного кода программы. Некоторые трансляторы БЕЙСИКА, которые появились позже, имели встроенную команду изменения нумерации строк, тем самым устраняя наиболее актуальную проблему с номерами строк.
Современные диалекты BASIC отказались от номерации строк, и большинство реализаций поддерживают структурные управляющие операторы, которые используются в известных языках, таких как Си или Паскаль как известно и в других языках, таких как C и Pascal (хотя остаются и версии, где совмещено структурное управление и нумерация строк):
- do — loop — while — until — exit
- on x goto / gosub (switch & case)
Последние варианты, такие как Visual Basic ввели возможность объектно-ориентированного программирования, и даже наследование в последней версии. Управление памятью в последней реализации намного легче, чем во многих других процедурных языках программирования из-за того, что обычно включен сборщик мусора (который самостоятельно очищает память и удаляет ненужные данные).
Разнообразие вариантов языка показывает, что язык имеет «органический» характер и что этот язык может рассматриваться как субкультура в компьютерном мире, а не как фиксированный набор синтаксических правил. То же самое относится и к другим «старым» языкам программирования, таким как COBOL и FORTRAN. Огромное количество профессионалов в ИТ индустрии, которые владеют БЕЙСИКОМ, можно объяснить тем, что основная масса оттачивала зубы в программировании в 80-х годах, годы популярности Бейсика.
Процедуры и управление потоком
Basic не имеет стандартных внешних библиотек, как другие языки, такие как Си. Вместо этого транслятор (или компилятор) содержит обширную встроенную библиотеку собственных процедур. Эти процедуры включают в себя большинство инструментов, с помощью которых программист должен научиться программированию и писать простые приложения, включая математические функции, ввод и вывод строк на консоль, графики и обработка файлов.
Некоторые диалекты BASIC не позволяют программистам писать свои собственные процедуры. Программисты должны вместо этого писать свои программы с большим количеством GOTO заявлений для ветвления. Это может привести к очень запутанному исходному коду, который обычно называют код спагетти. GoSub объявляет простые виды подпрограмм без параметров или локальных переменных. Большинство современных версий BASIC, таких как Microsoft QuickBASIC добавили поддержку полных подпрограмм и функций. Это еще одна область, которой этот язык отличается от многих других языков программирования. BASIC, как Паскаль, делает различие между процедурой, которая не возвращает значение (так называемые подпрограммы) и процедуры, которые возвращают значение (называется функция). Многие другие языки (в частности, C) не делают различия и называют всё функциями (хотя некоторые функции возвращают «пустые» значения и являются процедурами-подпрограммами).
Типы данных
БЕЙСИК хорошо известен своей отменной функцией обработки строк. Уже в первых диалектах было множество фундаментальных функций (LEFT$, MID$, RIGHT$) для простой обработки строк. Так как строки часто используются в повседневных приложениях, то это было значительное преимущество перед другими языками в момент появления языка.
Оригинальный Дартмут BASIC поддерживает только числовые и строковые типы данных. В языке не было целого типа данных, вместо этого предполагалось описывать все числа с помощью переменных с плавающей точкой (весщественный тип). Строки были динамической длины. Поддерживались массивы, а также матрицы (двумерные массивы).
В каждом современном диалекте BASIC по крайней мере есть целые и строковые типы данных. Типы данных, как правило, отличаются следующим: строковые идентификаторы содержат в конце $, а целых нет. В некоторых диалектах, переменные должны быть объявлены до первого использование, в других диалектах не требуют этого, но есть возможность проверить его выполнение этого правила, для этого используют директивы, такие как Option Explicit. Многие диалекты также имеют поддержку дополнительных типов, такие как 16 и 32-разрядных целых чисел и чисел с плавающей точкой. Кроме того, некоторые позволяют определять пользовательские типы данных, похожие на Pascal «записи», или С «структуры».
Большинство основных диалектов также поддерживает массивы целых чисел или других типов. В некоторых, массивы должны быть предопределенными, прежде чем они могут быть использованы (с заявлением DIM). Поддержка двух и многомерных массивов, а также массивы нецелых типов, являются обычным делом.
DIM myIntArray (100) AS INTEGER
DIM myNameList (50) AS STRING
В зависимости от диалекта BASIC и по использованию Option Base, значения могут колебаться от myIntArray (0) до myIntArr (100), от myIntArr (1) к myIntArr (100) или из myIntArray (LowInteger) в myIntArray (HighInteger), иными словами номер первого элемента может начинаться с нуля или с единицы .
Реляционные и логические операторы
= Равны
<= меньше или равно
not логическое отрицание
<> Не равно
>= больше или равно
and логическое умножение
< Меньше
or логическое сложение
> Больше
(Обратите внимание, что нет лексического различия между оператором равенства и оператором присваивания в Бейсике — это знак «=»)
Доступность и варианты диалектов
Basic доступен практически для любой платформы микропроцессоров. Есть свободный интерпретатор языка, совместимый со стандартами и кросс-платформенный Байуотер BASIC (bwBASIC). Интерпретатор написан на C и поставляется под лицензией GNU. Он предназначен для текстовой консоли программы, и как таковой не включает инструменты для создания графического интерфейса пользователя (GUI). Бесплатный Бейсик, который не включает GUI Builder, похож на Visual Basic и работает на Windows и Linux — это Phoenix Object Basic.
Самые известные версии — это компилируемая версия Microsoft Quick BASIC и QBASIC версия, которая не создает автономные программы. Некоторые версии Visual Basic также могут компилироваться в машинный код. Microsoft сохранила в Visual Basic минимальную совместимость даже с ранними версиями.
Другие версии включают язык программирования PowerBASIC от компании PowerBASIC, а также True BASIC от компании True BASIC, которые совместима с последними официальными стандартами для BASIC. Компания True BASIC была основана одним из создателей Дартмут BASIC.
REALbasic это вариант для Apple Macintosh, которая также создает исполняемые файлы для Microsoft Windows. PureBasic являет вариант с простым синтаксисом, но который производит быстрые и крошечные исполняемые файлы для Windows и Linux. SmallBASIC это диалект, который работает на многих платформах (Win32, DOS, Linux и PalmOS) и поставляется под лицензией GNU (GPL).