Советы и лайфхаки

Год в котором был разработан язык бейсик – Презентация на тему: «Язык программирования Бейсик Основные команды Бейсика. Метод анализа Бейсик

Содержание

Язык Бэйсик

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

Язык Бэйсик (он же Бейсик, он же 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.

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

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

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

Наиболее бурно и успешно Бэйсик развивался в течение 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 создавались даже игры (один мой знакомый это делал - не то, что на картинке, но что-то типа того))).

Бейсик поздних версий (начиная с 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.


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

info-master.su

от BASIC к Visual Basic / Хабр


DONKEY.BAS. Входит в комплект IBM PC в 1981. Соавтор — Билл Гейтс

Название BASIC появилась как сокращение от «Beginner's All—purpose Symbolic Instruction Code», что в дословном переводе означает «многоцелевой язык символических команд для начинающих». Это тот случай, когда дословный перевод совершенно точно передавал суть. Ключевой особенностью BASIC'а была не только его простота, но и возможность, находить решение задач в режиме диалога с компьютером.

Для многих компьютеров конца 60-х BASIC позиционировался как единственный язык программирования высокого уровня общего назначения, и со временем это привело к появлению различных его модификаций. Поворотным моментом в развитии языка стало появление Visual Basic.

Предыстория

В середине 50-х годов роль программирования в машинных кодах стала уменьшаться. Появились языки более высокого уровня – Fortran, Algol, Cobol и так далее.

Первым из них и одним из наиболее распространенных был Фортран (FORTRAN, от FORmula TRANslator – переводчик формул), разработанный группой программистов фирмы IBM в 1954 году (первая версия). Этот язык был ориентирован на научно-технические расчеты математического характера.

Название языка Algol (ALGOrithmic Language), первая версия которого появилась в 1958 году, подчеркивает то обстоятельство, что он предназначен для записи алгоритмов. Благодаря четкой логической структуре Алгол стал стандартным средством записи алгоритмов в научной и технической литературе.

Тогда для языков программирования высокого уровня была характерна предметная ориентация. Кроме того, подобные языки были чересчур сложны для начинающих разработчиков, особенно, если они не были инженерами. Поэтому естественно, что со временем появился язык программирования для «простых смертных».

BASIC. Просто BASIC

С идеей создания этого языка программирования ассоциируют известную историю про английского миссионера.
В XIX веке одному английскому миссионеру, который искал возможность облегчить и упростить контакт с туземцами, пришла в голову гениальная мысль — вычленить из английского языка самую простую его часть, практически не имеющую грамматики, и содержащую около 300 самых распространённых слов. Этот урезанный подвид английского языка был назван BASIC ENGLISH, и как показала практика — он действительно оказался очень простым для усвоения, и вскоре завоевал популярность не только среди туземного населения, но и среди иммигрантов, для которых английский не был родным языком.
Спустя сто лет аналогичный путь избрали сотрудники математического факультета Дартмутского колледжа. Они решили облегчить взаимодействие между компьютером и непрофессиональным пользователем с помощью «упрощенного» языка программирования.

В 1964 году Томас Курц и Джон Камени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали BASIC.

Они использовали его для обучения студентов навыкам программирования. Язык получился настолько простым и понятным, что через некоторое время его начали применять и в других учебных заведениях.

Серьезное влияние на BASIC оказали Fortran II и Algol 60. Кроме того, разработчики реализовали в нем механизмы работы для систем с режимом разделения времени, а также обработки текста и матричной арифметики. Изначально компилятор языка был написан для мейнфрейма GE-265.

Расцвет

В 70-х появились более компактные компьютеры (ПК). Это обстоятельство удачно использовали Билл Гейтс и Пол Аллен, основатели Microsoft.

Они создали новую версию BASIC для первых компьютеров «Альтаир» (MITS Altair), способную работать в 4КБ оперативной памяти. Со временем именно эта версия и превратилась в один из самых популярных языков программирования в мире.


Altair

Периодом наибольшего расцвета и развития исходного BASIC можно считать конец 1970-х — первую половину 1980-х годов. Его версии появились на других платформах, и скоро стали расходиться миллионными тиражами с всевозможными изменениями и доработками. Одной из самых популярных версий был Applesoft BASIC, ставший стандартным языком на Apple II.

Applesoft BASIC был написан фирмой Microsoft как замена системе Integer BASIC, использовавшейся в самой первой модели Apple II и обладавшей весьма ограниченными возможностями. Applesoft BASIC был прошит в ПЗУ всех моделей Apple II, начиная с Apple II+, и всех клонов Apple II. Также более ранняя и урезанная версия Applesoft BASIC была доступна на кассетах для самой первой модели Apple II.

Для операционной системы CP/M был создан диалект BASIC-80, надолго определивший развитие языка.

Когда появились первые персональные компьютеры IBM PC, именно он стал стандартом в программировании, но уже в виде GW-Basic.

В середине 1980-х BASIC стал основным языком в сложных моделях программируемых калькуляторов, которые как раз к этому времени достигли мощности, допускающей применение полноценного языка высокого уровня. BASIC был встроен в советский калькулятор «Электроника МК-85» и все его более поздние модели.

Также в 1985 году появилась IDE Quick Basic — интегрированная среда разработки и компилятор языка программирования BASIC, разрабатывавшаяся компанией Microsoft с 1985 по 1988 год. Существовали версии для DOS и Mac OS. Используемый диалект BASIC был основан на усовершенствованном диалекте GW-BASIC: была реализована поддержка пользовательских типов, конструкций структурного программирования, значительно расширена поддержка графических и дисковых операций.

Роберт «Боб» Зейл в 1987 году на основе своей многолетней разработки BASIC/Z создал Turbo Basic, а затем продал его компании Borland. Журнал Infoworld назвал его одним из самых значительных продуктов того года.

В отличие от большинства реализаций BASIC того периода, Turbo Basic был полным компилятором, генерировавшим родной код для MS-DOS.

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

Вторая жизнь

В начале 90-х появилась операционная система Microsoft Windows с новым графическим интерфейсом пользователя.

Чтобы создать простую программу, разработчикам приходилось писать по несколько страниц кода: прописывать объемные блоки кода для меню и окон, шрифтов, очищать память, «рисовать» кнопки и т.д. Однако преимущества нового интерфейса были довольно сильны, и у Windows появились реальные перспективы стать популярной повсеместно.

В Microsoft понимали, что необходимо как-то облегчить жизнь разработчиков. Поэтому компания запустила несколько параллельных проектов по созданию нового языка программирования и среды разработки для Windows.

Вторую жизнь BASIC получил, когда Microsoft выпустила Visual Basic. Он стал логическим завершением эволюции языка и, несмотря на сохранение привычных ключевых слов, по структуре и набору возможностей был ближе к Pascal, чем к изначальному BASIC.

В 1991 году появилась первая версия новой IDE Microsoft Visual Basic. Однако в тот момент Microsoft достаточно скромно оценивала возможности этой системы, ориентируя ее, все же, на категорию начинающих и непрофессиональных программистов.

Конечно, это был только первый шаг, так как компания Билла Гейтса планировала укрепить позиции Windows на рынке. А это было бы очень трудно сделать, оставив коммерческих разработчиков без эффективных средств создания приложений под MS Windows.

Система программирования, созданная разработчиками Visual Basic, позволяла абстрагироваться от внутренней структуры Windows. Меню, окна, списки, кнопки, поля ввода текста и другие элементы интерфейса Windows добавлялись в программу с помощью простейших операций drag&drop, и большая часть кода для их инициализации и настройки генерировалась автоматически.

Свою первую программу VB-программисты могли создать уже через несколько минут после начала изучения этого языка. Более того, Visual Basic позволял разработчикам создавать новые элементы графического интерфейса, которые также могли использоваться в программах наравне со стандартными.

Несмотря на то, что многие С-разработчики не воспринимали всерьез попытки Microsoft сделать простой и понятный инструмент разработки Windows-программ, остальные участники ИТ-сообщества возлагали на Visual Basic большие надежды.

В 1994 году компания выпустила Visual Basic for Applications. Именно в это время, после включения VBA в состав Microsoft Office, Basic стал одним из основных стандартов программирования для Windows.

Первоначально задумывавшийся как игрушка, Visual Basic от Microsoft невероятно быстро завоевал программистский мир. Его популярность обусловлена двумя причинами: относительной простотой и продуктивностью.

Программы на VB работали медленнее своих аналогов на C/C++, но все же они достаточно быстры для многих деловых целей и требуют гораздо меньше времени на разработку. Формы были той самой сберегающей усилия абстракцией, которую предложил VB программистам Windows.

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

Разработка приложения в VB, таким образом, состояла из создания нескольких форм, которые взаимодействовали друг с другом.

С точки зрения написания кода важным отличием от того же C++ стал отказ от указателей. Так решил Билл Гейтс, еще во время разработки первых версий Microsoft BASIC. Хотя указатели полезны, так как разрешают прямой доступ к памяти по любому адресу, их использование сопряжено с ошибками в том случае, если они применяются неаккуратно. А так как первоначально язык создавался для «простых смертных», это решение выглядит вполне оправданным.

Основные версии Visual Basic

В первой версии (1991 год) Алан Купер реализовал принцип связи языка и графического интерфейса.

Начиная с третьей версии (1993) в VB появилась поддержка MS Access.

Visual Basic 4.0 (1995) — версия, в которой появилась возможность создавать как 32-х так и 16-разрядные Windows-приложения. Кроме того, в язык были добавлены классы.

Начиная с VB 5.0 (1997), появилась возможность разрабатывать собственные COM-компоненты. Кроме того, появилась новая виртуальная машина, реализованная в динамической библиотеке MSVBVM50.DLL. Компилятор VB для трансляции использовал многопроходный режим, но в конечном счете полагался на компилятор Microsoft C++ для получения выходного машинного кода после компиляции в промежуточный язык. Использование библиотеки времени исполнения и внутреннего интерфейса C++ явилось отправной точкой для формирования технологии .NET.

VB версии 6 — это уже мощный язык, который можно использовать для создания распределенных приложений с применением компонентов СОМ и Microsoft Transaction Server. Microsoft предложила трехуровневый подход для архитектур «клиент-сервер», в котором «тонкие» пользовательские интерфейсы взаимодействовали с удаленными компонентами VB для получения данных из базы данных или с другой машины.

Более того, VB6 (1998) можно было использовать для создания элементов управления Active-X, работающих вместе с Internet Explorer.

В 2002 году появился первый выпуск Visual Basic .NET. С этого момента обратная совместимость с классической версией Visual Basic оказалась нарушена.

С 2005 года Visual Basic входит в состав IDE Microsoft Visual Studio 2005. По сей день язык развивается вместе с IDE – вплоть до текущей версии – MS Visual Studio 2015.



Языки Basic и Visual Basic прошли серьезный путь и претерпели существенные, можно сказать, необратимые изменения. От их изначальной простоты мало что осталось. В результате VB превратился в «обычный» объектно-ориентированный язык программирования высокого уровня.

habr.com

Язык программирования бейсик и его история

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

Язык программирования бейсик был разработан  Томасом Курцем и Джоном Кенеми, в  1964 году с целью обучения студентов основам программирования. Язык получился простой, понятный, с довольно-таки  легким интерфейсом. Цель разработчиков была  ясна: им нужен был простой язык программирования, который одновременно был бы и доступным. Вот основные  положения, которые  учитывали “Отцы”  бейсика:

1)   Простота использования;

