Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бородина А.И. Крошинская Л.И. Сапун О.Л. Модуль...doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
3.89 Mб
Скачать

Вопросы для самоконтроля

  1. Понятие машинных и машинно-зависимых языков программирования.

  2. Общая характеристика и классификация машинно-независимых языков программирования.

  3. Понятие транслятора, компилятора, интерпретатора.

  4. Классификация языков программирования по уровням представления и областям применения.

2.Основные понятия языков программирования

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

  • основные символы (алфавит);

  • слова;

  • выражения;

  • предложения (операторы).

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

Уже здесь выясняется необходимость уточнения и формализации. В алгебре для умножения используется знак «х» и точка. В алгоритмических языках для этой цели употребляется знак * (звездочка); точка же чаще используется как разделитель при записи чисел. Аналогично для деления нельзя использовать двоеточие. Обычно деление обозначается косой чертой, например А/В.

Слова представляют собой сочетание символов алфавита конкретного языка, имеющие определенный смысл. Слова являются минимальными единицами языка, обладающими собственным смысловым значением. К ним относятся обычные слова, числа, переменные.

Выражения представляют собой сочетания групп слов. При записи выражения следует иметь в виду одну особенность машинного восприятия информации. Как известно, человеческий глаз способен к целостному восприятию двумерной информации. Благодаря этому он легко воспринимает различного рода «многоэтажные конструкции» вида ех, Yi и др. В отличие от этого, ввод информации в ЭВМ осуществляется последовательно, символ за символом, вдоль строки. Поэтому выражения в языках, предназначенные для ввода в ЭВМ, строятся по линейному принципу: вместо АР употребляется, например, в Бейсике запись А^Р и т.п.

В математике принято буквенное обозначение величин, которые могут принимать различные значения. Программы же для ЭВМ обычно оперируют с гораздо большим количеством таких переменных величин, чем это имеет место в математических выкладках. Букв для их обозначения, как правило, не хватает. Поэтому в алгоритмических языках для обозначения переменных приняты последовательности букв и цифр, начинающиеся буквами. Такие последовательности обычно имеют длину, не превосходящую некоторую фиксированную величину, и называются идентификаторами. Примерами идентификаторов могут служить Х1, ADR и др.

В современных ЭВМ приходится иметь дело не только с величинами, обозначенными буквенно-цифровыми последовательностями, но и с самими этими последовательностями, которые бывают как числовыми, так и символьными. Последние получили название строковых констант, или литералов. Для нечисловых последовательностей указанием того, что они должны рассматриваться как литералы, служит заключение их в кавычки. Так, значением литерала «Норма» будет последовательность из шести букв Норма, а значением идентификатора Норма может быть любая величина, присвоенная ему в качестве значения.

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

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

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

Для чисел вводятся также элементарные операции отношения: =, >, <, >=, <=, <>, ><, – позволяющие конструировать элементарные условия вида A>B, A=B и т.д., где А и В произвольные арифметические выражения.

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

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

К числу наиболее употребительных операторов относится оператор присваивания. Смысл его заключается в том, что в результате его выполнения некоторая величина приобретает новое значение. Для этого оператора употребляется символ : =, хотя можно употреблять и знак =. Например, запись Y=A*X+B означает, что величине Y присваивается значение, получаемое в результате вычисления арифметического выражения A*X+B.

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

Большое значение имеют условные операторы, позволяющие применять те или иные операторы в зависимости от проверки условий. Например, в Бейсике:

IF A=B THEN Y=A^2 ELSE Y=A*X1

В этом примере, если условие окажется истинным, выполняется оператор Y=A^2, если же нет, то оператор Y=A*X1.

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

FOR I=0 TO 10 STEP 2.

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