Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОТ СП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.58 Mб
Скачать

2. Розвиток мов системного програмування

Мова Асемблера – це символічне представлення машинної мови. Він полегшує процес програмування в порівнянні з програмуванням в машинних кодах.

Програмісту не обов'язково вживати справжні адреси елементів пам'яті з розміщеними в них даними, що беруть участь в операції, а також адреси тих команд, до яких програма не звертається. Замість них вказується їх символьне позначення (MOV ax, bx).

Деякі завдання, наприклад, обмін з нестандартними пристроями обробки даних складних структур неможливо вирішити за допомогою мов програмування високого рівня. Це під силу асемблеру.

У принципі, мова Асемблер є машинною мовою. І програміст що реалізовує яке-небудь завдання на мовах високого рівня, за допомогою Асемблера може визначити чи осмислено рішення даної задачі, з погляду використання ЕОМ. Але на Асемблері програмувати складно, тому у більшості випадків інтерфейс програми складається на мовах високого рівня, а команди обміну даними із пристроями вводу/виводу складаються на Асемблері. Тому практично всі компілятори мов програмування високого рівня дозволяють розміщувати асемблерні вставки у програмах користувача.

 Сі – це мова програмування загального призначення, добре відома своєю ефективністю, економічністю, і переносимістю. Вказані переваги Сі забезпечують хорошу якість розробки майже будь-якого виду програмного продукту. Використання Сі як інструментальна мова дозволяє одержувати швидкі і компактні програми. У багатьох випадках програми, написані на Сі, порівнянні за швидкістю з програмами, написаними на мові асемблера. При цьому вони мають кращу наочність і їх простіше супроводжувати. Сі поєднує ефективність і потужність у відносно малій за розміром мові.

Сі – це чудова мова, і хоча деяким він не подобається, але все таки більшість програмістів його люблять. На Сі ви можете створювати програми, які роблять все, що ви побажаєте. Немає іншої такої мови, яка б так само стимулювала до програмування. Створюється враження, що решта мов програмування споруджує штучні перешкоди для творчості, а Сі – ні. Використання цієї мови дозволяє скоротити витрати часу на створення працюючих програм. Сі дозволяє програмувати швидко, ефективно і передбачено. Ще одна перевага Сі полягає в тому, що він дозволяє використовувати всі можливості вашої ЕОМ. Ця мова створена програмістом для використання іншими програмістами, чого про інші мови програмування сказати не можна.

Мова Сі має свої істотні особливості, давайте перерахуємо деякі з них:

Сі забезпечує повний набір операторів структурного програмування. Сі пропонує незвично великий набір операцій. Багато операцій Сі відповідають машинним командам, і тому допускають пряму трансляцію в машинний код. Різноманітність операцій дозволяє вибирати їх різні набори для мінімізації результуючого коду. Тобто один і той самий алгоритм можна описати з використанням різних операторів.

Сі підтримує покажчики (вказівники) на змінні і функції, тобто дозволяє працювати з динамічною пам’яттю. Покажчик на об'єкт програми відповідає машинній адресі цього об'єкта. За допомогою розумного використання покажчиків можна створювати ефективно-виконувані програми, оскільки покажчики дозволяють посилатися на об'єкти тим же самим шляхом, як це робить машина. Сі підтримує арифметику покажчиків, і тим самим дозволяє здійснювати безпосередній доступ і маніпуляції з оперативною пам'ятю не гірше ніж мова Асемблера.

Очевидно, що мова Сі також має ряд недоліків. Зокрема вона пред'являє достатньо високі вимоги до кваліфікації програміста. При вивченні Сі бажано мати уявлення про структуру і роботу комп'ютера. Велику допомогу і глибше розуміння ідей Сі, як мови системного програмування, забезпечать хоч би мінімальне знання мови асемблер. Рівень старшинства деяких операторів не є загальноприйнятим, деякі синтаксичні конструкції могли б бути краще, оскільки завдяки їх простоті вони часто втрачають зрозумілість. Проте, як виявилося Сі – надзвичайно ефективна і виразна мова, придатна для широкого класу завдань.

 Назва Сі++ - винахід літа 1983-його. Раніші версії мови використовувалися починаючи з 1980-го і були відомі як "Cі з Класами". Спочатку мова була придумана тому, що автор хотів написати покроково керовані моделі для чого був би ідеальний Simula67, якщо не брати до уваги ефективність. "Cі з Класами" використовувався для крупних проектів моделювання, в яких строго тестувалися можливості написання програм, що вимагають (тільки) мінімального простору пам'яті і часу на виконання. У "Cі з Класами" не вистачало перевантаження операцій, посилань, віртуальних функцій і багатьох деталей. Сі++ був вперше введений за межами дослідницької групи автора в липні 1983-го. Проте тоді багато особливостей Сі++ були ще не придумані.

Назву Сі++ вигадав Рік Масситті. Назва указує на еволюційну природу переходу до нього від . "++" - це операція інкременту в . Трохи коротше ім'я + є синтаксичною помилкою, крім того, його вже було використано як ім'я зовсім іншої мови. Назви D мова не одержала, оскільки вона є розширенням і в ній не робиться спроб зцілитися від проблем шляхом викидання різних особливостей.

