Разное

Когда был разработан язык программирования бейсик: Бейсик | это… Что такое Бейсик?

Бейсик | это… Что такое Бейсик?

У этого термина существуют и другие значения, см. Бейсик (значения).

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

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

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

Содержание

  • 1 История
    • 1.1 Рождение
    • 1.2 Рост
    • 1.3 Зрелость
  • 2 Описание
    • 2.1 Ранние версии
    • 2.2 Поздние версии
  • 3 Критика
  • 4 Производители
  • 5 Реализации
  • 6 Интересные факты
  • 7 Примечания
  • 8 Литература
  • 9 Ссылки

История

До середины 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. Типичная строка из программы на Бейсике выглядела так:

10 PRINT "Hello, World!"

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора 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 выпускались различными организациями, компаниями, фирмами:

  • Acorn Computers
  • Apple
  • Atari
  • Basic International
  • Borland
  • 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 Corporation (англ.)
  • Microsoft
  • Microway (англ.)
  • Morgan Computing
  • NCR Century
  • 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 (англ.)

Советские:

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

Реализации

Apple:

  • Applesoft BASIC
  • Integer BASIC
  • MacBASIC

Microsoft:

  • GW-BASIC
  • Microsoft Small Basic
  • MSX BASIC
  • QBasic
  • QuickBASIC
  • Visual Basic (VBA, VBS, .NET)

Другие:

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

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

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

Примечания

  1. 1 2 Знакомьтесь: компьютер = Computer basics INPUT/OUTPUT. Understanding computers / Пер. с англ. К. Г. Батаева Под ред. и с предисл. канд. физ.-мат. наук В. М. Курочкина. — М.: Мир, 1989. — 240 с. — 100 000 экз. — ISBN 5-03-001147-1
  2. Mary Bellis, BASIC — (Beginner’s All Purpose Symbolic Instruction Code)
  3. How do we tell truths that might hurt?, The threats to computing science
  4. Словарь молодежного, компьютерного и другого сленга и жаргона.

Литература

  • Vladimir Dyakonov and other. The Revolutionary Guide to QBASIC. — Birmingham: Wrox Press Ltd, 1996. — 578 p.
  • Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. — М.: Наука, Физматлит, 1987. — 240 с.
  • Дьяконов В. П. Применение персональных ЭВМ и программирование на языке Бейсик. — М.: Радио и связь, 1989. — 288 с.
  • Дьяконов В. П. Современные зарубежные микрокалькуляторы. — М.: СОЛОН-Р, 2002. — 400 с.
Стандарты
  • 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»
  • INCITS/ISO/IEC 10279-1991 (R2005) «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 — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
  • A Manual for BASIC, the elementary algebraic language designed for use with the Darthmouth Time Sharing System Препринт Дартмутского колледжа от 1 октября 1964.
  • Thomas E. Kurtz. BASIC, 1977.

Бейсик. Visual. | Мир ПК

Он тебя плохому научит», — говорили умудренные опытом товарищи начинающему программисту. Однако редкий учебник по информатике обходился без описания основ этого языка программирования.

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

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

Вряд ли противники Visual Basic (сейчас мы обсуждаем не продукт, а язык, лежащий в его основе) будут спорить с тем, что он обладает всеми необходимыми атрибутами структурного языка программирования. Это роднит его с Паскалем. Но в нем, как и в других промышленных языках программирования, имеются конструкции, не вписывающиеся в рамки академической чистоты. Мы же не ругаем язык Си за то, что теоретические каноны принесены в жертву эффективности и простоте записи кода?

Уверенно выглядит Бейсик и на фоне корифеев концепции объектно-ориентированного подхода. Примером может служить даже удачно выбранный способ записи обращения к полям объекта: конструкция With-End With с точкой перед именем поля. Язык С++ вообще не предлагает никакого решения — имени поля обязательно должно предшествовать имя объекта, а в Паскале используется аналогичная схема, но из-за отсутствия точки возможно смешение контекстов.

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

Здесь не все так однозначно. Visual Basic никогда не славился высокой производительностью генерируемого кода. Ранние его версии создавали не чистый машинный код, а P-код для виртуальной Бейсик-машины. И даже при использовании версий с номерами 5 и 6 разработчики вынуждены были распространять вместе со своими программами довольно весомую по тем временам DLL-библиотеку. Современные продукты также не стали исключением, но с той лишь разницей, что генерируют код для платформы .NET.

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

Размещенный на борту самого популярного браузера, VBScript вышел на просторы Всемирной паутины. Хотя он и проиграл борьбу своему прямому конкуренту JavaScript, тем не менее используется в корпоративных интранет-сетях.

