Согласие на обработку персональных данных.



04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

26.08.2017
Новая статья Версии Делфи.

23.08.2017
Новая статья Для кого пишется программа.

13.08.2017
Новая статья Стандарт C++: общие сведения.

Раздел: Как стать программистом / Языки программирования

Язык Бэйсик

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Язык Бэйсик (он же Бейсик, он же BASIC) входит в семейство языков программирования высокого уровня.

BASIC - это аббревиатура, которая расшифровывается так: Beginner’s All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих).

Язык Бэйсик

Язык программирования Бейсик был разработан в 1964 году. Затея заключалась в том, чтобы создать язык, с помощью которого студенты, не имеющие навыков программирования, могли самостоятельно создавать компьютерные программы для решения своих задач.

Этот язык в своё время был очень популярен и расплодился по миру компьютеров в виде различных диалектов, в основном, как язык для домашних компьютеров.

Бэйсик с момента создания многократно дорабатывался и усложнялся, повинуясь законам современного программирования. По этой причине к настоящему времени он уже утратил (по сравнению с первыми версиями) свою простоту. Хотя, даже с учётом этого, современный Бэйсик всё-равно остаётся относительно простым языком, по сравнению с такими языками, как, например, С++.

Начиная с 1960-х годов компьютеры становились всё более доступными. На компьютерах могли работать уже не только учёные-программисты, но и школьники и студенты, которые не являлись программистами. Однако у этих школьников и студентов уже появились задачи, которые надо было решать с помощью компьютеров.

Готовых программ тогда почти не было. Поэтому под каждую задачу надо было создавать отдельную программу. И делать это на компьютерах тех лет, используя имеющиеся тогда языки программирования, было очень сложно (отчасти поэтому раньше языки программирования создавались для решения конкретных задач, например, ПРОЛОГ был ориентирован на создание систем с искусственным интеллектом, ФОРТРАН - для работы с математическими формулами в научных и инженерных вычислениях и т.п.).

Поэтому неудивительно, что у кого-то появилась мысль создать язык программирования настолько простой, насколько это вообще возможно, чтобы люди, совсем незнакомые с программированием, могли создавать хотя бы простые программы для решения каких-то задач на компьютерах (эта мысль была воплощена в жизнь, хотя потом критики ставили эти особенности в вину Бейсику).

В итоге в 1964 году преподавателями Дартмутского Колледжа Джоном Кемени и Томасом Курцем был придуман язык Бэйсик, и под их руководством был реализован командой студентов колледжа. Со временем, когда стали появляться другие диалекты, изначальную реализацию стали называть Dartmouth BASIC.

Бейсик был задуман и сделан так, чтобы студенты могли относительно легко создавать свои программы. Бэйсик был ориентирован на пользователей, для которых скорость выполнения программ не была слишком важной, и которым намного более важно было иметь возможность использовать компьютер для решения своих задач в принципе, не имея специальной подготовки (напомню, готовых программ тогда почти не было).

При разработке языка Бэйсик использовались следующие восемь принципов:

  1. Язык должен быть простым в использовании и понятным для начинающих.
  2. Должен быть языком программирования общего назначения (а не специального, как, например, упомянутые выше Фортран и Пролог).
  3. Язык должен предоставлять возможность расширения функциональности, доступную опытным программистам.
  4. Язык должен быть интерактивным, то есть выполнять команды пользователя.
  5. Язык должен предоставлять однозначные и понятные сообщения об ошибках.
  6. Язык должен быстро работать на небольших программах.
  7. Язык не должен быть привязан к “железу” и не должен требовать от программиста понимания работы этого самого “железа”.
  8. Язык должен защищать пользователя от операционной системы (или операционную систему от пользователя - кому как больше нравится))).

При создании Бэйсика за основу были взяты частично Фортран II и частично Алгол 60. Первоначально Бэйсик был реализован на мейнфрейме GE-265 с поддержкой множества терминалов (мейнфрейм - это большой высокопроизводительный отказоустойчивый сервер).

Несмотря на то, что язык уже использовался на нескольких мини-компьютерах, его настоящее распространение началось с внедрения на микрокомпьютере Альтаир 8800.

Альтаир 8800

Многие языки программирования были слишком громоздкими, чтобы поместиться в небольшую память, которую пользователи подобных компьютеров могли себе позволить. Для машин с таким медленным носителем информации, как бумажная лента (позднее - магнитофонная кассета), и без подходящего текстового редактора такой небольшой язык, как Бейсик, был наилучшим решением.

В 1975 году Microsoft (тогда это были лишь двое - Билл Гейтс и Пол Аллен, при участии Монте Давидова), выпустила Altair BASIC. Затем его версии появились на другой платформе под лицензией и скоро в использовании были уже миллионы копий и различных вариантов. Один из вариантов, Applesoft BASIC, стал стандартным языком на Apple II. Для операционной системы CP/M был создан диалект BASIC-80, который надолго опередил свое время.

Applesoft BASIC

