Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИ++(лекции).doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
551.42 Кб
Скачать

Глава 1. Основные понятия.

  1. Общие сведения о программах, лексемах и алфавите

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

Алфавит содержит прописные и строчные буквы латинского алфавита, цифры – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и специальные знаки: “ { } , | [ ] + - / % \ ; ‘ : ? < = > _ ! & # ~ ^ . *. Из символов алфавита формируютсялексемы1языка:

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

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

  • константы;

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

  • разделители (знаки пунктуации).

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

asm

double

include

switch

auto

else

else

new

template

break

enum

operator

this

case

extern

private

throw

catch

float

protected

try

char

for

public

typedef

class

friend

register

typeid

const

goto

return

union

continue

if

short

unsigned

default

include

signed

virtual

delete

inline

sizeof

void

do

int

static

volatile

long

struct

while

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

Константы - это лексема, представляющая собой изображение фиксированного числового, строкового или символьного значения. Численные константы – это конкретные целые или вещественные числа, записанные по обычным правилам: 1.28 4.36е3 45 -24. Символы – это одиночный символ, ограниченный апострофами: ‘a’ ‘e’ ‘0’ ‘1’ . Следует обратить внимание на то, что цифра, ограниченная символами этоне число, а символ. Строка символов это последовательность произвольных символов, ограниченная кавычками: “ Это строка символов” “1876” “ThisisString” . Целые константы могут быть десятичными, восьмеричными и шестнадцатеричными.

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

Знак операций– символ, обозначающий действие, которое необходимо выполнить. Знак операции обеспечивает формирование и последующее вычисление выражений. Один и тот же знак операции в различных контекстах интерпретируется по-разному. В стандарте языка Си определены следующие знаки операций:

[] () . -> ++ -- & * + - ~ !

sizeof / % << >> < > <= >= == != ^

| && || ?: = *= /= %= += -= <<= >>=

&= ^= |= , # ##

Дополнительно к перечисленным в языке Си++ введены следующие знаки операций

:: .* ->* newdeletetypeid.

За исключением операций [], () и ?: все знаки операций рассматриваются компилятором как отдельные лексемы. В зависимости от контекста одна и та же лексема может обозначать разные операции. Например, бинарная операция & - это поразрядная конъюнкция, а унарная операция & - получение адреса. Подробный разбор каждой из операций будет рассмотрен по мере изучения языка.

Операторы присваивания

Приоритеты операций представлены в приведенной ниже таблице

Ранг

Операции

Ассоциативность

1

() [] -> :: .

2

! ~ + - ++ -- & *(тип)sizeofnewdelete

тип( ) (функциональное преобразование типа)

3

.* ->*

4

* / % (мультипликативные бинарные операции)

5

+ - (аддитивные бинарные операции)

6

<< >>

7

< <= >= >

8

== !=

9

&

10

^

11

|

12

&&

13

||

14

?: (условная операция)

15

= *= /= %= += -= &= ^= != <<= >>=

16

, (операция запята)

Комментарии– предназначаются для читающих программу для пояснения действий и содержания программы. Комментарии могут быть однострочными и начинаются символами // и оканчиваются признаком конца строки, или многострочными. Начало такого комментария начинается символами /* и заканчивается */ . Весь текст , заключенный между этими символами является комментарием. В комментариях допускается использование любых символов. При построении программы все комментарии игнорируются.