Сознавая, что средства управления операционной системой Windows более ограниченны, чем у Unix-систем, компания Microsoft разрабатывает технологию WindowsScript Hosts (WSH), основанную на возможности программирования объектов операционной системы с помощью языков сценариев — VBScript и JavaScript. Благодаря объектной модели компонентов COM, в несколько строк могут быть записаны действия по обслуживанию базы данных или получению списка аппаратных ресурсов удаленного компьютера. Для примера приведем текст сценария на VBScript, который создает файл базы данных Фирма.mdb с таблицей «Сотрудники» (листинг 1).

И все-таки одну нишу Microsoft оставила незаполненной. В настоящее время компания не предлагает компилятора с языка Бейсик в чистый машинный код. Однако с учетом сказанного выше о Visual Basic и VBScript это не кажется страшным. Впрочем, не так уж трудно представить себе задачу, для решения которой компилятор все-таки необходим.

Допустим, нужно обработать большие текстовые файлы с данными. Это реально выполнить хотя бы с помощью VBScript, но скорость работы такой программы будет черепашьей даже на современном оборудовании. А если требуется фильтр между двумя системами с ограниченным временем ожидания, то что же делать? Да и излишняя в подобной ситуации объектная ориентированность скриптовых языков не способствует ясности и лаконичности исходных текстов.

Возьмем другой пример. Надо разработать продукт, который будет распространяться среди клиентов предприятия. Казалось бы, Visual Basic придет на помощь! Но в таком случае придется распространять вместе со своей программой библиотеку .NET с сопутствующими вероятностями конфликтов версий и другими неприятностями. А вот при разработке программы для компилятора легко контролировать все зависимости.

Неужели Бейсик сдает позиции на этом поприще? За ответом на данный вопрос обратимся в Интернет, где и получим множество ссылок на коммерческие продукты, базирующиеся на Бейсике. Среди них есть и специализированные среды для разработки игр, и интерпретаторы для обучения и оперативного решения вычислительных задач, однако наше внимание привлек проект FreeBasic (http://www.freebasic.net/). Что же скрывается за его названием?

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

Похоже, что совместимость новой версии со старыми на высоте: программа из далекого школьного прошлого была успешно обработана компилятором, и серия ракет, как и встарь, устремилась к верхней границе окна консоли (см. врезку «Подготовка к работе»). Размер исполняемого файла — 19 968 байт, из зависимостей — только KERNEL32.DLL и MSVCRT.DLL. Здесь все по-честному.

А если что-нибудь посерьезнее? Вот так, к примеру, будет выглядеть программа для обнаружения модемов на последовательных портах (листинг 2).

После ее анализа можно утверждать, что на Бейсике несложно написать программу мониторинга или управления оборудованием, подключенным к компьютеру через интерфейс RS-232. Аналогично обстоят дела и с параллельным интерфейсом. Приятно, что все делается только средствами языка, а подробности реализации от нас скрыты.

Если же потребуется напрямую обратиться к функциям библиотек стороннего производителя, FreeBasic не станет чинить препятствий. В дистрибутиве найдутся необходимые заголовочные файлы для использования Win32 API. Любители математического искусства сумеют оценить красоту множеств Мандельброта, воспроизводящихся программой mandbrot.bas из пакета примеров к графической библиотеке Gfxlib.

Разработчики обратили внимание на использование Бейсик-модулей в смешанных проектах. Описание интерфейсов можно найти в сопроводительной документации.

Чтобы реализовать все эти возможности, пришлось в язык Бейсик ввести дополнения. Некоторые из них, в частности Си-подобные операции присваивания и инкрементирования/декрементирования, являются спорными — они напоминают засорение нашей повседневной речи американизмами и прочим сленгом. Употреблять их или нет, зависит от желания программиста. Кроме того, существенно расширен набор операций над двоичными данными, что позволяет использовать Бейсик при разработке драйверов устройств.

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

По заявлениям разработчиков FreeBasic, их компилятор генерирует код, уступающий GCC по быстродействию в 1,8 раза. Неплохой результат для языка с интерпретируемым прошлым. Имеются также реализации FreeBasic для Windows, Linux и DOS.

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

Чтобы продемонстрировать циклы, на уроках информатики использовали программу, изображающую старт ракеты. Благодаря FreeBasic программа работает на современном компьютере точно в том же виде, как на ДВК, только не потребовались циклы задержки и мониторы раньше были зелеными.

Немного истории

Бейсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих; англ. basic — основной, базовый) — семейство высокоуровневых языков программирования. Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Куртом (Thomas E. Kurtz) и Джоном Кемени (John G. Kemeny). Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего, как язык для домашних микрокомпьютеров.

Подготовка к работе

