Читайте также:
|
|
Назва константи значення
M_PI π
M_PI_2 π/2
M_PI_4 π/4
M_1_PI 1/π
M_2_PI 2*π
M_1_SQRTPI 1/√π
M_2_SQRTPI 2/√π
M_E E
M_LOG2E log(e)
M_LOG10E log10(e)
M_LN2 Ln(2)
M_LN10 Ln(10)
M_SQRT 2√2
M_SQRT_2 √2/2
Коментар – це фрагмент тексту який призначено для пояснення програми або окремих фрагментів. Коментар записують:
/* початок коментарю
коментар може бути записаний
в декількох стрічках
*/ кінець коментарю
// коментар записаний в одній стрічці
#include //опис бібліотек
void main() //головна функція
{
тіло програми;
}
На приклад:
#include
void main()
{
cout<<“моя перша програма мовою сі!\n”;
}
Типи даних
Вид | Назва | Діапазон | Обсяг байтів |
Символьний | unsigned char | 0.. 255 | |
Char | -128.. 127 | ||
Перелічувальний | Enum | -32,768.. 32,767 | |
Цілі числа | unsigned int | 0.. 65,535 | |
short int | -32,768.. 32,767 | ||
Int | -32,768.. 32,767 | ||
unsigned long | 0.. 4,294,967,295 | ||
Long | -2,147,483,648.. 2,147,483,647 | ||
long long або __int64 | –9 223 372 036 854 775 808 … 9 223 372 036 854 775 807 | ||
unsigned __int64 | 0 … 18446744073709551615 | ||
Дійсні числа | Float | 3.4 * (10-38).. 3.4 * (10+38 | |
Double | 1.7 * (10-308).. 1.7 * (10+308) | ||
long double | 3.4 * (10-4932).. 1.1 * (10+4932) |
C++ (Сі-плюс-плюс) — мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Розроблена Б'ярном Страуструпом (англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та початково отримала назву «Сі з класами». Згодом Страуструп перейменував мову у C++ у 1983 р. Базується на мові С. Визначена стандартом ISO/IEC 14882:2003.[1]
У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення. Мову використовують для системного програмування, розробки програмного забезпечення, написання драйверів, потужних серверних та клієнтських програм, а також для розробки розважальних програм таких як відео ігри. С++ суттєво вплинула на інші, популярні сьогодні, мови програмування: С# та Java.
Особливості[ред. • ред. код]
При створенні С++ прагнули зберегти сумісність з мовою С. Більшість програм на С справно працюватимуть і з компілятором С++. С++ має синтаксис, заснований на синтаксисі С (див. список операторів мов С та С++).
Нововведеннями С++ порівняно з С є:
У 1998 році ратифіковано міжнародний стандарт мови С++: ISO/IEC 14882 «Standard for the C++ Programming Language». Поточна версія цього стандарту — ISO/IEC 14882:2011.
Історія назви[ред. • ред. код]
Назва «Сі++» була вигадана Ріком Масситті (Rick Mascitti) і вперше було використана в грудні 1983 року. Раніше, на етапі розробки, нова мова називалася «Сі з класами». Ім'я, що вийшло у результаті, походить від оператора Сі «++» (збільшення значення змінної на одиницю) і поширеному способу присвоєння нових імен комп'ютерним програмам, що полягає в додаванні до імені символу «+» для позначення поліпшень. Згідно зі Страуструпом, «ця назва указує на еволюційну природу змін Ci». Виразом «С+» називали ранішню, не пов'язану з Сі++, мову програмування.
Деякі програмісти на Сі можуть відмітити, що якщо виконуються вирази x=3; y=x++; то в результаті вийде x=4 і y=3, тому що x збільшується тільки після присвоєння його у. Проте якщо другий вираз буде y=++x; то вийде x=4 і y=4. Виходячи з цього, можна зробити висновок, що логічніше було б назвати мову не Сі++, а ++Сі. Проте обидва вирази c++ і ++c збільшують с, а крім того вираз c++ поширеніший.
Педанти також можуть відмітити, що введення мови Сі++ не змінює самого Сі, тому найточнішим ім'ям було б «С+1».
Переваги мови C++[ред. • ред. код]
Майбутній розвиток[ред. • ред. код]
Сі++ продовжує розвиватися, щоб відповідати сучасним вимогам. Одна з груп, що займаються мовою Сі++ в її сучасному вигляді і що направляють комітету зі стандартизації Сі++ поради з її поліпшення, — це Boost. Наприклад, один з напрямів діяльності цієї групи — вдосконалення можливостей мови шляхом додавання в неї особливостей метапрограмування.
Стандарт Сі++ не описує способи іменування об'єктів, деякі деталі обробки винятків і інші можливості, пов'язані з деталями реалізації, що робить несумісним об'єктний код, створений різними компіляторами. Проте для цього третіми особами створено безліч стандартів для конкретної архітектури і операційних систем.
Проте (за станом на час написання цієї статті) серед компіляторів Сі++ все ще продовжується битва за повну реалізацію стандарту Сі++, особливо в області шаблонів — частини мови, зовсім недавно повністю розробленій комітетом стандартизації.
Одним із каменів спотикання у цьому питанні є ключове слово export, що використовується також і для розділення оголошення і визначення шаблонів.
Першим компілятором, що підтримав export в шаблонах, став Comeau C++ на початку 2003 року (п'ять років після виходу стандарту). У 2004 році бета-версія компілятора Borland C++ Builder X також почала його підтримку.
Обидва цих компілятора засновані на зовнішньому інтерфейсі EDG. Інші компілятори, такі як Microsoft Visual C++ або GCC, взагалі цього не підтримують. Ерб Саттер (Herb Sutter), секретар комітету із стандартизації Си++, рекомендував прибрати export з майбутніх версій стандарту унаслідок серйозних складнощів в повноцінній реалізації, проте згодом остаточним рішенням було вирішено його залишити.
Із списку інших проблем, пов'язаних з шаблонами, можна навести питання конструкцій часткової спеціалізації шаблонів, які погано підтримувалися протягом багатьох років після виходу стандарту Сі++.
Мова програмування
"Мо́ва програмува́ння" — система позначень для опису алгоритмів та структура даних структур даних(Пратт, розділ І), певна штучна формальна система, засобами якої можна виражати алгоритми(Gabrielli, С. 27). Мову програмування визначає набір лексика лексичних, синтаксис синтаксичних і семантика семантичних правил, що задають зовнішній вигляд програми і дії, які виконує виконавець (комп'ютер) під її управлінням.
З часу створення перших програмованих машин було створено понад дві з половиною тисячі мов програмування. Щороку їх кількість поповнюється новими. Деякими мовами вміє користуватись тільки невелике число їх власних розробників, інші стають відомі мільйонам людей. Професійні програмісти зазвичай застосовують в своїй роботі декілька мов програмування.
Історія
Першу мову програмування високого рівня — Планкалькюль спроектував німець Конрад Цузе у 1945 році, але вона не мала комп'ютерної реалізації і не одержала уваги, хоча мала дуже потужні на той час можливості. У кінці 40-их — початку 50-их застосовувалися інтерпретатор інтерпретовані системи кодування, коли певні команди мови програмування кодувалися числами, які уже інтерпретувалися Машинний код машинним кодом. Ці системи називалися «автоматичним програмуванням», були простішими для програмування, ніж машинні коди, але могли мати значно меншу (до 50 разів) швидкодію, через що часто надавали перевагу машинним кодам. До таких систем належали —:en:Short Code (computer language) Short Code для BINAC (1949) і UNIVAC I (1952),:en:Speedcoding Speedcoding для IBM 701, розроблена Джон Бекус Джоном Бекусом у 1954.
Першою широковживаною компілятор компільованою мовою став розроблений групою Джона Бекуса Фортран, анонсований у 1954 році і випущений у 1957 для IBM 704. Основним призначенням Фортрану були швидкі наукові обчислення, оголошувалося що швидкодія згенерованого компілятором коду майже не відрізянтиметься від машинного коду написаного вручну. Уже у квітні 1958 близько половини програм для IBM 704 були написані на Фортрані. Випущений у 1958 році Фортран II дозволяв незалежну компіляцію підпрограм, що дозволило створювати більші програми, оскількі низька надійність IBM 704 не дозволяла скомпілювати без збоїв велику програму (понад 300-400 рядків) одразу. Розроблений у 1960—1962 роках Фортран IV був однією з найпоширеніших мов того часу і лишався стандартною версією Фортрану до появи у 1978 році Фортрану 77.
У 1958 році у MIT розробили LISP — першу функціональна мова програмування функціональну мову, яка понад чверть століття домінувала у програмуванні задач штучний інтелект штучного інтелекту.
У кінці 1950-их почали розроблятися різні мови програмування. У 1958 році декілька значних груп комп'ютерних користувачів у США, включаючи SHARE — групу науковців-користувачів IBM і USE (UNIVAC Scientific Exchange, група науковців-користувачів UNIVAC) запропонували ACM заснувати робочу групу зі створення універсальної мови програмування. Також ще у 1955 році німецьке Товариство прикладної математики і механіки (GAMM) заснувало комітет зі створення універсальної мови програмування. У кінці травня 1958 року було проведено зустріч у Цюриху між ACM і GAMM, на матеріалах якої у грудні опубліковано ALGOL 58 Report. На його основі було створено 3 значні реалізації — MAD (1961), NELIAC (1963), JOVIAL (1963). З них лише JOVIAL отримав поширення, ставши на чверть століття офіційною мовою програмування у Військово-морські сили США Військово-морських силах США. SHARE і IBM почали створення власної реалізації ALGOL, але припинили, врахувавши витрати на створення і просування Фортрану.
Впродовж 1959 року ALGOL 58 широко обговорювався, була запропонована нотація для опису синтаксису мов програмування — форма Бекуса-Наура. У 1960 проведено чергову зустріч і опубліковано ALGOL 60 Report. ALGOL вплинув на багато мов програмування і став стандарною мовою для публікації алгоритмів, але через ряд причин не одержав широкого поширення — він був заскладним, і не було реалізацій, які підтримували його повністю, відсутність стандартного введення-виведення привела до появи різних несумісних реалізацій, деякі неоднозначності опису мови так і не були розв'язані. Також широкого вжитку уже набув Фортран, і IBM не підтримала ALGOL.
У 1959 році була проведена зустріч у Пентагоні для створення мови CBL (Common Business Language), засновано комітет з його створення, і у 1960 опубліковано початкову специфікацію COBOL 60, який невдовзі став першою мовою прийнятою у Міністерство оборони США Міністерстві оборони США. У 1968 році COBOL було стандартизовано ANSI.
У 1964 році було створено спрощену мову BASIC (Beginners All-purpose Symbolic Instruction Code) для навчання програмуванню студентів, які переважно спеціалізувалися у Вільні мистецтва вільних мистецтвах, а не технічних науках.
Тоді як науковці переважно використовували Фортран, а бізнес — COBOL, у 1963 році в IBM вирішили створити універсальні платформу IBM/360 і мову програмування. У стислі терміни до 1965 року було розроблено мову PL/I, яка поєднувала можливості Фортран, ALGOL і COBOL, і виявилась заскладною, хоча і була у широкому вжитку у 1970-их у наукових і бізнес задачах, також її підмножини (PL/C, PL/CS) використовувалися для навчання програмуванню.
На початку 1960-их було створено перші мови із динамічною типізацією — APL і SNOBOL.
SIMULA 67 була першою об'єктно-орієнтованою мовою програмування.
Елементи
= Синтаксис =
Синтаксис мови програмування визначає те, як буде виглядати програма на цій мові, зокрема, як пишуться оператори, оголошення і інші мовні конструкціїПратт Т., Зелкович М.- C. 42. Наприклад, оголошення масиву V з десяти цілочислових елементів в на мові С буде виглядати так:
int V[10];
На мові Pascal:
V: array [0...9] of integer
= Типи даних =
Область зберігання даних в апаратній частині комп'ютера (ОП пам'ять, регістри і зовнішній запам'ятовуючий пристрій зовнішні запам'ятовуючі пристрої) зазвичай мають доволі просту структуру в вигляді послідовності бітів, згрупованих в байти або слова. Проте в віртуальному комп'ютері, як правило, організовано більш складним чином — в різні моменти виконання програми використовуються такі форми зберігання даних, як стеки, Масив (структура даних) масиви, число числа, Рядок (програмування) символьні рядки та інші. Один або декілька однотипних елементів даних, об'єднаних в одне ціле в віртуальному комп'ютері в певний момент виконання програми, прийнято називати 'об'єктом даних'. При виконанні програми існує багато об'єктів даних різних типів. 'Тип даних' — це деякий клас об'єктів даних разом з набором операцій для створення і роботи з нимПратт Т., Зелкович М. 2002- С.186. В кожній мові програмування є певний набір вбудованих примітивних типів даних. Додатково в мові можуть бути передбачені засоби, що дозволяють програмісту визначати нові типи даних.
Класифікація мов програмування
Мови класифікують за такими критеріями:
; Рівень абстракції: Мови програмування високого рівня оперують сутностями ближчими людині, такими як Об'єкт (програмування) об'єкти, змінна змінні, функція функції. Мови програмування нижчого рівня оперують сутностями ближчими машині: байти, адреса адреси, інструкції. Текст програми на мові високого рівня зазвичай набагато коротший ніж текст такої самої програми на мові низького рівня, проте програма має більший розмір.
; Область застосування: Універсальні та спеціалізовані. Спеціалізовані мови теж бувають Повнота за Тьюрінгом Тьюрінг-повні, та все ж їх область застосування обмежена, як наприклад у мови shell.
; Підтримувані парадигми програмування: Об'єктно-орієнтоване програмування Об'єктно-орієнтовані, логічні, Функціональне програмування функціональні, структурні...
Мови програмування низького рівня
Перші комп'ютери доводилось програмувати машинний код двійковими машинними кодами. Проте програмувати таким чином - доволі трудомістка і важка задача. Для спрощення цієї задачі почали з'являтися мови програмування низького рівня, які дозволяли задавати машинні команди в більш зрозумілому для людини вигляді. Для перетворення їх у двійковий код були створені спеціальні програми - транслятори.
і представлення його на асемблері
Транслятори поділяються на:
компілятори - перетворюють текст програми в машинний код, який можна зберегти і після цього використовувати уже без компілятора (прикладом є виконувальні файли з розширенням.exe).
інтерпретатори — перетворюють частину програми в машинний код, виконують і після цього переходять до наступної частини. При цьому щоразу при виконанні програми використовується інтерпретатор.
Прикладом мови низького рівня є асемблер. Мови низького рівня орієнтовані на конкретний тип процесора і враховують його особливості, тому для перенесення програми на асемблері на іншу апаратну платформу її потрібно майже цілком переписати. Певні відмінності є і в синтаксисі програм під різні компілятори. Щоправда, центральний процесор центральні процесори для комп'ютерів фірм AMD та Intel практично сумісні і відрізняються лише деякими специфічними командами. А ось спеціалізовані процесори для інших пристроїв, наприклад, відеокарт, телефонів містять суттєві відмінності.
= Переваги =
За допомогою мов низького рівня створюються ефективні і компактні програми, оскільки розробник отримує доступ до всіх можливостей мікропроцесор процесора.
= Недоліки =
Програміст, що працює з мовами низького рівня, має бути високої кваліфікації, добре розуміти будову мікропроцесорна система мікропроцесорної системи, для якої створюється програма. Так, якщо програма створюється для комп'ютера, потрібно знати будову комп'ютера і, особливо, влаштування і особливості роботи його процесора.
результуюча програма не може бути перенесена на комп’ютер або пристрій з іншим типом процесора.
значний час розробки великих і складних програм.
Мови низького рівня, як правило, використовують для написання невеликих системних програм, драйверів пристроїв, модулів стиків з нестандартним обладнанням, програмування спеціалізованих мікропроцесорів, коли найважливішими вимогами є компактність, швидкодія і можливість прямого доступу до апаратних ресурсів.
Асемблер - мова низького рівня, що широко застосовується до сих пір.
Мови програмування високого рівня
можна сказати є більш зрозумілими людині, ніж комп’ютеру. Особливості конкретних комп’ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп’ютера на комп’ютер. Достатньо просто компілятор перекомпілювати програму. Розробляти програми на таких мовах значно простіше і помилок допускається менше. Значно скорочується час розробки програми, що особливо важливо при роботі над великими програмними проектами.
Адресна мова програмування
Фортран
Кобол
Алгол
Pascal (мова програмування) Pascal
Мова програмування Java Java
Мова програмування C C
Сі-плюс-плюс C++
C Sharp C
Objective C
Smalltalk
Delphi (мова програмування) Delphi
Недоліком мов високого рівня є більший розмір програм порівняно з програмами на мові низького рівня. Тому в основному мови високого рівня використовуються для розробок програмного забезпечення комп'ютерів, і пристроїв, які мають великий обсяг пам'яті. А різні підвиди асемблеру застосовуються для програмування інших пристроїв, де критичним є розмір програми.
П’ять поколінь мов програмування
Розрізняють п'ять поколінь мов програмування:
= Перше покоління =
Початок 1950-х років — мови перших комп’ютерів. Перша мова асемблера, створена за принципом «одна інструкція — один рядок».
Основна відмінна риса: орієнтування на конкретний комп’ютер.
= Друге покоління =
Кінець 1950-х — початок 1960-х р.р. Розроблено символьний асемблер, в якому з’явилося поняття змінної. Це перша повноцінна мова програмування.
Основна відмінна риса: орієнтування на абстрактний комп’ютер з такою ж системою команд.
= Третє покоління =
1960-ті р.р. — мови програмування високого рівня. Їхні характеристики:
відносна простота;
незалежність від конкретного комп’ютера;
можливість використання потужних синтаксичних конструкцій.
Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами.
Основна відмінна риса мови третього покоління: орієнтування на алгоритм (алгоритмічні мови).
Приклади: Сі, Паскаль, Джава, Бейсік, та багато інших.
Всього у світі існує близько 200 популярних мов програмування третього рівня.
= Четверте покоління =
Початок 1970-х р.р. до сьогоднішнього часу. Створюються мови, призначені для реалізації великих проектів. Проблемно-орієнтовані мови, що оперують конкретними поняттями вузької галузі. Як правило, в такі мови вбудовують потужні оператори, що дозволяють одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні чи навіть тисячі рядків початкового коду.
Приклади: SQL, SGML (HTML, XML), Prolog, та багато інших вузькоспеціалізованих декларативних мов.
Основна відмінна риса мови четвертого покоління: наближення до людської мови (декларативні мови).
Деякі мови мають риси одночасно і третього і четвертого поколінь.
= П'яте покоління =
П’ятого покоління мов програмування поки що "не існує".
Виробники пропроієтарних програмних продуктів часто намагаються приписати своїм продуктам якісь маркетингові особливості, і деколи вказують що їхній продукт — це 'мова п’ятого покоління'. Насправді, всі ці продукти — це просто середовища для прискореного створення продуктів (Rapid Application Development - RAD), і використовують мови третього та четвертого поколінь.
Мова п’ятого покоління витіснить чи суттєво потіснить мови третього (напр. Java) і четвертого покоління (напр. SQL) за рахунок значно збільшеної продуктивності праці програміста — в 10-1000 раз. За прогнозами, 5GL буде оперувати мета-мета-даними.
Наразі існує єдина мова, яка працює з мета-мета-даними, — це мова команд менеджерів пакетів чи менеджерів залежностей, таких як apt, yum, smart, maven, cpan та інші. Вони оперують над метаданими про метадані про дані у пакетах. Використання apt-get, yum та smart дійсно надзвичайно підвищило продуктивність системних адміністраторів — приблизно в 1000-у раз. Використання менеджерів залежностей, таких як maven, cpan, rakudo, pim, easy_install, дійсно значно підвищило продуктивність програмістів, приблизно в 10-ть раз. Нажаль, ці мови є мовами командного рядка і не є мовами програмування. Див. також
Список мов програмування
Система типізації
Стандарт оформлення коду
= Література =
Pratt T.W., Zelkovitz M.V. Programming languages, design and implementation (4th ed.). Prentice Hall, 2000 (Пратт Т., Зелкович М., Языки программирования: разработка и реализация.- Спб.: Питер, 2002.-688 с.)
= Ресурси інтернету =
порівняння мов за швидкодією і використаними ресурсами
Український форум програмістів
Посилання
uk.wikipedia.org
Дата добавления: 2014-12-19; просмотров: 318 | Поможем написать вашу работу | Нарушение авторских прав |