Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке программирования, в текст на другом языке. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке программирования, в текст на другом языке.



Транслятор - в узком смысле - программа, преобразующая программу, написанную на одном (входном) языке, в программу, представленную на другом (выходном) языке.

Существуют два основных способа реализации языка про­граммирования – интерпретация и компиляция. Соответст­венно, имеется два типа программ, ко­торые входят в со­став систем программирования – интерпретатор и компиля­тор.

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

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

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

Компилятор последовательно преобразует в объект­ные коды исходный текст программы, записанной на алгорит­миче­ском языке, подклю­чает ре­дактор связей, библиотеку стандарт­ных функций и создает, таким об­разом, программный модуль, готовый к вы­пол­нению. Компиляторы обла­дают более высоким быстродейст­вием по срав­нению с интерпретаторами. Компиляторами явля­ются такие языки программирования высокого уровня, как ФОРТРАН, ПАСКАЛЬ, СИ и др. Большинство современных версий языка про­грам­мирования БЕЙСИК также являются компиляторами.

ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ БЕЙСИК

 

Язык БЕЙСИК был разработан в 1965 г. в Дартмутском колледже. Название пред­ставляет собой аббревиа­туру англий­ских слов Beginner’s All-Purpose Symbolic In­struction Code, т.е. в буквальном переводе с английского это «многоцелевой язык символических ин­струкций (кодирования) для начи­нающих». В настоящее время Бейсик является языком, широко ис­пользуемым при работе на персональных компьютерах. Бейсик имеет специальные средства, позволяющие вести диалог пользователя с ЭВМ, для своей реализации требует минимум системных ресур­сов, предоставляет пользователю возможность обработки сим­вольной и графической информации. К основным достоинствам языка можно отнести простоту созда­ния и отладки программ. В настоящее время известно много вариантов (версий) Бейсика: МSХ, Бейсик-80, Бейсик-АГАТ, Бейсик/Р, QBasic, GWBasic и др. Все они имеют некоторые различия, но во всех версиях языка имеется общее ядро, включающее в свой состав конструкции языка, имеющиеся во всех версиях. В нашей стране популярностью пользуется версии фирмы Microsoft для компьютеров IBM, версия Turbo-Basic фирмы Borland. Без преувеличения можно сказать, что сегодня Бейсик является самым распространённым языком программирования. После появления мощных компиляторов популярность приобрел язык Visual Basic, который используется профессионалами для расширения возможностей офисных приложений. Бейсик относится к языкам программирования высокого уровня.

Основными особенностями версии языка является возможность работать с переменными четырех типов:

§ целыми, изменяю­щимися в диапазоне от -32768 до +32767;

§ строковыми до 256 сим­волов;

§ с плавающей точкой обычной точности (7 цифр);

§ с плаваю­щей точкой двойной точности (16 цифр);

§ обрабатывать многомерные массивы;

§ выполнять расширенный набор логических операций;

§ осуществлять автоматическую генерацию номеров строк;

§ редактировать исходную программу;

§ выполнять трассировку программы для облегчения отладки;

§ управлять форматом выводных данных; использовать последовательные файлы и файлы произвольногодоступа;

§ обрабатывать ошибочные ситуации;

§ обрабатывать графическую и звуковую информацию и др.

АЛФАВИТ ЯЗЫКА BASIC.

ИДЕНТИФИКАТОРЫ, КОНСТАНТЫ, ПЕРЕМЕННЫЕ

Алгоритмический язык Basic имеет набор символов, с по­мощью которого записываются конструкции языка, алфавит. Алфавит языка Basic включает несколько групп символов:

§ буквы латинского и русского алфавита,

§ арабские цифры,

§ знаки арифметических операций (+, -, *, /, \, ^),

§ знаки отношений (=, >, <, > < или < >, < = или = <, > = или = >),

