C++. Бархатный путь. Часть 1


Книга Марченко А.Л. "C++. Бархатный путь" является результатом преподавательской деятельности автора в МГУ им М.В. Ломоносова (курс лекций для студентов 2-го курса геологического факультета кафедры сейсмометрии и геоакустики) и Лицее Информационных Технологий (специальный курс по языку программирования C++ для учащихся 10-х классов). В предлагаемой работе рассматривается язык программирования C++ как формальный язык.

При работе над книгой, как и при подготовке учебного курса, автор предполагал у читателей и слушателей наличие элементарных понятий и представлений из области информатики, а также навыков программирования. Это предположение позволило сосредоточиться на основной задаче книги: формировании чётких знаний о языке программирования C++, его синтаксисе и семантике. С этой целью при описании грамматики языка в книге широко используются формы Бэкуса-Наура, и уделяется большое внимание обсуждению причин и следствий введения в язык тех или иных языковых конструкций.

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

Изучение иностранного языка не требует детального анализа произведений художественной литературы. Как правило, в книгах, посвящённых описанию языков программирования, в качестве иллюстраций приводятся примеры не сложнее, чем реализация алгоритма пузырьковой сортировки. Более сложные примеры отвлекают от основного предмета изучения. К тому же, даже самые простые содержательные примеры в книге о языке программирования неизбежно ограничивают "поле зрения" читателей, оставляя за пределами их внимания множество безупречных, с точки зрения синтаксиса языка программирования, предложений. К таким предложениям можно отнести, например, не содержащие помеченных операторов или содержащие всего один простой оператор операторы выбора:

switch (i) ; // Синтаксически правильный оператор выбора…
switch (j) {} // Ещё один правильный оператор…
switch (val1) default: x++;

объявления пустых безымянных классов:

class {};
class {};

полную форму вызова операторной функции:

ctVal2.operator = (ctVal1); /* Вариант полной формы вызова операторной функции присваивания для двух комплексных чисел. */

Все эти операторы C++, несмотря на весьма странный вид, остаются абсолютно корректными предложениями. Они позволяют рельефно и наглядно выявлять принципиальные особенности языка. Такие операторы часто приводятся в качестве примеров в этой книге.

Профессиональное программирование, как и грамотная речь, невозможны без досконального знания языка программирования. Недоумение по поводу "непривычных для пользователей" операторов языка, а также вопросы типа "Что это такое?" или "Зачем это нужно?", которые обычно возникают по причине незнания, либо непонимания особенностей языка, исчезают сами собой по мере погружения в этот язык. Обеспечение перехода от навыков использования фиксированного подмножества языка к знанию и сознательному применению всех выразительных возможностей языка C++ является основной задачей предлагаемой книги. В методах, которые использует автор для решения этой задачи, заключается основное отличие этой книги от других книг, посвящённых описанию языков программирования.

В настоящее время объём рукописи составляет 472 страницы формата A4. Степень готовности рукописи составляет 95% (возможны незначительные дополнения и исправления).

Книга "C++. Бархатный путь" может быть использована в качестве учебного пособия для учащихся старших классов и студентов младших курсов ВУЗов, однако это чисто условная адресация, т. к. учиться никогда не поздно. Смысл названия книги раскрывается в предисловии. Простая структура книги определяется её содержанием, поскольку при описании основ языка прежде всего важна логическая последовательность изложения материала.

Сведения об авторе:

Марченко Антон Леонардович, 1956 г.р.

Образование высшее:

1980г. - Философский факультет МГУ им. М.В. Ломоносова (кафедра логики),

1986г. - факультет прикладной математики Московского Института Электронного Машиностроения,

До 1993 года - программист в НИИ,

с 1993 года - преподаватель МГУ им М.В. Ломоносова и Лицее Информационных Технологий, кандидат физ.-мат. наук.

 
« Предыдущая статья   Следующая статья »