Не ждите, что после установки дистрибутивного пакета FreeBasic вас встретит красочная интегрированная среда разработки, вы получите лишь компилятор командной строки. И для того чтобы было удобно им пользоваться, нужно в переменную среды окружения PATH добавить путь к каталогу, в котором находится программа fbc. exe,. Для этого выберите пункт «Выполнить» меню кнопки «Пуск» и введите команду: sysdm.cpl

В открывшемся окне выберите закладку «Дополнительно» и нажмите кнопку «Переменные среды». В верхней части окна нажмите кнопку «Создать» и укажите имя переменной PATH со значением %PATH%;C:Program FilesFreeBasic

После этого откройте консоль, перейдите в каталог с файлом исходного текста программы (например, prog.bas) и компилируйте ее командой:

fbc prog.bas

Если программа написана на старой версии Бейсика (например, содержит номера строк), то для компиляции включите режим совместимости:

fbc -qb prog.bas

История компьютеров: Хронология языков программирования

Скопированная ссылка!

15 октября 2018 г.

Время чтения: 5 минут

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

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

  • Ада и первый компьютер

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

1952 : Алик Гленни разработал Autocode, который некоторые считают первым скомпилированным языком программирования. Это означает, что его можно перевести непосредственно в машинный код.

1957 : Джон Бэкус создал FORTRAN, язык программирования для работы с научными, математическими и статистическими проектами.

  • Джон Бэкус

1958 Алгол был создан как алгоритмический язык. Он также был предшественником таких языков программирования, как Java и C.

1959: COBOL был создан доктором Грейс Мюррей Хоппер как язык, который мог работать на всех типах компьютеров.

  • Грейс Мюррей Хоппер

1959 : Джон Маккарти создал LISP, который используется до сих пор. Этот язык программирования был разработан для использования в исследованиях искусственного интеллекта, и сегодня его можно использовать с Python и Ruby.

  • Корни LISP
1964 : Джон Г. Кемени и Томас Э. Курц разработали BASIC для студентов, не обладающих глубокими знаниями в области технологий и математики, что позволило им по-прежнему использовать компьютеры.

1970 : Никлаус Вирт разработал Паскаль, назвав его в честь Блеза Паскаля. Этот язык прост в изучении и был основным языком, используемым Apple для ранней разработки программного обеспечения.

  • Страница языка Pascal

1972 : Алан Кей, Адель Голдберг и Дэн Ингаллс разработали Smalltalk, который позволял программистам быстро изменять код.

1972 : Деннис Ритчи разработал C, который считается первым языком программирования высокого уровня. Это означает, что он ближе к человеческому языку и меньше похож на машинный код.

  • Язык программирования C

1972 : Дональд Д. Чемберлин и Рэймонд Ф. Бойс разработали SQL для IBM. Этот язык использовался для просмотра и изменения данных, хранящихся в базах данных.

  • Введение в SQL

1978 : Клив Молер разработал MATLAB для написания математических программ. Этот язык используется для исследований и образования.

1983 : Брэд Кокс и Том Лав создали Objective-C в качестве основного языка, используемого для написания программного обеспечения Apple.

1983 : Бьерн Страуструп создал C++, который является расширением языка программирования C. Это один из самых используемых языков в мире.

1987 : Ларри Уолл разработал Perl как язык сценариев, используемый для редактирования текста, чтобы упростить обработку отчетов.

  • Скриптовое программирование на Perl

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

1991 : Гвидо Ван Россум разработал Python, упрощенный компьютерный язык, который легко читать.

  • Добро пожаловать в Python

1991 : Microsoft разработала Visual Basic, который позволял программистам выбирать и изменять определенные фрагменты кода с помощью процесса перетаскивания.

1993 : Росс Ихака и Роберт Джентльман разработали R для статистиков, которым необходимо было выполнять анализ данных.

1995 : Sun Microsystems разработала Java, изначально предназначенную для использования с портативными устройствами.

  • Что такое Java?

1995 : Расмус Лердорф разработал PHP, в основном для веб-разработки. Сегодня PHP по-прежнему широко используется в веб-разработке.

  • Что такое PHP?

1995 : Юкихиро Мацумото разработал Ruby как универсальный язык программирования, идеально подходящий для многих задач программирования. Ruby широко используется при разработке веб-приложений.

  • Что такое Ruby?

1995 : Брендан Эйх разработал JavaScript для улучшения взаимодействия с веб-браузером.

2000 : Microsoft разработала C# как комбинацию C++ и Visual Basic. C# в чем-то похож на Java.

  • Что такое C#?

2003 : Мартин Одерски создал Scala как язык программирования, сочетающий в себе аспекты функционального программирования.

2003 : Джеймс Страчан и Боб МакВиртер разработали Groovy как ответвление Java.

2009 : Google разработал Go для решения проблем, которые обычно возникают в больших программных системах.