Сі++ - це універсальна мова програмування, задумана так, щоб зробити програмування приємнішим для серйозного програміста. За винятком другорядних деталей Сі++ є надбудовою мови програмування . Крім можливостей, які дає , Сі++ надає гнучкі і ефективні засоби визначення нових типів. Використовуючи визначення нових типів, що точно відповідають концепціям застосування, програміст може розділяти програму, що розробляється, на частини, що легко піддаються контролю. Такий метод побудови програм часто називають абстракцією даних. Програмування із застосуванням таких об'єктів часто називають об'єктно-орієнтованим. При правильному використанні цей метод дає коротші програми, що простіше розуміються і легше контрольовані.

Спочатку Сі++ був розроблений, щоб автору і його друзям не доводилося програмувати на асемблері, або інших сучасних мовах високого рівня. Основним його призначенням було зробити написання хороших програм простішим і приємнішим для окремого програміста. Плану розробки Сі++ на папері ніколи не було. Проект, документація і реалізація рухалися одночасно. Зрозуміло, зовнішній інтерфейс Сі++ був написаний на Сі++. Ніколи не існувало "Проекту Сі++" і "Комітету з розробки Сі++". Тому Сі++ розвивався і продовжує розвиватися на всіх напрямках, щоб справлятися з складнощами, з якими стикаються користувачі, а також в процесі дискусій автора з його друзями і колегами.

Як базова мова для Сі++ був вибраний , тому що він:

 багатоцільовий, лаконічний і щодо низького рівня:

 відповідає більшості завдань системного програмування:

 придатний  для роботи на різних типах ЕОМ і під керуванням різних операційних систем;

Сі++ був розвинений з мови програмування і за дуже небагатьма виключеннями зберігає як підмножину. Базова мова, підмножина Сі++, спроектована так, що є дуже близька відповідність між його типами, операціями і операторами і комп'ютерними об'єктами, з якими безпосередньо доводиться мати справу: числами, символами і адресами.

Одним з первинних призначень C було застосування його замість програмування на асемблері в найнасущніших завданнях системного програмування. Коли проектувався Сі++, були вжиті заходи, щоб не ставити під загрозу успіхи в цій області. Відмінність між і Сі++ полягає в першу чергу в ступені уваги, що приділяється типам і структурам.

Особлива увага, приділена при розробці Сі++ структурі, відобразилася на зростанні масштабу програм, написаних з часу розробки Cі. Маленьку програму (менше 1000 рядків) ви можете примусити працювати за допомогою грубої сили, навіть порушуючи всі правила хорошого стилю. Для програм великих розмірів це не зовсім так. Якщо програма в 10000 рядків має погану структуру, то ви виявите, що нові помилки з'являються так само швидко, як віддаляються старі. Сі++ був розроблений так, щоб дати можливість розумним чином структурувати великі програми так, щоб для однієї людини не було непомірним справлятися з програмами в 25 000 рядків. Існують програми набагато більших розмірів, проте ті, які працюють, в цілому, як виявляється, складаються з великого числа майже незалежних частин, розмір кожної з яких набагато нижче вказаних меж.

Природно, складність написання і підтримки програми залежить від складності розробки, а не просто від числа рядків тексту програми, так що точні цифри, за допомогою яких були виражені попередні міркування, не слід сприймати дуже серйозно.

Винахід мови програмування вищого рівня дозволив нам спілкуватися з машиною, розуміти її (якщо звичайно Вам знайома використовувана мова), як розуміє американець небагато знайомий з російською мовою стародавню азбуку Кирилиці. Простіше кажучи, ми в нашому розвитку науки програмування поки що з ЕОМ на ВИ.  Повірте – це не сарказм ви тільки подивитеся  як розвинулася наука програмування з того часу, як з'явилися мови програмування, адже мова програмування вищого рівня, судячи з усього ще немовля. Але якщо ми звернемо увагу на темпи зростання і розвитку новітніх технологій у області програмування, то можна припустити, що в найближчому майбутньому, людські пізнання в цій сфері, допоможуть породити мови, що уміють приймати, обробляти і передавати інформації у вигляді думки, слова, звуку або жесту. Так і хочеться назвати це дітище комп'ютеризованого майбутнього: (мови програмування "високого" рівня). Можливо, концепція рішення цього питання проста, а найближче майбутнє цього проекту вже не за горами, і у цей момент, де нібудь в Запоріжжі, Амстердамі, Токіо або Єрусалимі, перед стареньким Pentium3 горбить молодою, ніким не визнаний фахівець і розробляє новітню систему  штучного інтелекту, яка нарешті дозволить людині, за допомогою своїх машинних мов, вести діалог з машиною на ТИ.

Роздумуючи над цим, хочеться вірити в прогрес науки і техніки, у високо - комп'ютеризоване майбутнє людства, як єдиної істоти на планеті, хай і що не використовує один, певна розмовна мова, але здатного так швидко прогресувати і розвивати свій інтелект, що і переходу від багатомовної системи до загального розуміння довго чекати не доведеться.

Завершити свою працю добре б на такій оптимістичній ноті, але ні, наприкінці хочеться процитувати людину, фрагменти роботи якого, у вигляді інформації про мову Сі, вам вже попадалися на сторінках цього тексту:

Єдиний спосіб вивчати нову мову програмування – писати на ній програми.

Бєрн Страуструп