Тема: Состав языка С++

1.           Понятие технологии программирования

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

3.           Алфавит языка С++

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

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

6.           Знаки операций

7.           Константы

1. Понятие технологии программирования

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

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

Такая технология появилась в начале 70-х годов и была названа структурным программированием. В его основе лежит сочетание теории программирования и личного опыта высококвалифицированных программистов, а также учет современных требований к программам и промышленного характера их производства. Главное требование, которому должна удовлетворять программа, - работать в полном соответствии со спецификацией и адекватно реагировать на любые действия пользователя. Кроме этого, программа должна быть выпущена точно к заявленному сроку и допускать оперативное внесение необходимых изменений и дополнений. Объем занимаемой памяти и эффективность алгоритмов при этом, к сожалению, отходят на второй план. Иными словами, современные критерии качества программы - это, прежде всего, надежность, а также возможность точно планировать производство программы и ее сопровождение.

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

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

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

 

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

В тексте на любом естественном языке можно выделить четыре основных элемента:

·              Символы

·              Слова

·              Словосочетания

·              Предложения.

Подобные элементы содержит и алгоритмический язык, только:

·              слова называют лексемами (элементарными конструкциями)

·              словосочетания – выражениями

·              предложения - операторами.

Лексемы образуются из символов

выражения - из лексем и символов

операторы - из символов, выражений и лексем

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

Для описания сложного действия требуется последовательность операторов.

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

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

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

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

Этот процесс состоит из нескольких этапов.

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

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

При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль.

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

Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки.

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

Начнем изучение С++ с самого простого - с алфавита, а затем, осваивая все более сложные элементы, постепенно углубимся в дебри объектно-ориентированного программирования.

 

3. Алфавит языка С++

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

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

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

·              специальные знаки;

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

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

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

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

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

·              константы;

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

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

 

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

Идентификатор - это имя программного объекта.

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

Прописные и строчные буквы различаются, например, sysop, SySoP и SYS0P - три различных имени.

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

Пробелы внутри имен не допускаются.

Длина идентификатора по стандарту не ограничена.

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

При выборе идентификатора необходимо иметь в виду следующее:

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

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

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


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

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

Один и тот же знак может интерпретироваться по-разному в зависимости от контекста. Все знаки операций за исключением [ ], ( ) и ? : представляют собой отдельные лексемы. Большинство стандартных операций может быть переопределено (перегружено).

 

6. Знаки операций

Ключевые слова - это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Знак операции - это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Один и тот же знак может интерпретироваться по-разному в зависимости от контекста. Все знаки операций за исключением [ ], ( ) и ? : представляют собой отдельные лексемы. Большинство стандартных операций может быть переопределено (перегружено).

 
7. Константы

Константами называют неизменяемые величины.

 Различаются целые, вещественные, символьные и строковые константы. Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов по ее внешнему виду.