Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава1_Основые понятия языка С++.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
414.21 Кб
Скачать

Глава I. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА С++

1. Состав языка С++

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

  • Алфавит языка, или его символы – это основные неделимые знаки, с помощью которых пишутся все тексты на языке.

  • Лексема – минимальная единица языка, имеющая самостоятельный смысл.

  • Выражение задает правило вычисления некоторого значения.

  • Оператор задает законченное описание некоторого действия.

Рис. 1. Состав алгоритмического языка

Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в составной оператор, или блок (блоком в языке С++ считается последовательность операторов, заключенная в фигурные скобки { } ). В этом случае они рассматриваются как один оператор.

Операторы бывают исполняемые и неисполняемые.

Исполняемые операторы задают действия над данными.

Неисполняемые операторы служат для описания данных, поэтому их часто называют операторами описания или просто описаниями.

Каждый элемент языка определяется синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка, а семантика определяет их смысл и правила использования.

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

[ void | int ] имя();

означает, что вместо конструкции имя необходимо указать конкретное имя в соответствии с правилами языка, а перед ним может находиться либо void, либо int, либо ничего. Фигурные скобки используются для группировки элементов, из которых требуется выбрать только один.

1.1. Алфавит языка

Алфавит С++ включает:

  • прописные и строчные латинские буквы и знак подчеркивания;

  • арабские цифры от 0 до 9;

  • специальные знаки, например, {, }, %, #, & и т.д.

  • пробельные символы: пробел, символы табуляции, символы перехода на новую строку.

Из символов алфавита формируются лексемы языка:

  • идентификаторы;

  • ключевые (зарезервированные) слова;

  • знаки операций;

  • константы;

  • разделители (скобки, точка, запятая, пробельные символы).

Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.

1.2. Идентификаторы

Идентификатор – это имя программного объекта. В идентификаторе могут использоваться латинские буквы (прописные и строчные), цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP – три различных имени. Первым символом идентификатора может буква или знак подчеркивания, но не цифра. Обычно с символа подчеркивания начинаются имена системных зарезервированных переменных и констант. Пробелы внутри имени не допускаются.

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

  • идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;

  • не рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпадать с именами системных функций или переменных, и, кроме того, это снижает мобильность программы;

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

Часто идентификатор мы называем просто именем: имя переменной, имя функции.

void main (void) // main - идентификатор функции

{

const int MAX=100; // MAX - идентификатор константы

int i=10; // i - идентификатор переменной

typedef int Vector[MAX]; // Vector - идентификатор типа

}

Значащими (различимыми для компилятора) являются первые n символов идентификатора, где n задается в среде программирования (обычно от 8 до 64 символов).

Например, верными будут являться идентификаторы "PupkinVasya", "my_height", "_inputfile", "parrots38" и неверными "Pupkin Vasya" (пробел недопустим), "38parrots" (начинается с цифры), "while" (совпадает с ключевым словом C++).

Для улучшения читаемости программы следует давать объектам осмысленные имена.

1.3. Ключевые слова

Ключевые слова – это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов С++ приведен в таблице 1.

Таблица 1. Список ключевых слов С++

asm

else

new

this

auto

enum

operator

throw

bool

explicit

private

true

break

export

protected

try

case

extern

public

typedef

catch

false

register

typeid

char

float

reinterpret_cast

typename

class

for

return

union

const

friend

short

unsigned

const_cast

goto

signed

using

continue

if

sizeof

virtual

default

inline

static

void

delete

int

static_cast

volatile

do

long

struct

wchar_t

double

mutable

switch

while

dynamic_cast

namespace

template