2)   Массовость;

3)   Информативность;

4)  Язык должен поддерживать возможность отслеживания и устранения ошибок;

5)  Язык не должен требовать серьёзных аппаратных знаний;

6)  Язык программирования   должен стать связующим звеном между пользователем и  операционной системой.

Как следствие,  он стал  использоваться  во многих других учебных заведениях. Спустя  11 лет,  когда мир наводнили миллионы новых микрокомпьютеров, язык программирования бейсик  заинтересовал Билла  Гейтса и Пола  Алена,  людей, которые создали  Microsoft. Это они, объединив усилия,  улучшили версию бейсика    для  своих первых компьютеров, которая смогла бы работать даже с 4кб  оперативной памяти(!).

Спустя некоторое время именно их версия  и стала  одним из самых  часто используемых и популярных языков программирования. Во время становления язык программирования бейсик часто пытались закрыть,  многие хотели найти недочеты и  добиться  отмены  использования этого языка. Однако, с появлением компьютеров IBM, именно бейсик  стал  основным языком программирования,  на который ориентировались  другие. Стоит заметить, что он уже  назывался  GW-basic. Потом появились turbo basic  от компании Borland и Quick Basic. Все версии которые разрабатывались позднее,   обязательно писались таким образом, что бы  сохранить совместимость с предыдущими. Даже самая последняя версия  этого языка программирования работает  с самой первой, с небольшими корректировками.

И вот наступила  эра Microsoft. Начало 90-х: операционная система  windows захватила  почти весь рынок  программного обеспечения, все были рады её видеть, все - кроме программистов. Их жизнь стала адом. Чтобы  создавать самые обыкновенные, простые окна, нужно было писать море страниц кода,  изменять шрифты  написания, и наконец  “рисовать” новые кнопки. Но надо признать, что преимуществ у неё было куда больше, чем недостатков, и в конце концов, уже   третья версия  операционной системы  превратилась  в мировой стандарт для PC.

Появилась необходимость в  модификации бейсика. Таким образом, язык программирования бейсик стал называться   Microsoft Visual Basic. Про  обширные  планы компании ещё не было ничего известно, и   разработчики ориентировали новый язык  программирования в первую очередь на непрофессионалов. Система  программирования, реализованная в   Visual Basic,   давала возможность  отойти от тяжёлой структуры  windows  и создавать программы хорошего уровня, обладая не самым большим запасом знаний. Последним  гвоздем в гроб, который  практически похоронил другие, такие довольно неплохие виды языков программирования как  Fortran и  Pascal, стала разработка  разновидности бейсика для приложений.

В настоящее время язык программирования бейсик, настолько популярен, что едва ли не  каждый  уважающий себя программист знает  и пользуется  им. Хочется отметить, что  он используется в таких приложениях как microsoft  office и internet  explorer. Но, пожалуй,  одной из самых значительных сфер применения, язык программирования бейсик, получил при разработке и  настройке приложений в среде .NET . Кроме того, последняя разработка  компании Билла Гейтса , Microsoft C++ открывает перед пользователями огромный спектр возможностей, и все это благодаря  двум профессорам  из Dartmouth College.