§ знаки препинаний (.,:;!? – “ `),

§ скобки,

§ специальные символы (@, #, $, %, &, ~).

Для записи комментариев и строк символов могут ис­пользоваться все символы клавиатуры.

В языке Basic используются следующие виды данных: константы, переменные, массивы.

Константа — величина, представленная в программе своим значением, которое определено и в процессе выполнения программы не изменяется.

Переменная — величина, которая может принимать различные значения в процессе выполнения программы.

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

Для обозначения констант, переменных и массивов используются имена, или идентификаторы. В языке Basic имя (идентификатор) обозначается одной или несколькими латинскими буквами, либо латинскими буквами и цифрами. Для указания типа переменной после имени записываются специальные знаки (% - целочислен­ная переменная, $ - символьная переменная).

Тип идентификатора в Basic опознаётся по последнему символу в имени переменной.

% - целое число;
& - длинное целое число;
! – вещественное число обычной точности;
# - вещественное число двойной точности;
$ - символьный тип.

В Basic предусмотрен другой способ описания типов переменных (QBasic). Если в начале программы поместить команду: DEFINT I – L, то все переменные, имена которых начинаются с буквы I и лежат в диапазоне до буквы L будут считаться целыми (integer).

Общий формат команды описания типов:

1. DEFINT X-X (целые числа integer)

2. DEFLNG X-X (длинные целые числа long)

3. DEFSNG X-X (вещественные числа обычной точности, single)

4. DEFDBL X-X (вещественные числа двойной точности double)

5. DEFSTR X-X (символьный тип string)

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

Примеры:

1) Alfa

2) Тom1

3) Т$ — символьная переменная

4) Т% — целочисленная переменная

5) А1% —целочисленная переменная.

Конструкции, не являющиеся идентификаторами:

1) 2Т — начинается с цифры

2) $Т — начинается со специального символа

В языке Basic предусмотрен ряд стандартных функций, которые включены в библиотеку транслятора (их называют встроенными функциями) и используются для обращения к зара­нее определенным операциям.

Для обозначения этих функций используются имена, состоя­щие из трех латинских букв, за которыми следует аргумент, за­ключенный в круглые скобки. Эта конструкция языка получила название указатель функции. Набор стандартных функций опре­деляется версией языка (см.таблицу 2).

 

Константы

В языке Basic используются числовые и символьные константы.

Числовые константы записы­ваются в двух формах: с фиксированной точкой (естественной) и с плавающей точкой (полулогарифмической). С фиксированной точкой число представляется последовательностью десятичных цифр со знаком плюс или минус (знак плюс может быть опущен). Для отделения целой части от дробной используется точка.

Помимо описанных числовых констант в Basic могут быть использованы двоичные, шестнадцатеричные, восьме­ричные константы.

Примеры числовых констант с фиксированной точкой: 195, 43.235, +108, -10.31, 0.475, -. 41 (0 целых можно опускать).

Примеры записи двоичной и 16-ричной константы: 100100, 17FB.

Число с плавающей точкой записывается в виде

± тЕ ± р,

где т — мантисса числа, которой предшествует знак плюс или минус; Е — разделитель мантиссы и порядка; р — порядок числа, которому предшествует знак порядка (плюс или минус).

Мантисса - число с фиксированной точкой, знак мантиссы определяет знак числа. Число считается нормализованным, если мантисса удовлетворяет условию 0,1 ≤ т < 1. При записи числа с плавающей точкой мантисса обязательна.

Порядок может быть только целым. Он определяет положение десятичной точки в числе. Знак плюс в порядке может быть опу­щен.

Примеры:

а) Правильные записи чисел

-0.052Е-04 (-0.052*10-4)

-1Е-17 (-10-17)

-.76Е-03 (-0,00076)

б) Ошибочные записи чисел:

Е5 отсутствует мантисса

1Е отсутствует порядок

-10.3Е1.7 порядок не является целым числом

+21Е+1200 значение числа находится за пределами допустимого диапазона чисел.

Символьная (строковая) константа представляет собой один или несколько символов, заключенных в кавычки. Длина символьной константы не более 256 символов.

Примеры символьных констант:

«Информатика», «Агропарк»,«БелГСХА», «13-Т», «39-23-06», «1/2».

 

Переменные

В языке Basic используются два типа пере­менных: числовые, символьные. Числовая переменная обозначается идентификатором и резервирует в памяти место, в котором будет размещаться числовая константа. Для задания типа числовой переменной используются специальные символы объявления:

% - целая переменная

! - переменная обычной точности

# - переменная двойной точности.

Символьные переменные принимают значения символьных констант и резервируют в памяти место для размещения символьных констант. Любое имя переменной, за которой стоит знак $, указывает на символьную переменную.

Пример: F$ - символьная переменная, R% целая переменная.

Переменные с индексами

Переменные с индексамипредназначены для обозначения эле­ментов массива.

С понятием «массив» приходится сталкиваться при решении научно-технических и экономических задач обработки совокупностей большого количества значений.

Массив - это множество однотипных элементов, объединённых общим именем и занимающих в памяти компьютера определённую область.

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

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

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

Число индексов определяет размерность массива: одномерный, двумерный и т. д. Одномерный массив соответствует вектору, двумерный массив — матрице (таблице). В двумерном массиве первый индекс обозначает номер строки таблицы, второй — номер столбца таблицы.

Для каждого массива в программе должен быть указан его максимальный размер, т.е. максимальные значения, которые могут принимать индексы. Это нужно для того, чтобы интерпретатор мог зарезервировать соответствующий объем памяти. Массив описывается зарезервированным словом DIM.

Первоначально все элементы описанных массивов имеют нулевые значения.

Например, запись DIM A(N) предписывает предоставить N свободных ячеек памяти ЭВМ для одномерного числового массива с именем А.

Каждый элемент массива в общем виде описывается как А(I), где

I - номер или индекс массива (0<=I<=N).

A(I) - значение I-го элемента массива.

Индексы элементов массивов принимают значения целых чисел, начиная с 0, т.е. для одномерного массива элементы именуются А(0), А(1), А(2) и т.д.

Для задания начального значения индекса используется оператор Option base, содержимым которого является 0 или 1 (по умолчанию начальный индекс массива равен 0).

Пример: 10 Option base 1

В этом случае начальное значение индекса следующих в программе массивов будет начинаться с 1.

Так, оператор DIM В(2,3) описывает двумерный числовой массив (матрицу) с элементами В(1,1), В(1,2), В(1,3), В(2,1), В(2,2), В(2,3).

Если описание массива отсутствует, то под одномерный массив выделяется 10 ячеек памяти.

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

Пример: 10 DIM А1(10), МТ(3,4), S$(6)

В строке описан массив А1 с максимальным количеством элементов, равным 10 элементов, двумерный массив (матрица) МТ с количеством элементов 3х4 = 12 элементов, символьный массив S$ - 6 элементов.

Описание массивов всегда должно предшествовать использованию их элементов в других операторах.

Пример:

Аlfa (1)=0.5 - первому элементу числового массива с именем Аlfa присваивается значение 0.5;

X=В2(10) - переменной Х присваивается значение десятого элемента числового массива с именем В2;

S$=S$+С$(5) - строка символов S$ удлиняется на пятый элемент символьного массива С$;

TER(2,4) = MIN - элементу двумерного числового массива TER, находящемуся на пересечении 2-й строки и 4-го столбца таблицы присваивается значение переменной MIN.

ВЫРАЖЕНИЯ НА ЯЗЫКЕ BASIC

Последовательность операций, которые необходимо произвести над данными, чтобы получить требуемое значение, называется выражением. В Basic допустимы выражения двух типов: числовые и строковые.

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

Арифметические операции выполняют действия обычной ариф­метики.

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

Запись выражений производится в одну строку слева направо. Запись под­строчных и надстрочных символов не допускается.

 

Таблица 1. Арифметические операции

 

Название операции Математический знак Знак в Basic Математическая запись Запись в Basic
Возведение в степень   ^ 25 2^5
Сложение + + 5 + 10 5+10
Вычитание - - a - b a - b
Умножение *; · * 2 · 5 2 * 5
Деление : / 10: 2 10 / 2
Целочисленное деление   \   10 \ 2
Выделение остатка при целочисленном делении   MOD   10 MOD 3

Функция - это заранее определённая операция над данными.

В Basic существует два вида функций: встроенные (стандартные) и определённые пользователем (нестандартные).

Таблица 2. Встроенные математические функции

Название функции Математическая запись Запись в Basic Пример в Basic
Абсолютная величина |x| ABS(X) ABS(-5)
Экспонента ex EXP(X) EXP(5)
Логарифм натуральный ln x LOG(X) LOG(3)
Остаток целочисленного деления (MOD)   x MOD y 19 MOD 6
Выделение целой части чиcла   INT(x/y) INT(12/5)
Квадратный корень SQR(X) SQR(4)
Синус Sin x SIN(X) SIN(3.14)
Косинус Cos x COS(X) COS(1)
Тангенс tg x TAN(X) TAN(2)
Арктангенс arctg x ATN(X) ATN(3)
Знак числового выражения   SGN(X) SGN(-5)
Генерация случайных чисел   RND(X) RND(1)

 

Тригонометрические функции, отсутствующие в таблице, определяются по известным математическим формулам, например,

ARCSIN(X)=ATN(X/SQR(1-X^2)).

При решении задач часто используются и другие функции:

1. RND - имя функции для генерирования так называемых слу­чайных чи­сел в интервале значений (0,1) с максимальной разрядно­стью.

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

INT(10* RND)+1.

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

RND(1) - генератор случайных чисел, который задаёт случайные числа из интервала от 0 до 1.

Случайные числа от 1 до 100могут быть сгенерированы оператором:

N=(RND(1)*100+1)

2. INT(числовое выражение) - эта функция основана на операции целочисленного деления, используется для отбрасывания дробной части числа, являющегося результатом деления (INT(14.6) = 15, INT(14.1) =14, INT(-15.2) = -15, INT(-15.8) = -16.

Функция INT в свою очередь,может быть использована для того, чтобы генерируемые числа от 1 до 100 были натуральными:

N=INT(RND(1)*100+1).

FIX(X) - используется для отбрасывания дробной части числа без ок­руг­ления результата, например:

FIX(2.5) = 2 или FIX(-3.4) = -3.

Функция MOD выполняет деление с округлением резуль­тата, как и “\”, но результатом является остаток от целочисленного деления (33 MOD 7 = 5).



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 459; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.30.232 (0.074 с.)