2014 : Apple разработала Swift для замены C, C++ и Objective-C.

Сегодня : Языки компьютерного программирования, используемые сегодня, были построены на концепциях, разработанных в более старых языках. Многие старые языки все еще используются сегодня или используются в качестве основы для новых языков. Новые языки программирования часто направлены на упрощение работы программистов. Постоянное развитие технологий гарантирует, что языки программирования еще долгое время останутся неотъемлемой частью современной жизни.

  • История языков программирования. Первоначально языки программирования состояли из ряда шагов, необходимых для подключения компьютерной программы.
  • История языков программирования: Java и C — два самых популярных языка программирования, используемых сегодня.
  • Обзор языков программирования. За последние несколько десятилетий языки программирования значительно упростили компьютерные процессы.
  • Краткий обзор истории языков программирования. В 1950-е годы произошел ряд значительных изменений в развитии компьютерного программирования.
  • Языки программирования на протяжении многих лет: языки программирования на самом деле появились более 150 лет назад, когда появился первый язык, разработанный для того, чтобы заставить машину выполнять задачи.
  • История языков программирования: В 1970-х годах языки программирования стали проще и удобнее в использовании.
  • История компьютерного программирования: FORTRAN был первым широко используемым языком программирования.
  • Краткая история компьютерных языков программирования: Компьютерный код является основой компьютеров, позволяя им выполнять задачи, которые нужны людям.
  • Хронология компьютерной истории: просмотрите увлекательную хронологию компьютерной истории с отмеченными и объясненными ключевыми событиями.
  • Десять лет эволюции языков программирования: Языки программирования продолжают развиваться по мере изменения компьютеров и приложений.

Раскрытие информации: Наш сайт может получать долю дохода от продажи продуктов, представленных на этой странице.

Как BASIC вдохновил современные важные языки программирования — блог UK2

27 сентября 2019 г.

Легко забыть, что все, что вы видите и делаете на компьютерах, зависит от языка программирования. Компьютеры фактически являются детекторами двоичного переключения, различающими нули и единицы, используя это простое различие, чтобы творить разнообразные чудеса современного мультимедийного мира. Каждое действие, выполняемое компьютером — от загрузки операционной системы до поддержки онлайн-геймплея — было разработано с использованием одного из ряда языков программирования, предназначенных для того, чтобы помочь человеку управлять машиной и инструктировать ее. И, возможно, ни один из этих других важных языков программирования не оказал такого влияния, как Универсальный код символических инструкций для начинающих, или BASIC, разработанный в середине 19 века.60-х годов, и до сих пор считается одним из самых важных языков программирования, когда-либо созданных.

Краткий урок истории 

BASIC разрабатывался во времена, когда компьютеры занимали целые комнаты, и концепция домашнего компьютера казалась научной фантастикой. Тем не менее, его простота вдохновила небольшую компанию под названием Microsoft на разработку высокоуровневого языка Microsoft BASIC в середине 1970-х годов, используя крошечный объем оперативной памяти в то время, когда 4 КБ часто были тем объемом памяти, который могло предложить устройство.

Сам по себе вдохновленный языком программирования FORTRAN, BASIC принял формат «одна инструкция на строку» с булевыми инструкциями, такими как IF и THEN. Это сочетание интуитивно понятной доступности, мощной универсальности и миниатюрных размеров сделало его популярным среди разработчиков аппаратного обеспечения, а BASIC стал основным элементом того, что станет взрывом персональных компьютеров в 1980-х годах. Он использовался в культовых аппаратных средствах, таких как BBC Micro, Apple II и ZX Spectrum, которые, как известно, издавали визжащие звуки, когда программный код загружался с кассеты.

В эпоху, когда персональные компьютеры все еще развивались, а их использование в качестве инструментов для досуга казалось довольно экзотическим, на полках газетных киосков появилось множество журналов, заполненных листингами программного кода. Они были кропотливо перепечатаны, чтобы создать что угодно, от рудиментарного графического пакета до многоуровневой навигационной игры в стиле Snake. В свободных комнатах по всему миру люди обнаружили, что ввод программного кода может создать функционирующую часть программного обеспечения из ранее пустого экрана. Многие из ведущих разработчиков программного обеспечения и компьютерных специалистов современности наточили свои зубы таким образом, изучая по ходу дела такие термины, как INKEY$, PEEK и DEF FN.

Прочное наследие 

Такие языки, как Java и Scala, стали самыми важными языками программирования в современную эпоху, но каждый из них в большом долгу перед BASIC. Без него вся концепция изучения языков и процедурного программирования, возможно, оказала бы меньшее влияние на мир. Между BASIC и C было заметное сходство, которое само по себе развилось в несколько производных (C++, Objective C) и вдохновило последующие языки программирования.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *