виявити в ньому по можливості більше число помилок. Однак, чим довше триває процес тестування (і налагодження в цілому), тим більшою стає вартість ПC. Звідси друге завдання: визначити момент закінчення налагодження пс (або окремої його компоненти). Ознакою можливості закінчення налагодження є повнота охоплення пропущеними через нс тестами (тобто Тестами, до яких застосовано пс) безлічі різних ситуацій, що виникають при виконанні програм пс, і відносно рідкісне прояв помилок у пс на останньому відрізку процесу тестування. Останнє визначається відповідно до необхідної ступенем надійності ПC, зазначеної в специфікації його якості.
. 2.3 Історія створення мови з ++
Мова з ++ виник на початку 1980-х років, коли співробітник фірми bell labs б'ярн страуструп придумав ряд удосконалень до мови c під власні потреби. Коли наприкінці 1970-х років Страуструп почав працювати в bell labs над завданнями теорії черг (у додатку до моделювання телефонних викликів), він виявив, що спроби застосування існуючих в той час мов моделювання виявляються неефективними, а застосування високоефективних машинних мов занадто складно з-за їх обмеженою виразності. Так, мова симула має такі можливості, які були б дуже корисні для розробки великого програмного забезпечення, але працює занадто повільно, а мова bcpl досить швидкий, але занадто близький до мов низького рівня і не підходить для розробки великого програмного забезпечення.
Згадавши досвід своєї дисертації, Страуструп вирішив доповнити мову c (наступник bcpl) можливостями, наявними в мові симула. Мова c, будучи базовою мовою системи unix , на якій працювали комп'ютери bell, є швидким, багатофункціональним і стерпним. Страуструп додав до нього можливість роботи
З класами і об'єктами. У результаті практичні задачі моделювання виявилися доступними для вирішення як з точки зору часу розробки (завдяки використанню симула-подібних класів), так і з точки зору часу обчислень (завдяки швидкодії c). У першу чергу в c були додані класи (з інкапсуляцією), спадкування класів, сувора перевірка типів, inline-функції і аргументи за замовчуванням. Ранні версії мови, спочатку именовавшегося «c with classes» («сі з класами»), стали доступні з 1980 року.
Розробляючи c з класами, Страуструп написав програму cfront - транслятор, переробний вихідний код c з класами у вихідний код простого c. Це дозволило працювати над новою мовою і використовувати його на практиці, застосовуючи вже наявну в unix інфраструктуру для розробки на c. Нова мова, несподівано для автора, придбав велику популярність серед колег і незабаром Страуструп вже не міг особисто підтримувати його, відповідаючи на тисячі питань.
При створенні c ++ б'ярн страуструп хотів:
· Отримати універсальна мова зі статичними типами даних, ефективністю і переносимістю мови c.
· Безпосередньо і всебічно підтримувати безліч стилів програмування, у тому числі процедурне програмування, абстракцію даних, об'єктно-орієнтоване програмування і узагальнене програмування.
· Дати програмісту свободу вибору, навіть якщо це дасть йому можливість вибирати неправильно.
· Максимально зберегти сумісність з c, тим самим роблячи можливим легкий перехід від програмування на c.
· Уникнути різночитань між c і c ++: будь-яка конструкція, допустима в обох мовах, повинна в кожному з них позначати одне і те ж і приводити до одного і того ж поведінки програми.
· Уникати особливостей, які залежать від платформи або не є універсальними.
· «не платити за те, що не використовується» - ніяке мовний засіб не повинно призводити до зниження продуктивності програм, що не використовують його.
· Чи не вимагати занадто ускладненою середовища програмування.
Вибір саме c в якості бази для створення нової мови програмування пояснюється тим, що мова c:
. Є багатоцільовим, лаконічним і відносно низькорівневим мовою;
2. Підходить для вирішення більшості системних завдань;
. Виповнюється скрізь і на всьому;
. Стикується з середовищем програмування unix.
- б. Страуструп. Мова програмування c ++. Розділ 1.6
Незважаючи на ряд відомих недоліків мови c, Страуструп пішов на його використання в якості основи, так як «в c є свої проблеми, але їх мав би і розроблений з нуля мову, а проблеми c нам відомі». Крім того, це дозволило швидко отримати прототип компілятора (cfront), який лише виконував трансляцію доданих синтаксичних елементів...