в оригінальний мову c.
У міру розробки c ++ в нього були включені інші засоби, які перекривали можливості конструкцій c, у зв'язку з чим неодноразово піднімалося питання про відмову від сумісності мов шляхом видалення застарілих конструкцій. Тим не менш, сумісність була збережена з таких міркувань:
· Збереження чинного коду, написаного спочатку на c і ??прямо перенесеного в c ++;
· Виключення необхідності перенавчання програмістів, раніше вивчали c (їм потрібно тільки вивчити нові засоби c ++);
· Виключення плутанини між мовами при їх спільному використанні («якщо дві мови використовуються спільно, їх відмінності повинні бути або мінімальними, або настільки великими, щоб мови було неможливо переплутати»).
До 1983 року в мову були додані нові можливості, такі як віртуальні функції, перевантаження функцій і операторів, посилання, константи, користувальницький контроль над управлінням вільною пам'яттю, поліпшена перевірка типів і новий стиль коментарів (//). Одержаний мову вже перестав бути просто доповненої версією класичного c і був перейменований з c з класами в «c ++». Його перший комерційний випуск відбувся в жовтні 1985 року.
Ім'я мови, що вийшло в результаті, походить від оператора унарна постфіксними инкремента c ++ (збільшення значення змінної на одиницю).
До початку офіційної стандартизації мова розвивалася в основному силами Страуструпа у відповідь на запити співтовариства програміста. Функцію стандартних описів мови виконували написання Страуструпом друковані роботи по c ++ (опис мови, довідкове керівництво і так далі).
1.3 основи теорії та синтаксису мови програмування з ++
. 3.1сінтаксіс мови з ++
Під синтаксисом мови програмування розуміють правила побудови коректних конструкцій даної мови. Синтаксис мови можна описати формально. Для цього зручно використовувати розширену форму Бекуса-наура (БНФ), яка складається з ряду наступних позначень і правил:
· Символи в лапках переносяться в конструкцію мови так, як вони записані. Лапки при цьому відкидаються. Наприклад, while означає, що в конструкції мови присутній while;
· Імена, записані злито російськими і латинськими буквами, позначають різні конструкції мови. Наприклад, оператор_цікла;
· Квадратні дужки охоплюють елементи мови, які можуть повторюватися 0 або 1 раз. Наприклад, ab [ c ] означає, що в конструкції мови може бути присутнім або ab або abc;
· Фігурні дужки охоплюють елементи мови, які можуть повторюватися 0 або багато разів. Наприклад, ab { c } означає, що в конструкції мови може бути присутнім або ab, або abc, або abcc і т.д .;
· Символ | позначає або, тобто використовується для завдання альтернативних значень, зі списку елементів, розділених знаком |. Наприклад, ab | c | ff означає, що в конструкції мови може бути присутнім або ab або c або ff;
· Круглі дужки використовуються для угруповання. Наприклад, a ( b | c ) d означає, що в конструкції мови може бути присутнім або abd або acd;
· Многоточие використовується для позначення очевидних пропущених значень в перерахуванні;
· Символ=позначає - слово є. Наприклад, буква= a | b | c raquo ;.
1.3.2 правила запису програми на мові сі ++
Програмаперед обробкою комп'ютером повинна бути поміщена в файл на диску. Зазвичай цей файл має розширення lt; .c gt;.
Розглянемо типову структуру файлу з програмою на мові сі і правила його оформлення на наступному простому прикладі:
/* включити опису функцій стандартного введення-виведення */
# include lt; stdio.h gt;
/* включити опису математичних функцій */
# include lt; math.h gt;
/* інші файли, що включаються */
/* власне текст програми */main (void)/* lt; - заголовок головної функції */
{num;/* Lt; - опис типів даних */
/* виконувані оператори - * * /=2.345;/* привласнимо змінною num
Значення 2.345 */( sin (% f) =% f n raquo ;, num, sin (num));/* висновок на екран */
}
Будь-який файл починається з директив #include, вставляють в текст програми так звані заголовні файли, які містять описи функцій, які у цьому файлі. У нашому прикладі це описи стандартних функцій вводу-виводу lt; stdio.h gt; і математичних функцій lt; math.h ...