fb.ru

Бейсик - это... Что такое Бейсик?

Бе́йсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих[1]) — семейство высокоуровневых языков программирования.

Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.[2]

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

История

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

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

Однако в течение 1960-х годов цены на компьютеры стали падать так, что даже небольшие компании могли их себе позволить; их быстродействие всё увеличивалось и наступило время, когда стало возможно организовать более эффективную непосредственную работу пользователей с компьютерами в режиме разделения времени (time-sharing).

Рождение

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

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

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

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

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

Рост

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

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

В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик. Так как IBM не придавала тогда большого значения персональным компьютерам (основным полем её деятельности были мейнфреймы), то, вопреки своим принципам, она разрешила Microsoft продавать интерпретатор отдельно. Это сделало последнюю пионером в выпуске ПО нового поколения — не привязанного к конкретной аппаратуре и поставляемого отдельно от компьютера.

Зрелость

В этот период было создано несколько новых версий Бейсика. Microsoft продавала несколько версий Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и QuickBASIC. Borland, известная своим Turbo Pascal, в 1985 году выпустила Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). На домашних компьютерах появились различные версии Бейсика, обычно включавшие в себя расширения для работы с графикой, звуком, команды ОС, а также средства структурного программирования. Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS).

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

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Microsoft Excel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook, включали интерпретатор VBScript.

Бейсик используется в некоторых моделях программируемых калькуляторов. Например, он был встроен в советский калькулятор «Электроника МК-85».

Описание

Синтаксис языка напоминает Фортран и многие элементы — явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций (таких как VBA), в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования (например, такие, как объектная модель). Объявление переменных не требует специальной секции (в отличие, например, от Паскаля). Объявление переменной — это первое её использование.

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

Ранние версии

Экран с Бейсиком компьютера ДВК

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

Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая перенумеровывала все уже введённые строки с постоянным шагом, синхронно изменяя все команды переходов). Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 — это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так:

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора GOTO. Ранее в Бейсике были допустимы только числовые метки для этого оператора, и наличие в каждой строке уникального номера делало возможным безусловный переход к любой из них. Числовые метки и активное использование GOTO было неизбежным при программировании на Бейсике, что способствовало плохой структуре кода и в больших проектах приводило к запутыванию самих авторов. Был даже придуман шуточный термин «макаронное программирование» (spagetti code), потому что логика программы с частыми переходами GOTO напоминает тарелку со спагетти.

Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие (это разрешалось не во всех реализациях языка). Имена переменных в большинстве диалектов могли состоять только из одной буквы, после которой можно было добавить одну цифру, что так же не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара ($). Переменная без этого знака являлась числовой (с плавающей точкой). Было ещё несколько модификаторов, относящихся к числовому типу: знак процента (%) — целый тип, восклицательный знак (!) — обычная точность, октоторп (#) — двойная точность (для данных с плавающей точкой, то есть дробей). Числовые модификаторы применялись не во всех версиях.

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

Условный оператор (IF..THEN) изначально имел только одну ветвь — ветвь ELSE в нём отсутствовала и моделировалась с помощью безусловного перехода. Так, в нижеследующей программе выполняется элементарная операция — ввод числа и вывод сообщения «Отрицательное число» или «Положительное число или нуль» в зависимости от его значения:

10 INPUT I
20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40
30 PRINT "Negative number"
40 END

Имелся оператор перехода по вычисляемой метке ON..GOTO (унаследованный от аналогичной конструкции Фортрана) — в нём после ON указывалось числовое выражение, а после GOTO — список номеров строк. Переход происходил на строку, номер которой в списке соответствовал значению выражения. Присутствуют также циклы (цикл со счётчиком FOR и цикл с предусловием WHILE).

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

Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные (все переменные в ранних версиях Бейсика были глобальными). Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк (к примеру, нумерация блока подпрограмм могла начинаться с 5000, даже если в программе была пара сотен строк). Подпрограммы не имели заголовков и имён, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова GOSUB <метка>. Это практически клон GOTO, за исключением одного: возврат в точку вызова происходил автоматически, при достижении в подпрограмме ключевого слова RETURN. GOSUB, как и GOTO, только способствовали плохой структуре кода, так как отследить выполнение программы, содержащей большое количество безусловных переходов и подпрограмм, было сложной задачей.

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

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

Редактора кода в ранних версиях, как такового, не было. При запуске интерпретатора Бейсика запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка (их нельзя было включить в код программы). Это команды по управлению средой ввода, такие как: LIST <диапазон строк> — вывод листинга программы на экран (LLIST — на принтер), SAVE <имя файла> — сохранение текста программы в файл, LOAD <имя файла> — загрузка кода в память и т. д. Запуск программы производился вводом команды RUN. В большинстве интерпретаторов Бейсика в нижней части экрана была строка с этими (и другими) командами.

Если команда начиналась с номера строки (метки), она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши  ↵ Enter . В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если, находясь в режиме диалога, ввести строку PRINT 2+2 и нажать  ↵ Enter , на экране отобразится результат сложения.

Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой DELETE <диапазон строк>. Команда RENUM — позволяла восстановить шаг 10 в нумерации строк. Часто возникала ситуация, что штатного шага 10 для будущих строк не хватало (так как такой шаг позволяет добавить лишь 9 строк между требуемыми) и тогда команда RENUM была необходимой (все строки перенумеровывались с шагом 10, и соответствующим образом корректировались строки с GOTO под новую нумерацию строк).

Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда RUN (начать выполнение программы) вызывалась автоматически.

Фрагмент типичной программы на Бейсике:

10 CLS 'Очистка экрана
20 PRINT "Добро пожаловать!" 'Заголовок в первой строке
30 'Цикл, выводящий линию под заголовком, на всю ширину экрана
40 FOR I=1 TO 80
50 PRINT "=";
60 NEXT I
65 'Ввод символьных данных от пользователя (комментарий добавлен после ввода нижних строк)
70 INPUT "Имя:  ",N$
80 INPUT "Фамилия: ",S$
90 INPUT "Отчество: ",T$
95 'Вырезаем копию первых символов из имени и отчества
100 N2$=LEFT$(N$,1)
110 T2$=LEFT$(T$,1)
120 'Выводим результат
130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"."
140 INPUT "Повторить программу? (Y/N) ",U$
150 IF U$="Y" THEN GOTO 10
160 END

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

Поздние версии

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

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

  • Отказались от представления программы как неструктурированного набора пронумерованных строк. Номера строк превратились в обычные метки, которые стали необязательными и перестали влиять на порядок исполнения программы. Если ранее строка с номером 15 всегда шла в программе раньше строки с номером 20, то теперь порядок исполнения стал определяться порядком расположения строк в исходном коде. Метки перестали быть только числовыми.
  • В языке появились именованные подпрограммы с параметрами, механизм вызова подпрограмм стал обычным: подпрограмма вызывается по имени, с указанием списка фактических параметров.
  • Были введены структурные управляющие конструкции, в результате для организации обычных ветвлений и циклов перестало быть необходимым использование оператора GOTO и меток строк.
  • Существенно расширилась номенклатура типов данных, появилась возможность явно описывать типы обычных переменных.
  • Стали необязательными типизирующие суффиксы в именах переменных, хотя их использование не запрещалось.
  • В более поздних версиях появилась обработка исключений и поддержка элементов ООП.
  • Были введены механизмы поддержки модульности — появилась возможность без «фокусов» (типа динамической загрузки модулей с помощью явных системных вызовов) разделять программу на несколько файлов исходного кода.
  • Появились средства для работы с цветной графикой и звуковой картой.
  • Visual Basic, ориентированный на разработку Windows-приложений с графическим интерфейсом пользователя, был выполнен интегрированным с графическим дизайнером интерфейса, что позволило быстро писать простые программы под Windows.
  • Появились кроссплатформенные реализации, например, FreeBASIC и PureBasic.

Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред (например, таких, как Delphi). Оборотной стороной процесса модификации Basic является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий.

Фрагмент типичной программы на FreeBASIC:

# Lang "fb"
Dim As String n,s,t,n2,t2
Cls : Print "Добро пожаловать!" 'Заголовок в первой строке
Do
        'Цикл, выводящий линию под заголовком, на всю ширину экрана
        For i As Integer=1  To LoWord(Width)
                Print "=";
        Next i
        'Ввод символьных данных от пользователя
        Input "Имя:  ",n
        Input "Фамилия: ",s
        Input "Отчество: ",t
        'Вырезаем копию первых символов из имени и отчества
        n2=Left(n,1)
        t2=Left(t,1)
        'Выводим результат
        Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "."
        Print "Повторить программу? (y/n) "
Loop While LCase(Input(1))="y"
End 0

Несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic в пользу принципиально нового языка Visual Basic .NET — в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова. Таким образом, Basic перерос из средства для создания программ любителям-непрофессионалам до полноценного средства создания программ.

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

Критика

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

Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации».[3]

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

Производители

В разное время интерпретаторы BASIC выпускались различными организациями, компаниями, фирмами:

Советские:

Реализации

Apple:

Microsoft:

Другие:

Интересные факты

Примечания

Литература

  • Vladimir Dyakonov and other. The Revolutionary Guide to QBASIC. — Birmingham: Wrox Press Ltd, 1996. — 578 p.
  • Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. — М.: Наука, Физматлит, 1987. — 240 с.
  • Дьяконов В. П. Применение персональных ЭВМ и программирование на языке Бейсик. — М.: Радио и связь, 1989. — 288 с.
  • Дьяконов В. П. Современные зарубежные микрокалькуляторы. — М.: СОЛОН-Р, 2002. — 400 с.
Стандарты

Ссылки

dic.academic.ru

BASIC - это... Что такое BASIC?

Бе́йсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих[1]; англ. basic — основной, базовый) — семейство высокоуровневых языков программирования.

Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.

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

В 1975 году Пол Ален, молодой программист из Бостона, в содружестве со студентом Гарвардского университета Биллом Гейтсом написали программу, реализующую для микрокомпьютера Альтаир 8800 язык Бейсик, впервые использовав его для программного обеспечения персональных компьютеров. Впоследствии Гейтс и Аллен основали собственную фирму Microsoft.[1]

История

Предпосылки

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

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

Однако, в течение 1960-х цены на компьютеры стали падать так, что даже небольшие компании могли их себе позволить; их быстродействие всё увеличивалось и наступило время, когда стало возможно организовать более эффективную непосредственную работу пользователей с компьютерами в режиме разделения времени (time-sharing).

Рождение

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

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

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

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

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

Взрывной рост

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

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

В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик. Так как IBM не придавала тогда большого значения персональным компьютерам (основным полем её деятельности были мейнфреймы), то, вопреки своим принципам, она разрешила Microsoft продавать интерпретатор отдельно. Это сделало последнюю пионером в выпуске ПО нового поколения — не привязанного к конкретной аппаратуре и поставляемого отдельно от компьютера.

Зрелость

В этот период было создано несколько новых версий Бейсика. Microsoft продавала несколько версий Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и Quick BASIC. Borland, известная своим Turbo Pascal, в 1985 году выпустила Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). На домашних компьютерах появились различные версии Бейсика, обычно включавшие в себя расширения для работы с графикой, звуком, команды ОС, а также средства структурного программирования. Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS).

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

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Excel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook, включали интерпретатор VBScript.

Бейсик используется в некоторых моделях программируемых калькуляторов. Например, он был встроен в советский калькулятор «Электроника МК-85».

Описание языка

Синтаксис языка напоминает Fortran, и многие элементы — явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций (таких как VBA), в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования (например, такие, как объектная модель). Объявление переменных не требует специальной секции (в отличие, например, от Паскаля). Объявление переменной — это первое её использование.

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

Ранние версии

