Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - BASIC - Описание языка08 июня 2011Оглавление: 1. BASIC 2. Описание языка 3. Критика 4. Стандарты 5. Реализации Синтаксис языка напоминает Fortran, и многие элементы явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций, в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования. Объявление переменных не требует специальной секции. Объявление переменной это первое её использование. Ранние версии Бейсика существенно отличаются от современных диалектов и сегодня практически не используются. Ранние версииВнешний вид программ на ранних версиях Бейсика во многом определялся тем, что он предназначался для среды программирования со строчным редактором текста. В таком редакторе пользователь не имел привычной сейчас возможности отображать весь текст на экране, перемещаться по нему в любых направлениях с помощью клавиатуры и/или мыши. В строчных редакторах пользователь для изменения строки текста должен дать команду изменения строки с заданным номером, затем ввести новый текст указанной строки. Для вставки новой строки нужно дать команду вставки, опять-таки указав номер. Вводимые строки отображаются на экране последовательно. Чтобы увидеть сделанные изменения, применяется команда вывода текста, которая выводит строки в правильном порядке. Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации. Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так: 10 PRINT "Hello, World!" Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие. Имена переменных в большинстве диалектов могли состоять только из одной буквы, после которой можно было добавить одну цифру, что так же не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара. Переменная без этого знака являлась числовой. Было ещё несколько модификаторов, относящихся к числовому типу: знак процента целый тип, восклицательный знак обычная точность, октоторп двойная точность. Числовые модификаторы применялись не во всех версиях. Выражения сходны с большинством других процедурных языков программирования, но в первых вариантах Бейсика их набор был довольно бедным. Условный оператор изначально имел только одну ветвь ветвь 10 INPUT I 20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40 30 PRINT "Negative number" 40 END Имелся оператор перехода по вычисляемой метке Использование функций, определяемых пользователем, было возможно двумя способами: определяемые функции и подпрограммы. Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные. Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк. Подпрограммы не имели заголовков и имён, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова Отсутствие возможности давать подпрограммам имена, невозможность передачи параметров, отсутствие локальных переменных, использование только числовых меток в больших проектах вызывало путаницу в коде и очень затрудняло отладку. В некоторых диалектах Бейсика имелась возможность загрузить файл с кодом непосредственно при выполнении программы оператором Редактора кода в ранних версиях, как такового, не было. При запуске интерпретатора Бейсика запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка. Это команды по управлению средой ввода, такие как: Если команда начиналась с номера строки, она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши ↵ Enter . В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если, находясь в режиме диалога, ввести строку Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда 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$ 110 T2$=LEFT$ 120 'Выводим результат 130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"." 140 INPUT "Повторить программу? ",U$ 150 IF U$="Y" THEN GOTO 10 160 END Точка с запятой выполняет функцию подавления перехода на новую строку после оператора Поздние версииОдним из наиболее распространённых вариантов языка Бейсик стала реализация интерпретатора QBASIC корпорации Microsoft. Долгие годы она включалась как бесплатное приложение, входящее в операционные системы MS-DOS и ранних Windows. Особо следует выделить довольно мощные графические и звуковые возможности QBASIC, позволяющие программировать на этом языке даже игры. Basic поздних версий резко отличается от ранних вариантов. Фактически, это новый язык, который во многом ближе к Фортрану или Паскалю, чем к исходному Basic’у. Основные изменения версий 1990-х годов состоят в следующем:
Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред. Оборотной стороной процесса модификации Basic является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий. Фрагмент типичной программы на FreeBASIC: # Lang "fb" Dim As String n,s,t,n2,t2 Cls : Print "Добро пожаловать!" 'Заголовок в первой строке Do 'Цикл, выводящий линию под заголовком, на всю ширину экрана For i As Integer=1 To LoWord Print "="; Next i 'Ввод символьных данных от пользователя Input "Имя: ",n Input "Фамилия: ",s Input "Отчество: ",t 'Вырезаем копию первых символов из имени и отчества n2=Left t2=Left 'Выводим результат Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "." Print "Повторить программу? " Loop While LCase)="y" End 0 Несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic в пользу принципиально нового языка Visual Basic .NET в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова. Таким образом, Basic перерос из средства для создания программ любителям-непрофессионалам до полноценного средства создания программ. Помимо написания полноценных программ, Бейсик широко применяется как основа для различных скриптовых языков. Просмотров: 7512
|