Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Урок Тема. Початкові відомості про мову програмування С++ Історія С++

Скачати 50.32 Kb.

Урок Тема. Початкові відомості про мову програмування С++ Історія С++




Скачати 50.32 Kb.
Дата конвертації08.05.2017
Розмір50.32 Kb.

Інформаційні технології

1 урок

Тема. Початкові відомості про мову програмування С

Історія С .

С була створена на основі мови С. А сама мова С була розроблена у 1973 році в компанії Bell Labs Кеном Томпсоном і Деннісом Річчі.

Мо́ва програмува́ння (англ. Programming language) - це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.
Лабораторія Белла (англ. Bell Laboratories, скорочено Bell Labs, колишні назви AT&T Bell Laboratories, Bell Telephone Laboratories) - в минулому американська корпорація, створена 1925 р. шляхом злиття та централізації науково-дослідних відділів компаній AT&T і Western Electric.
Мова С була створена для використання в операційній системі Unix. На даний час мова С є найбільш поширеною мовою програмування і доступною для більшості платформ. Також С – є основною мовою низькорівневої розробки, тобто на цій мові пишуться операційні системи, драйвери та інші низькорівневі програми.
Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) - це базовий комплекс програм, що виконує управління апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.



Чому мова С є такою популярною?

  • Ефективність (мова С дозволяє писати програми, які працюють з ресурсами комп’ютера напряму)

  • Стандартизованість (у мови існує стандарт – це міжнародний документ, який містить відомості про те як програма на С повинна компілюватись і виконуватись)

  • Відносна простота (стандарт С займає 230 сторінок, Java – 670, C - 1340)

Тепер перейдемо до історії самої С .

Мова С починає розроблятися на початку 1980-х років. Її творець співробітник Bell Labs Бйорн Страуструп. Спочатку це було розширення мови С для підтримки роботи з класами і об’єктами. До 1983 р. туди додаються багато нових можливостей (віртуальні функції, перегрузка функцій і операторів, посилання, константи…). Мова перестала бути просто доповненням до мови С і була перейменована у С із «С з класами». Мова отримала таке ім’я від імені оператора унарного постфіксного інкремента « » (збільшення значення змінної на одиницю). Мова починає активно розвиватися, з’являються нові компілятори і середовища розробки.



Стандартизація C .

Лише в 1998 році був ратифікований міжнародний стандарт мови С : ISO/IEC 14882:1998 “Standard for the C Programming Language”.

Інтегроване середовище розробки (ІСР, англ. Integrated development environment або англ. IDE) - комплексне програмне рішення для розробки програмного забезпечення. Зазвичай, складається з редактора початкового коду, інструментів для автоматизації складання та відлагодження програм.
Міжнародний стандарт - стандарт розроблений міжнародною організацією стандартизації. Найвідомішою з них є International Organization for Standardization. Міжнародний стандарт можна застосовувати прямо, чи модифікувати для кращої відповідності місцевим умовам.
У 2003 році був опублікований стандарт мови ISO/IEC 14882:2003, де були виправлені помилки. Велась робота над новими стандартами. І нарешті в 2011 році стандарт був прийнятий і отримав назву С 11 ISO/IEC 14882:2011. В даний час ведеться робота одночасно над двома версіями страндарту: С 14 і С 17. Одним з принципів розробки стандарту С - це збереження сумісності з мовою С. Так, наприклад, синтаксис мови С успадкований від мови С, але С не є множиною мови С. Можна писати програми на С так, щоб вони успішно компілювались на С . С і С дуже відрізняються як по складності, так і по прийнятим архітектурним рішенням, які використовують в обох мовах.



Основні характеристики С .

  1. Складність

  • Опис стандарту займає більше 1300 сторінок тексту.

  • Немає ніякої можливості розповісти «весь С » в рамках одного, навіть дуже короткого курсу.

  • В С програмісту дозволено багато, і це призводить до великої відповідальності.

  • На плечі програміста лягає багато додаткової роботи: перевірка коректності даних, управління пам’яттю, обробка низькорівневих помилок.

  1. Мультипарадигма

На С можна писати програми в рамках декількох парадигм програмування

  • процедурне програмування (код в стилі «С»)

  • об’єктно-орієнтоване програмування (класи, успадкування, віртуальні функції…)

  • узагальнене програмування (шаблони функцій і класів)

  • функціональне програмування (функтори, безіменні функції, замикання…)

  • генеративне програмування (мета програмування на шаблонах)

  1. Ефективність

  2. Низькорівневість