Экран с Бейсиком компьютера ДВК

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

Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая перенумеровывала все уже введённые строки с постоянным шагом, синхронно изменяя все команды переходов). Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 — это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так:

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора GOTO. Ранее в Бейсике были допустимы только числовые метки для этого оператора, и наличие в каждой строке уникального номера делало возможным безусловный переход к любой из них. Числовые метки и активное использование GOTO было неизбежным при программировании на Бейсике, что способствовало плохой структуре кода и в больших проектах приводило к запутыванию самих авторов. Был даже придуман шуточный термин «макаронное программирование» (spagetti code), потому что программа с частыми переходами GOTO, по мнению некоторых, напоминала тарелку со спагетти.

Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие (это разрешалось не во всех реализациях языка). Имена переменных в большинстве диалектов могли состоять только из одной буквы, после которой можно было добавить одну цифру, что так же не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара ($). Переменная без этого знака являлась числовой (с плавающей точкой). Было ещё несколько модификаторов, относящихся к числовому типу: знак процента (%) — целый тип, восклицательный знак (!) — обычная точность, октоторп (#) — двойная точность (для данных с плавающей точкой, то есть дробей). Числовые модификаторы применялись не во всех версиях.

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

Условный оператор (IF..THEN) изначально имел только одну ветвь — ветвь ELSE в нём отсутствовала и моделировалась с помощью безусловного перехода. Так, в нижеследующей программе выполняется элементарная операция — ввод числа и вывод сообщения «Отрицательное число» или «Положительное число или нуль» в зависимости от его значения:

10 INPUT I
20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40
30 PRINT "Negative number"
40 END

Имелся оператор перехода по вычисляемой метке ON..GOTO (унаследованный от аналогичной конструкции Фортрана) — в нём после ON указывалось числовое выражение, а после GOTO — список номеров строк. Переход происходил на строку, номер которой в списке соответствовал значению выражения. Присутствуют также циклы (цикл со счётчиком FOR и цикл с предусловием WHILE).

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

Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные (все переменные в ранних версиях Бейсика были глобальными). Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк (к примеру, нумерация блока подпрограмм могла начинаться с 5000, даже если в программе была пара сотен строк). Подпрограммы не имели заголовков и имён, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова GOSUB <метка>. Это практически клон GOTO, за исключением одного: возврат в точку вызова происходил автоматически, при достижении в подпрограмме ключевого слова RETURN. GOSUB, как и GOTO, только способствовали плохой структуре кода, так как отследить выполнение программы, содержащей большое количество безусловных переходов и подпрограмм, было сложной задачей.

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

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

Редактора кода в ранних версиях, как такового, не было. При запуске интерпретатора Бейсика запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка (их нельзя было включить в код программы). Это команды по управлению средой ввода, такие как: LIST <диапазон строк> — вывод листинга программы на экран (LLIST — на принтер), SAVE <имя файла> — сохранение текста программы в файл, LOAD <имя файла> — загрузка кода в память и т. д. Запуск программы производился вводом команды RUN. В большинстве интерпретаторов Бейсика в нижней части экрана была строка с этими (и другими) командами.

Если команда начиналась с номера строки (метки), она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши   ↵ Enter . В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если, находясь в режиме диалога, ввести строку PRINT 2+2 и нажать   ↵ Enter , на экране отобразится результат сложения.

Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой DELETE <диапазон строк>. Команда RENUM — позволяла восстановить шаг 10 в нумерации строк. Часто возникала ситуация, что штатного шага 10 для будущих строк не хватало (так как такой шаг позволяет добавить лишь 9 строк между требуемыми) и тогда команда RENUM была необходимой (все строки перенумеровывались с шагом 10, и соответствующим образом корректировались строки с GOTO под новую нумерацию строк).

Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда RUN (начать выполнение программы) вызывалась автоматически.

Фрагмент типичной программы на Бейсике:

10 CLS 'Очистка экрана
20 PRINT "Добро пожаловать!" 'Заголовок в первой строке
30 'Цикл, выводящий линию под заголовком, на всю ширину экрана 
40 FOR I=1 TO 80
50 PRINT "=";
60 NEXT I
65 'Ввод символьных данных от пользователя (комментарий добавлен после ввода нижних строк)
70 INPUT "Имя:  ",N$
80 INPUT "Фамилия: ",S$
90 INPUT "Отчество: ",T$
95 'Вырезаем копию первых символов из имени и отчества
100 N2$=LEFT$(N$,1)
110 T2$=LEFT$(T$,1)
120 'Выводим результат
130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"."
140 INPUT "Повторить программу? (Y/N) ",U$
150 IF U$="Y" THEN GOTO 10
160 END

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

Поздние версии

Одним из наиболее распространённых вариантов языка Бейсик стала реализация интерпретатора QBASIC корпорации Microsoft. Долгие годы она включалась как бесплатное приложение, входящее в операционные системы MS-DOS и ранних Windows. Особо следует выделить довольно мощные графические и звуковые возможности QBASIC, позволяющие программировать на этом языке даже игры.

Basic поздних версий (начиная с Borland Turbo Basic и Microsoft Visual Basic) резко отличается от ранних вариантов. Фактически, это новый язык, который во многом ближе к Фортрану или Паскалю, чем к исходному Basic’у. Основные изменения версий 1990-х годов состоят в следующем:

  • Отказались от представления программы как неструктурированного набора пронумерованных строк. Номера строк превратились в обычные метки, которые стали необязательными и перестали влиять на порядок исполнения программы. Если ранее строка с номером 15 всегда шла в программе раньше строки с номером 20, то теперь порядок исполнения стал определяться порядком расположения строк в исходном коде. Метки перестали быть только числовыми.
  • В языке появились именованные подпрограммы с параметрами, механизм вызова подпрограмм стал обычным: подпрограмма вызывается по имени, с указанием списка фактических параметров.
  • Были введены структурные управляющие конструкции, в результате для организации обычных ветвлений и циклов перестало быть необходимым использование оператора GOTO и меток строк.
  • Существенно расширилась номенклатура типов данных, появилась возможность явно описывать типы обычных переменных.
  • Стали необязательными типизирующие суффиксы в именах переменных, хотя их использование не запрещалось.
  • В более поздних версиях появилась обработка исключений и поддержка элементов ООП.
  • Были введены механизмы поддержки модульности — появилась возможность без «фокусов» (типа динамической загрузки модулей с помощью явных системных вызовов) разделять программу на несколько файлов исходного кода.
  • Появились средства для работы с цветной графикой и звуковой картой.
  • Visual Basic, ориентированный на разработку Windows-приложений с графическим интерфейсом пользователя, был выполнен интегрированным с графическим дизайнером интерфейса, что позволило быстро писать простые программы под Windows.
  • Появились кроссплатформенные реализации, например, FreeBASIC и PureBasic.

Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред (например, таких, как Delphi). Оборотной стороной процесса модификации Basic является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий.

Фрагмент типичной программы на FreeBASIC:

# Lang "fb"
Dim As String n,s,t,n2,t2
Cls : Print "Добро пожаловать!" 'Заголовок в первой строке
Do
        'Цикл, выводящий линию под заголовком, на всю ширину экрана
        For i As Integer=1  To LoWord(Width)
                Print "=";
        Next i
        'Ввод символьных данных от пользователя
        Input "Имя:  ",n
        Input "Фамилия: ",s
        Input "Отчество: ",t
        'Вырезаем копию первых символов из имени и отчества
        n2=Left(n,1)
        t2=Left(t,1)
        'Выводим результат
        Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "."
        Print "Повторить программу? (y/n) "
Loop While LCase(Input(1))="y"
End 0

Несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic в пользу принципиально нового языка Visual Basic .NET — в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова. Таким образом, Basic перерос из средства для создания программ любителям-непрофессионалам до полноценного средства создания программ.

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

Критика

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

Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Однако, это высказывание цитируется вне контекста, в котором Дейкстра подверг критике и многие другие популярные в то время языки.

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

Стандарты

  • ANSI X3.60-1978 «FOR MINIMAL BASIC»
  • ISO/IEC 6373:1984 «DATA PROCESSING — PROGRAMMING LANGUAGES — MINIMAL BASIC»
  • ANSI X3.113-1987 «PROGRAMMING LANGUAGES FULL BASIC»
  • ISO/IEC 10279:1991 «INFORMATION TECHNOLOGY — PROGRAMMING LANGUAGES — FULL BASIC»
  • ANSI X3.113 INTERPRETATIONS-1992 «BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987»
  • ISO/IEC 10279:1991/ Amd 1:1994 «MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»

Производители

В разное время интерпретаторы BASIC выпускались различными организациями, компаниями, фирмами, как за рубежом, так и в СССР:

Иностранные

Советские

Реализации

Apple

Microsoft

Другие

Интересные факты

  • В СССР, а затем и в России, язык BASIC приобрёл шуточное прозвище Ва́сик — прозвище образовано путём прочтения в слове BASIC букв латиницы в значении похожих на них букв кириллицы (см. также Линух, Зухе́ль).

Литература

  • Vladimir Dyakonov and other. The Revolutionary Guide to QBASIC — Birmingham: Wrox Press Ltd, 1996. — 578 p.
  • Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ — М.: Наука, Физматлит, 1987. — 240 с.
  • Дьяконов В. П. Применение персональных ЭВМ и программирование на языке Бейсик — М.: Радио и связь, 1989. — 288 с.
  • Дьяконов В. П. Современные зарубежные микрокалькуляторы — М.: СОЛОН-Р, 2002. — 400 с.

Ссылки

Примечания

  1. 1 2 Знакомьтесь: компьютер = Computer basics INPUT/OUTPUT. Understanding computers. / Пер. с англ. К.Г. Батаева Под ред. и с предисл. канд. физ.-мат. наук В.М. Курочкина — М.: Мир, 1989. — 240 с. — 100000 экз. — ISBN 5-03-001147-1.

dic.academic.ru

Бэйсик - это... Что такое Бэйсик?

Ранние версии

Экран с Бейсиком компьютера ДВК

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

Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось перевводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая перенумеровывала все уже введённые строки с постоянным шагом, синхронно изменяя все команды переходов). Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 — это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так:

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора GOTO, по мнению некоторых, напоминала тарелку со спагетти.

Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие. Длина имён переменных в большинстве диалектов была ограничена тремя символами, что также не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара ($). Переменная без этого знака являлась числовой. Было ещё несколько модификаторов, относящихся к числовому типу: знак процента (%) — целый тип, восклицательный знак (!) — обычная точность, октоторп (#) — двойная точность (для данных с плавающей точкой, то есть дробей). Числовые модификаторы применялись не во всех версиях.

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

Условный оператор (IF..THEN) изначально имел только одну ветвь — ветвь ELSE в нём отсутствовала и моделировалась с помощью безусловного перехода. Так, в нижеследующей программе выполняется элементарная операция — ввод числа и вывод сообщения «Отрицательное число» или «Положительное число или нуль» в зависимости от его значения:

10 INPUT I
20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40
30 PRINT "Negative number"
40 END

Имелся оператор перехода по вычисляемой метке ON..GOTO (унаследованный от аналогичной конструкции Фортрана) — в нём после ON указывалось числовое выражение, а после GOTO — список номеров строк. Переход происходил на строку, номер которой в списке соответствовал значению выражения. Присутствуют также циклы (цикл со счётчиком FOR, и цикл с предусловием WHILE).

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

Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные (все переменные в ранних версиях Бейсика были глобальными). Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк (к примеру, нумерация блока подпрограмм могла начинаться с 5000, даже если в программе была пара сотен строк). Подпрограммы не имели заголовков и имен, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова GOSUB <метка>. Это практически клон GOTO, за исключением одного: возврат в точку вызова происходил автоматически, при достижении в подпрограмме ключевого слова RETURN. GOSUB, как и GOTO, только способствовали плохой структуре кода, так как отследить выполнение программы, содержащей большое количество безусловных переходов и подпрограмм, было сложной задачей.

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

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

Редактора кода в ранних версиях как такового не было. При запуске интерпретатора Бейсика, запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка (их нельзя было включить в код программы). Это команды по управлению средой ввода, такие как: LIST <диапазон строк> — вывод листинга программы на экран (LLIST — на принтер), SAVE <имя файла> — сохранение текста программы в файл, LOAD <имя файла> — загрузка кода в память и т. д. Запуск программы производился вводом команды RUN. В большинстве интерпретаторов Бейсика в нижней части экрана была строка с этими (и другими) командами.

Если команда начиналась с номера строки (метки), она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши Enter. В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если находясь в режиме диалога ввести строку PRINT 2+2 и нажать Enter, на экране отобразится результат сложения.

Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой DELETE <диапазон строк>. Команда RENUM — позволяла восстановить шаг 10 в нумерации строк. Часто возникала ситуация, что штатного шага 10 для будущих строк не хватало (так как такой шаг позволяет добавить лишь 9 строк между требуемыми) и тогда команда RENUM была необходимой (все строки перенумеровывались с шагом 10, и соответствующим образом корректировались строки с GOTO под новую нумерацию строк).

Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда RUN (начать выполнение программы) вызывалась автоматически.

Фрагмент типичной программы на Бейсике:

10 CLS 'Очистка экрана
20 PRINT "Добро пожаловать!" 'Заголовок в первой строке
30 'Цикл, выводящий линию под заголовком, на всю ширину экрана 
40 FOR I=1 TO 80
50 PRINT "=";
60 NEXT I
65 'Ввод символьных данных от пользователя (комментарий добавлен после ввода нижних строк)
70 INPUT "Имя:  ",N$
80 INPUT "Фамилия: ",S$
90 INPUT "Отчество: ",T$
95 'Вырезаем копию первых символов из имени и отчества
100 N2$=LEFT$(N$,1)
110 T2$=LEFT$(T$,1)
120 'Выводим результат
130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"."
140 INPUT "Повторить программу? (Y/N) ",U$
150 IF U$="Y" THEN GOTO 10
160 END

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

Поздние версии

Basic поздних версий (начиная с Borland Turbo Basic и Microsoft Visual Basic) резко отличается от ранних вариантов. Фактически, это новый язык, который во многом ближе к Фортрану или Паскалю, чем к исходному Basic’у. Основные изменения версий 1990-х годов состоят в следующем:

  • Отказались от представления программы как неструктурированного набора пронумерованных строк. Номера строк превратились в обычные метки, которые стали необязательными и перестали влиять на порядок исполнения программы. Если ранее строка с номером 15 всегда шла в программе раньше строки с номером 20, то теперь порядок исполнения стал определяться порядком расположения строк в исходном коде. Метки перестали быть только числовыми.
  • В языке появились именованные подпрограммы с параметрами, механизм вызова подпрограмм стал обычным: подпрограмма вызывается по имени, с указанием списка фактических параметров.
  • Были введены структурные управляющие конструкции, в результате для организации обычных ветвлений и циклов перестало быть необходимым использование оператора GOTO и меток строк.
  • Существенно расширилась номенклатура типов данных, появилась возможность явно описывать типы обычных переменных.
  • Стали необязательными типизирующие суффиксы в именах переменных, хотя их использование не запрещалось.
  • В более поздних версиях появилась обработка исключений и поддержка элементов ООП.
  • Были введены механизмы поддержки модульности — появилась возможность без «фокусов» (типа динамической загрузки модулей с помощью явных системных вызовов) разделять программу на несколько файлов исходного кода.
  • Visual Basic, ориентированный на разработку Windows-приложений с графическим интерфейсом пользователя, был выполнен интегрированным с графическим дизайнером интерфейса, что позволило быстро писать простые программы под Windows.

Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред (например, таких, как Delphi). Оборотной стороной процесса модификации Basic’а является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий.

Фрагмент типичной программы на FreeBASIC:

#Lang "fb"
Dim As String n,s,t,n2,t2
Cls : Print "Добро пожаловать!" 'Заголовок в первой строке
Do
	'Цикл, выводящий линию под заголовком, на всю ширину экрана
	For i As Integer=1  To LoWord(Width)
		Print "=";
	Next i
	'Ввод символьных данных от пользователя
	Input "Имя:  ",n
	Input "Фамилия: ",s
	Input "Отчество: ",t
	'Вырезаем копию первых символов из имени и отчества
	n2=Left(n,1)
	t2=Left(t,1)
	'Выводим результат
	Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "."
	Print "Повторить программу? (y/n) "
Loop While LCase(Input(1))="y"
End 0

Существует множество современных реализаций компилятора Basic. В состав платформы Microsoft .NET входит компилятор Visual Basic .NET — в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова.

Помимо написания «полноценных» программ, Бейсик широко применяется как основа для различных скриптовых языков (например, написание макросов в пакете Microsoft Office выполняется на специализированном диалекте

Критика

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

Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Однако, это высказывание цитируется вне контекста, в котором Дейкстра подверг критике и многие другие популярные в то время языки.

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

Стандарты

  • ANSI X3.60-1978 «FOR MINIMAL BASIC»
  • ISO/IEC 6373:1984 «DATA PROCESSING — PROGRAMMING LANGUAGES — MINIMAL BASIC»
  • ANSI X3.113-1987 «PROGRAMMING LANGUAGES FULL BASIC»
  • ISO/IEC 10279:1991 «INFORMATION TECHNOLOGY — PROGRAMMING LANGUAGES — FULL BASIC»
  • ANSI X3.113 INTERPRETATIONS-1992 «BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987»
  • ISO/IEC 10279:1991/ Amd 1:1994 «MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»

Реализации

dic.academic.ru

Реферат Бейсик

скачать

Реферат на тему:

План:

    Введение
  • 1 История
    • 1.1 Предпосылки
    • 1.2 Рождение
    • 1.3 Взрывной рост
    • 1.4 Зрелость
  • 2 Описание языка
    • 2.1 Ранние версии
    • 2.2 Поздние версии
  • 3 Критика
  • 4 Стандарты
  • 5 Производители
    • 5.1 Иностранные
    • 5.2 Советские
  • 6 Реализации
    • 6.1 Apple
    • 6.2 Microsoft
    • 6.3 Другие
  • 7 Интересные факты
  • Литература
    Примечания

Введение

Бе́йсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих[1]; англ. basic — основной, базовый) — семейство высокоуровневых языков программирования.

Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.

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

В 1975 году, Пол Ален, молодой программист из Бостона, в содружестве со студентом Гарвардского университета Биллом Гейтсом написали программу, реализующую для микрокомпьютера Альтаир 8800 язык Бейсик, впервые использовав его для программного обеспечения персональных компьютеров. Впоследствии Гейтс и Аллен основали собственную фирму Microsoft.[1]


1. История

1.1. Предпосылки

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

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

Однако, в течение 1960-х цены на компьютеры стали падать так, что даже небольшие компании могли их себе позволить; их быстродействие всё увеличивалось и наступило время, когда стало возможно организовать более эффективную непосредственную работу пользователей с компьютерами в режиме разделения времени (time-sharing).


1.2. Рождение

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

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

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

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

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


1.3. Взрывной рост

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

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

В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик. Так как IBM не придавала тогда большого значения персональным компьютерам (основным полем её деятельности были мейнфреймы), то, вопреки своим принципам, она разрешила Microsoft продавать интерпретатор отдельно. Это сделало последнюю пионером в выпуске ПО нового поколения — не привязанного к конкретной аппаратуре и поставляемого отдельно от компьютера.


1.4. Зрелость

В этот период было создано несколько новых версий Бейсика. Microsoft продавала несколько версий Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и Quick BASIC. Borland, известная своим Turbo Pascal, в 1985 году выпустила Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). На домашних компьютерах появились различные версии Бейсика, обычно включающие расширения для работы с графикой, звуком, команды ОС, а также средства структурного программирования. Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS).

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

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Excel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook, включали интерпретатор VBScript.

