Программирование arrow C++ arrow C++. Бархатный путь. Часть 1

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

Оглавление

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

2. Введение

3. Язык и грамматика

4. Эволюция языков программирования

5. Транслятор и компоновщик

6. Библиотеки

7. Алфавит C

8. Правила образования идентификаторов

9. Ключевые слова и имена

10. Символы операций и разделителей

11. Литералы

12. Структура предложения C

13. Программный модуль

14. Объекты и функции

15. Семантика

16. Типы

17. Основные типы C

18. Объявление переменных

19. Рекомендации по наименованию объектов

20. Комментарии: возможность выразиться неформально

21. Элементы программного модуля

22. Структура модуля

23. Класс памяти

24. Пространство имён

25. Тип связывания или тип компоновки

26. Выражение и l-выражение

27. Перечень операций

28. Адресные операции

29. Операции преобразования знака

30. Побитовые операции

31. Операция определения размера

32. Операции увеличения и уменьшения значения

33. Операции динамического распределения памяти

34. Операция доступа

35. Аддитивные операции

36. Мультипликативные операции

37. Операции сдвига

38. Поразрядные операции

39. Операции сравнения

40. Логические бинарные операции

41. Операция присваивания

42. Специальные формы операций присваивания

43. Операции выбора компонентов структурированного объекта

44. Операции обращения к компонентам класса

45. Операция управления процессом вычисления значений

46. Операция вызова функции

47. Операция явного преобразования типа

48. Операция индексации

49. Операция с тремя операндами

50. Операция typeid

51. Выражение

52. Унарное выражение

53. Выражение размещения

54. Выражение освобождения

55. Постфиксное выражение

56. Первичное выражение

57. Константные выражения

58. Операторы C

59. Оператор return. Точка вызова и точка возврата

60. Выбирающий оператор

61. Схема выполнения оператора switch

62. Операторы цикла

63. Оператор цикла for

64. Примеры использования оператора цикла for

65. Указатель void *

66. Массивы. Синтаксис объявления

67. Основные свойства массивов

68. Массив и константный указатель

69. Массив констант

70. Многомерный массив

71. Директива препроцессора define

72. Операция ##. Конкатенация в макроопределениях

73. Функция. Прототип

74. Предварительная инициализация параметров функции

75. Массивы и параметры

76. Многомерные динамические массивы

77. Функции с изменяемым списком параметров

78. Преобразование основных типов

79. typedef-объявление

80. Тип функции

81. Вызов функции

82. Совместно используемые функции


Книга Марченко А.Л. "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 года - преподаватель МГУ им М.В. Ломоносова и Лицее Информационных Технологий, кандидат физ.-мат. наук.


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