Мова С , як і С, дозволяє працювати напряму з ресурсами комп’ютера.

  • Дозволяє писати низькорівневі системні додатки (наприклад драйвери до операційної системи)

  • Неакуратне поводження з системними ресурсами може привести до падіння програми

В С відсутнє автоматичне управління пам’яттю.

  1. Компіляція

С є компілюючи мова програмування.

Для того, щоб запустити програму на С , її потрібно спочатку скомпілювати.

Компіляція – перетворення тексту програми на мові програмування в машинний код.

Автомати́чне керува́ння (англ. automatic control) - виконання без безпосередньої участі людини певних впливів на об'єкт керування, необхідних і достатніх для одержання цілеспрямованого його функціювання із заданою точністю.
Початковий код (англ. source code; також перекладається українською як вихідний код, програмний код, джерельний код, первинний код, текст програми, у професійному середовищі також сирцевий код, у контексті код або сирці) - будь-який набір інструкцій або оголошень, написаних комп'ютерною мовою програмування у формі, що її може прочитати і модифікувати людина.


  • Нема накладних розходів при виконанні програми.

  • При компіляції можна виявити деякі помилки

  • Потрібно компілювати для кожної платформи окремо.

  1. Статична типізація

С є статично типізованою мовою.

  1. Кожна сутність у програмі (змінна, функція і ін..) має свій тип

  2. І цей тип визначається на момент компіляції.

Це потрібно для того, щоб

  1. Обчислити розмір пам’яті, який буде займати кожна змінна в програмі.

  2. Визначати, яка функція буде викликатися в кожному конкретному місці.

Все це визначається на момент компіляції і «зашивається» в компільовану програму.

В машинному коді ніяких типів вже немає – там іде робота з послідовностями байт.



Для чого потрібний компілятор?

На схемі зображений процес розробки програми на С .



Давайте подивимось, як це відбувається на інших мовах програмування.

Для мови Java.

Маши́нний код, маши́нна мова в інформатиці - набір команд (інструкцій), які виконуються безпосередньо центральним процесором комп'ютера без транслятора. Кожен тип центрального процесора має власний машинний код.
Java (вимовляється Джава; інколи - Ява) - об'єктно-орієнтована мова програмування, випущена 1995 року компанією «Sun Microsystems» як основний компонент платформи Java. З 2009 року мовою займається компанія «Oracle», яка того року придбала «Sun Microsystems».
Після того, як отримаємо код на Java, компіляція буде відбуватися не в машинний код, як у випадку з С , а у «байт код». «Байт код» - це код для деякого абстрактного комп’ютера, якого в дійсності не існує, а він реалізується з допомогою деякий програм. Для Java це JVM – Java віртуальна машина.
Віртуальна машина - модель обчислювальної машини, створеної шляхом віртуалізації обчислювальних ресурсів: процесора, оперативної пам'яті, пристроїв зберігання та вводу і виводу інформації.
Абстрактний комп’ютер вміє виконувати цей «байт код» і виконує роль транслятора команд конкретному процесору на виконання. За рахунок цього ми отримуємо на виході програму, яку достатньо скомпілювати один раз, тому що вона компілюється на деякому абстрактному комп’ютері, і після цього її можна запускати на будь-якому комп’ютері, на якому є віртуальна машина. Мова С# - це також мова з віртуальною машиною.



Що таке інтерпретація?

В інтерпретованих мовах відсутня фаза компіляції. Давайте подивимось як це працює на прикладі мови Perl.




Інтерпретатор скомпілює програму у внутрішнє представлення, а далі буде транслювати команду конкретному процесору. Тобто у інтерпретаторі буде одночасно і компілятор і деяка віртуальна машина. Такий підхід роботи не тільки для Perl, а й для інших скриптових мов – PHP, Python, Ruby та ін..


Плюси і мінуси компіляції в машинний код.

Плюси

  1. Ефективність: програма компілюється і оптимізується для конкретного процесора.

  2. Нема необхідності встановлювати сторонні додатки (такі як інтерпретатор або віртуальна машина)

Мінуси

  1. Потрібно компілювати для кожної платформи

  2. Складність внесення змін у програму – потрібно перекомпілювати заново.

Важливо: компіляція – це перетворення одностороннє, неможливо відновити вихідний код.


Скачати 50.32 Kb.

  • Чому мова С є такою популярною
  • Основні характеристики С .
  • Плюси і мінуси компіляції в машинний код.