Бейсик используется в некоторых моделях программируемых калькуляторов. Например, он был встроен в советский калькулятор «Электроника МК-85».


2. Описание языка

Синтаксис языка напоминает Fortran, и многие элементы — явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций (таких как VBA), в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования (например, такие как объектная модель). Объявление переменных не требует специальной секции (в отличие, например, от Паскаля). Объявление переменной — это первое её использование.

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


2.1. Ранние версии

Экран с Бейсиком компьютера ДВК

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

Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая перенумеровывала все уже введённые строки с постоянным шагом, синхронно изменяя все команды переходов). Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 — это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так:

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора GOTO. Ранее в Бейсике были допустимы только числовые метки для этого оператора, и наличие в каждой строке уникального номера делало возможным безусловный переход к любой из них. Числовые метки и активное использование GOTO было неизбежным при программировании на Бейсике, что способствовало плохой структуре кода и в больших проектах приводило к запутыванию самих авторов. Был даже придуман шуточный термин «макаронное программирование» (spagetti code), потому что программа с частыми переходами GOTO, по мнению некоторых, напоминала тарелку со спагетти.

Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие (это разрешалось не во всех реализациях языка). Имена переменных в большинстве диалектов могли состоять только из одной буквы, после которой можно было добавить одну цифру, что также не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара ($). Переменная без этого знака являлась числовой. Было ещё несколько модификаторов, относящихся к числовому типу: знак процента (%) — целый тип, восклицательный знак (!) — обычная точность, октоторп (#) — двойная точность (для данных с плавающей точкой, то есть дробей). Числовые модификаторы применялись не во всех версиях.

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

Условный оператор (IF..THEN) изначально имел только одну ветвь — ветвь ELSE в нём отсутствовала и моделировалась с помощью безусловного перехода. Так, в нижеследующей программе выполняется элементарная операция — ввод числа и вывод сообщения «Отрицательное число» или «Положительное число или нуль» в зависимости от его значения:

10 INPUT I
20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40
30 PRINT "Negative number"
40 END

Имелся оператор перехода по вычисляемой метке ON..GOTO (унаследованный от аналогичной конструкции Фортрана) — в нём после ON указывалось числовое выражение, а после GOTO — список номеров строк. Переход происходил на строку, номер которой в списке соответствовал значению выражения. Присутствуют также циклы (цикл со счётчиком FOR и цикл с предусловием WHILE).

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

Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные (все переменные в ранних версиях Бейсика были глобальными). Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк (к примеру, нумерация блока подпрограмм могла начинаться с 5000, даже если в программе была пара сотен строк). Подпрограммы не имели заголовков и имён, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова GOSUB <метка>. Это практически клон GOTO, за исключением одного: возврат в точку вызова происходил автоматически, при достижении в подпрограмме ключевого слова RETURN. GOSUB, как и GOTO, только способствовали плохой структуре кода, так как отследить выполнение программы, содержащей большое количество безусловных переходов и подпрограмм, было сложной задачей.

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

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

Редактора кода в ранних версиях как такового не было. При запуске интерпретатора Бейсика, запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка (их нельзя было включить в код программы). Это команды по управлению средой ввода, такие как: LIST <диапазон строк> — вывод листинга программы на экран (LLIST — на принтер), SAVE <имя файла> — сохранение текста программы в файл, LOAD <имя файла> — загрузка кода в память и т. д. Запуск программы производился вводом команды RUN. В большинстве интерпретаторов Бейсика в нижней части экрана была строка с этими (и другими) командами.

Если команда начиналась с номера строки (метки), она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши   ↵ Enter . В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если находясь в режиме диалога ввести строку PRINT 2+2 и нажать   ↵ Enter , на экране отобразится результат сложения.

Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой DELETE <диапазон строк>. Команда RENUM — позволяла восстановить шаг 10 в нумерации строк. Часто возникала ситуация, что штатного шага 10 для будущих строк не хватало (так как такой шаг позволяет добавить лишь 9 строк между требуемыми) и тогда команда RENUM была необходимой (все строки перенумеровывались с шагом 10, и соответствующим образом корректировались строки с GOTO под новую нумерацию строк).

Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда RUN (начать выполнение программы) вызывалась автоматически.

Фрагмент типичной программы на Бейсике:

10 CLS 'Очистка экрана
20 PRINT "Добро пожаловать!" 'Заголовок в первой строке
30 'Цикл, выводящий линию под заголовком, на всю ширину экрана 
40 FOR I=1 TO 80
50 PRINT "=";
60 NEXT I
65 'Ввод символьных данных от пользователя (комментарий добавлен после ввода нижних строк)
70 INPUT "Имя:  ",N$
80 INPUT "Фамилия: ",S$
90 INPUT "Отчество: ",T$
95 'Вырезаем копию первых символов из имени и отчества
100 N2$=LEFT$(N$,1)
110 T2$=LEFT$(T$,1)
120 'Выводим результат
130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"."
140 INPUT "Повторить программу? (Y/N) ",U$
150 IF U$="Y" THEN GOTO 10
160 END

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


2.2. Поздние версии

Одним из наиболее распространённых вариантов языка Бейсик стала реализация интерпретатора QBASIC корпорации Microsoft. Долгие годы она включалась как бесплатное приложение, входящее в операционные системы MS-DOS и ранних Windows. Особо следует выделить довольно мощные графические и звуковые возможности QBASIC, позволяющие программировать на этом языке даже игры.

Basic поздних версий (начиная с Borland Turbo Basic и Microsoft Visual Basic) резко отличается от ранних вариантов. Фактически, это новый язык, который во многом ближе к Фортрану или Паскалю, чем к исходному Basic’у. Основные изменения версий 1990-х годов состоят в следующем:

  • Отказались от представления программы как неструктурированного набора пронумерованных строк. Номера строк превратились в обычные метки, которые стали необязательными и перестали влиять на порядок исполнения программы. Если ранее строка с номером 15 всегда шла в программе раньше строки с номером 20, то теперь порядок исполнения стал определяться порядком расположения строк в исходном коде. Метки перестали быть только числовыми.
  • В языке появились именованные подпрограммы с параметрами, механизм вызова подпрограмм стал обычным: подпрограмма вызывается по имени, с указанием списка фактических параметров.
  • Были введены структурные управляющие конструкции, в результате для организации обычных ветвлений и циклов перестало быть необходимым использование оператора GOTO и меток строк.
  • Существенно расширилась номенклатура типов данных, появилась возможность явно описывать типы обычных переменных.
  • Стали необязательными типизирующие суффиксы в именах переменных, хотя их использование не запрещалось.
  • В более поздних версиях появилась обработка исключений и поддержка элементов ООП.
  • Были введены механизмы поддержки модульности — появилась возможность без «фокусов» (типа динамической загрузки модулей с помощью явных системных вызовов) разделять программу на несколько файлов исходного кода.
  • Появились средства для работы с цветной графикой и звуковой картой.
  • Visual Basic, ориентированный на разработку Windows-приложений с графическим интерфейсом пользователя, был выполнен интегрированным с графическим дизайнером интерфейса, что позволило быстро писать простые программы под Windows.
  • Появились кроссплатформенные реализации, например, FreeBASIC и PureBasic.

Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред (например, таких, как Delphi). Оборотной стороной процесса модификации Basic является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий.

Фрагмент типичной программы на FreeBASIC:

# Lang "fb"
Dim As String n,s,t,n2,t2
Cls : Print "Добро пожаловать!" 'Заголовок в первой строке
Do
        'Цикл, выводящий линию под заголовком, на всю ширину экрана
        For i As Integer=1  To LoWord(Width)
                Print "=";
        Next i
        'Ввод символьных данных от пользователя
        Input "Имя:  ",n
        Input "Фамилия: ",s
        Input "Отчество: ",t
        'Вырезаем копию первых символов из имени и отчества
        n2=Left(n,1)
        t2=Left(t,1)
        'Выводим результат
        Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "."
        Print "Повторить программу? (y/n) "
Loop While LCase(Input(1))="y"
End 0

Несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic в пользу принципиально нового языка Visual Basic .NET — в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова. Таким образом, Basic перерос из средства для создания программ любителям-непрофессионалам до полноценного средства создания программ.

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


3. Критика

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

Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Однако, это высказывание цитируется вне контекста, в котором Дейкстра подверг критике и многие другие популярные в то время языки.

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


4. Стандарты

  • ANSI X3.60-1978 «FOR MINIMAL BASIC»
  • ISO/IEC 6373:1984 «DATA PROCESSING — PROGRAMMING LANGUAGES — MINIMAL BASIC»
  • ANSI X3.113-1987 «PROGRAMMING LANGUAGES FULL BASIC»
  • ISO/IEC 10279:1991 «INFORMATION TECHNOLOGY — PROGRAMMING LANGUAGES — FULL BASIC»
  • ANSI X3.113 INTERPRETATIONS-1992 «BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987»
  • ISO/IEC 10279:1991/ Amd 1:1994 «MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»

5. Производители

В разное время интерпретаторы BASIC выпускались различными организациями, компаниями, фирмами, как за рубежом, так и в СССР:

5.1. Иностранные

  • Acorn Computers Ltd
  • Apple
  • Atari
  • Basic International
  • Borland International
  • CDC
  • Commodore
  • Comshare
  • Concept Omega
  • Data General
  • Dartmouth
  • DEC
  • Digital Research
  • Exidy
  • Fantaisie Software
  • The Game Creators
  • Gordon Eubanks
  • Hedge Systems
  • Honeywell
  • HP
  • IBM
  • Mark Williams
  • Microdata
  • Microsoft
  • Microway
  • Morgan Computing
  • NCR Cuntury
  • Radio Shack
  • Ryan McFarland
  • Sax Software
  • Sinclair Research
  • Sperry / Univac
  • Summi Software Tehnology
  • Texas Instruments
  • True Basic
  • Unicomp
  • University of California
  • University of Maryland
  • Varian
  • Wang Laboratories
  • Watcom
  • Xerox
  • Zedcor

5.2. Советские

  • Вильнюсский университет — Вильнюс
  • ВЦ СО АН СССР — Новосибирск
  • ПО «ВЭФ» — Рига
  • Университет — Нижний Новгород

6. Реализации

6.1. Apple

6.2. Microsoft

  • GW-BASIC
  • Microsoft Small Basic
  • MSX BASIC
  • Visual Basic .NET
  • Visual Basic for Applications
  • Visual Basic Scripting Edition

6.3. Другие

  • Altair BASIC
  • BBC-basic
  • DarkBASIC
  • Gambas
  • FreeBASIC
  • Liberty Basic
  • MobileBASIC
  • Play Basic
  • PowerBASIC
  • PureBasic
  • BASIC-256
  • Rapid-Q basic
  • REALbasic
  • Sinclair BASIC
  • Turbo Basic
  • Бейсик Вильнюс

7. Интересные факты

  • В СССР, а затем и в России, язык BASIC приобрёл шуточное прозвище Ва́сик — прозвище образовано путём прочтения в слове BASIC букв латиницы в значении похожих на них букв кириллицы, Зухе́ль).

Литература

  • Vladimir Dyakonov and other. The Revolutionary Guide to QBASIC. — Birmingham: Wrox Press Ltd, 1996. — 578 p.
  • Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. — М.: Наука, Физматлит, 1987. — 240 с.
  • Дьяконов В. П. Применение персональных ЭВМ и программирование на языке Бейсик. — М.: Радио и связь, 1989. — 288 с.
  • Дьяконов В. П. Современные зарубежные микрокалькуляторы. — М.: СОЛОН-Р, 2002. — 400 с.

wreferat.baza-referat.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о