Кстати, Билл Гейтс говорил, что Бэйсик - это его любимый язык программирования.

Наиболее бурно и успешно Бэйсик развивался в течение 1970-х и в начале 1980-х годов. В это время почти все персональные компьютеры имели собственный интерпретатор Бейсика, часто зашиваемый прямо в ПЗУ. В простейших компьютерах он даже выполнял функции операционной системы.

Практически все более мощные компьютеры также имели интерактивные Бейсик-системы. Было создано несколько новых версий Бейсика для платформы IBM PC и совместимых. Microsoft продавала Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и QuickBASIC.

Компания Borland, получившая широкую известность благодаря Turbo Pascal (с которым она и вышла впервые на рынок) в 1985 году выпустила основанную на той же программной среде систему Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC).

К концу 1980-х годов персональные компьютеры стали намного мощнее и предоставляли новые возможности (такие, как графический интерфейс пользователя). Использовать эти новые возможности в Бейсике было уже не так просто и не так удобно. Кроме того, появились недорогие компиляторы более продвинутых языков (таких как Паскаль и Си), которые, к тому же, имели навороченные по тем временам средства разработки и дополнительные библиотеки с готовыми стандартными подпрограммами (например, Borland Pascal с библиотекой Turbo Vision).

Бейсик начал терять популярность, хотя огромное число его версий ещё использовались и продавались. В это же время начался постепенный переход Бэйсика в сторону признанных структурных языков: расширился словарь и набор конструкций языка, появились сложные ветвления, именованные подпрограммы и функции, длинные имена переменных.

Особенности языка Бейсик

Ранние версии Бейсика (такие как BASICA, GW-BASIC) сильно отличаются от современных диалектов и сегодня практически не используются. Причём отличаются настолько сильно, что начинающий программист не каждую программу на старом Бэйсике сможет перевести на современный Бэйсик.

Структура программы на ранних версиях Бейсика во многом формировалась с учётом того, что он предназначался для среды программирования со строчным редактором текста. В таком редакторе пользователь не имел возможности отображать весь текст на экране (в окне), не мог перемещаться по нему в любых направлениях с помощью клавиатуры и/или мыши. В строчных редакторах пользователь для изменения строки текста должен дать команду изменения строки с заданным номером, затем ввести новый текст указанной строки (вот была житуха у программистов))).

Старый программист

Для вставки новой строки нужно дать команду вставки, опять-таки указав номер. Вводимые строки отображаются на экране последовательно (независимо от номеров). Чтобы увидеть сделанные изменения, применяется команда вывода текста, которая выводит строки в правильном порядке (по возрастанию номеров).

Поэтому в старом Бэйсике каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк.

«Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая изменяла номера всех уже введённых строк с постоянным шагом).

Как вы понимаете, при создании более-менее сложной программы практически невозможно предугадать, сколько в ней будет строк и в каком порядке они будут следовать.

Поэтому для обеспечения последующего редактирования программы стало принято нумеровать строки с шагом 10 (а иногда и больше). Это позволяло в большинстве случаев без проблем вставлять новые строки без изменения номеров строк, которые были введены ранее.

Пример рассмотрим чуть позже, когда познакомимся с синтаксисом языка Бейсик.

Синтаксис языка Бейсик

Признаком конца оператора служит конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие (это разрешалось не во всех реализациях языка).

Простейшая программа на Бэйсике:

10 PRINT “Hello, WORLD!”

Бэйсик - не чувствительный к регистру язык. То есть для Бэйсика слова PRINT и print - это одно и тоже. Это касается не только ключевых слов, но и имён переменных. Хотя некоторые реализации языка являются чувствительными к регистру полностью или частично (например, Liberty BASIC).

Имена переменных должны начинаться с буквы и могут состоять из латинских букв и цифр. Для создания переменной строкового типа нужно было после имени указать знак доллара ($).

Например:

 
X = 100       ‘Числовая переменная
X$ = “Hello”  ‘Строковая переменная

Выражения похожи на выражения в большинстве других процедурных языков программирования, но в первых вариантах Бейсика их было довольно мало. В самых ранних вариантах число ключевых слов было менее 20 (в этом и прелесть Бэйсика))).

Объявлять простые переменные не нужно. Просто в любом месте программы пишем имя переменной, и всё. Правда, массивы надо объявлять.

Ниже перечислены самые основные конструкции языка, которые были реализованы практически в любой Бейсик-системе конца 1970-х годов (многие из этих конструкций поддерживаются и современными реализациями языка Бэйсик):

LIST
Вывод на монитор текста программы в правильной последовательности строк.

RUN
Запуск текущей программы с первого оператора строки с самым маленьким номером.

REM
Комментарий. Текст, находящийся после ключевого слова и до конца строки, является комментарием. Многие интерпретаторы также поддерживают в качестве знака начала комментария одиночную кавычку '. Некоторые интерпретаторы допускают использовать слово REM, только если оно находится в самом начале строки.

