Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
14.04 Кб
Скачать

Інформатика — Теорія — Мова програмування С    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаМова програмування : Мова програмування СЗміст курсу

Вступ

Теорія

Мови програмування

Мова програмування С

Мова програмування С++

Версія для друку

  Мова програмування С      C (англ. C)- універсальна, процедурна, імперативна мова програмування, розроблена у 1972 році Денісом Рітчі у Bell Telephone Laboratories для використання з операційною системою UNIX. Відтоді її версії з'явилися для багатьох інших ОС, і наразі С є однією з найбільш поширених мов програмівання. C також здійснив великий вплив на інші мови програмування, особливо на С++, котра спочатку проектувалася, як розширення для Сі. Найчастіше використовується для написання системного програмного забезпечення, хоча, досить часто на ній пишуть і прикладне програмне забезпечення.     

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

     Характеристика. Як і більшість імперативних мов, заснованих на традиції ALGOL, С має наступні характеристики.

1. Процедурна парадигма програмування, із засобами для структурного програмування.

2. Лексично змінний контекст і рекурсія.

3. Статична система типів, яка захищає від багатьох беззмістовних дій.

4. Різнорідні типи даних, які дозволяють зв'язаним між собою елеменам даних комбінуватися і керуватися, як одне ціле.

5. Маленький набір (близько 30) зарезервованих ключових слів.

     C також має наступні специфічні властивості.

1. Слабка типізація - наприклад, символи можуть використовуватися, як цілі числа (подібно до асемблера).

2. Низькорівненвий доступ до оперативної пам'яті через машинні адреси та вказівники.

3. Вказівники на функції дозволяють динамічний поліморфізм.

4. Індексування масивів, як вторинне поняття, визначається у термінах арифметичної операції над покажчиками.

5. Стандартизований препроцесор C для макроозначення, включення файлу з джерельним кодом, умовної трансляції, і т.д.

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

7. Відмова від добре встановлених логічних з'єднань and та or, і заміна їх && та ||, котрі були розроблені для того, щоб зробити побітові операції (& та |) синтаксично відмінними - її попередник, мова В використовує & та | для обох операцій.

8. Ліниво обчислюються умови - правий операнд логічної операції не обчислюється, якщо результат може бути визначено лівим операндом (мінімальна оцінка).

9. С популяризував спірне рішення звільнити знак = для здійснення операції присвоєння, замінивши його на == для операції порівняння.

     С має брак наступних можливостей, котрі мають інші мови програмування:

1. Відсутність нескалярних операцій, на зразок копіювання масивів або рядків.

2. Відсутність автоматичного керування пам'яттю (збір сміття).

3. Відсутня перевірка меж масиву.

4. Відсутність напівдинамічних масивів.

5. Відсутність синтаксису для масивів, на зразок А..В, котрі використовують, як старіші, так і новіші мови програмування. ·     15. Відсутність вкладених функцій (хоча, дана можливість забезпечується деякими компіляторами).

6. Відсутність обробки виключних ситуацій.

7. Відсутність рудиментарної підтримки модульного програмування.

8 .Відсутність статичного поліморфізму у формі перевантаження функцій або операторів.

9. Відсутність підтримки об'єктно-орієнтованого програмування.

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

11. Відсутність стандартних бібліотек для роботи з графікою та деяких інших бібліотек для прикладного програмування.

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

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content