INPUT
Выводит на монитор текст приглашения и ожидает, пока пользователь введёт значение и нажмёт ENTER.

PRINT
Выводит данные на монитор (текст и значения переменных).

CLS
Очищает экран.

DIM
Описание массива. В отличие от обычных переменных, массивы требуют предварительного объявления.

GOTO Метка
Команда безусловного перехода на Метку.

IF … THEN …
Обычный оператор ветвления. После IF размещается логическое условие, после THEN - оператор, который должен быть выполнен при истинности этого условия.

END
Завершение выполнения программы. Система выходит в интерпретатор и пользователю выдаётся приглашение на ввод команд.

SAVE
Команда интерактивного режима, которая сохраняет текущую программу в файле на внешнем носителе.

LOAD
Команда интерактивного режима, которая загружает в память программу из файла на внешнем носителе. При этом обычно из памяти удаляется ранее загруженная программа и данные.

Пример программы на Бейсике:

 
10 CLS         'Очистить экран
 
20 PRINT "Привет, МИР!!!"
 
30 X = 100     'Присвоить 100 переменной Х
40 INPUT "Введите число : "; Y
50 PRINT Y; " * "; X; " = "; X * Y
 
60 END

Интерпретаторы Бэйсик

Один из наиболее известных интерпретаторов языка Бэйсик - это QBasic от Microsoft. Много лет он бесплатно поставлялся вместе с операционными системами MS-DOS и Windows. QBasic имел неплохие по тем временам графические и звуковые возможности. Поэтому на QBasic создавались даже игры (один мой знакомый это делал - не то, что на картинке, но что-то типа того))).

Игра на QBasic

Бейсик поздних версий (начиная с Turbo Basic и Visual Basic) сильно отличается от ранних реализаций. По сути это новый язык, который уже больше похож на Фортран или Паскаль, чем на исходный Бейсик (хотя многие конструкции поддерживаются).

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Но, несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic (если не ошибаюсь, последняя версия Visual Basic была 6.5) в пользу принципиально нового языка Visual Basic .NET, где язык был снова “перекроен” и “перешит”, ориентирован на кросс-платформенную технологию .NET, и в текущем состоянии практически совпадает по набору возможностей c языком C#. Отличия только в синтаксисе и ключевых словах.

Так Basic перерос из средства для создания программ любителями-непрофессионалами до полноценного средства создания программ.

Помимо написания полноценных программ, Бейсик широко применяется как основа для различных скриптовых языков (например, макросы в пакете Microsoft Office пишутся на диалекте VBA, язык сценариев VBScript используется в SCADA-системах и других подобных программах).

Сколько людей, столько и мнений

Даже в свои лучшие времена (1970...1980 годы) Бейсик подвергался жёсткой критике (впрочем, как и почти все другие языки программирования - критиковать у нас любят).

Конечно, у Бэйсика было немало недостатков. Но ведь он же таким и был задуман! Да, с недостатками. Но зато простой и доступный для понимания даже гуманитарию.

В основном же профессиональные программисты разносили в пух и прах Бэйсик за то, что его простота и отсутствие структурирования приводят к тому, что начинающие программисты в погоне за сокращением времени на создание программ, напрочь забывают о “правильном” подходе к программированию. Это допустимо при написании простеньких программ, но практически всегда приводит к неудаче при работе над серьёзными крупными проектами.

Многие профессионалы также были категорически против того, чтобы использовать Бэйсик для обучения новичков. Известный в мире программистов авторитет Эдсгер Дейкстра говорил, что студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. И что как потенциальные программисты они умственно изувечены без надежды на восстановление.

Несмотря на авторитет Дейкстры, я с ним в этом не согласен. То, что приписывают к недостаткам Бэйсика, на самом деле является его достоинствами. Недостатки Бейсика (если иметь в виду ранние диалекты) проявляются при попытке профессиональной разработки на нём сложных и крупных программ и при использовании его как базового языка для обучения программистов, но ни для одного их этих применений данный язык не предназначался. Его основной задачей было предоставить студентам-непрограммистам возможность после минимального обучения самостоятельно писать простейшие программы для собственных нужд, чтобы не отвлекать на эту работу специалистов. Эту задачу язык решает вполне успешно.

Если же говорить о современных диалектах и реализациях Бейсика, то они настолько далеко ушли от первоначальной формы языка, что всё вышесказанное вряд ли можно считать относящимся к ним. Современные диалекты Бейсика являются достаточно структурированными языками, они сопоставимы по возможностям с такими языками, как Си, Паскаль и т.п.

Язык Бэйсик (даже первые его реализации, такие как QBasic), вполне пригоден для обучения, потому что с моей точки зрения нет совершенно никаких проблем, при необходимости, выучить потом другой язык. Может быть в 60-е годы прошлого столетия это и было проблемой - не знаю (я родился в 1969). Но сейчас - нет.

К тому же сегодня и переучиваться особо не потребуется, так как можно создавать свои классные программы, например, на Visual Basic.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика