- •Історія
- •Елементи Синтаксис
- •Типи даних
- •Класифікація мов програмування
- •Способи реалізації мов [ред.]
- •Процедури та функціі
- •Об'єктно-орієнтоване програмування
- •Семантика мов програмування
- •Мови програмування низького рівня
- •Переваги
- •Недоліки
- •Мови програмування високого рівня
- •П'ять поколінь мов програмування
- •П'яте покоління
- •Філософія
- •Мінімалізм
- •Характеристика
- •Відсутня функціональність
- •Історія Рання розробка
- •Стандарт c99
- •Стандарт c11
- •Використання
- •Бібліотеки
- •Критика
Використання
Одним із наслідків значного поширення та ефективності С є те, що компілятори, бібліотеки та інтерпретатори багатьох інших високорівневих мов програмування реалізуються на С.
С використовується, як проміжна мовадеякими високорівневими мовами програмування. Це здійснюється одним із двох наступним способів:
Продукується текст програми мовою C паралельно з іншим вихідним кодом: машинним, об'єктним та/або двійковим. Наприклад, така поведінка характерна для деяких діалектів мови Lisp(Lush).
Продукується виключно текст на С. Приклади: Eiffel, Sather; Esterel.
Вихідний текст програми на С передається компілятору С, який видає кінцевий машинний або двійковий код. Це зроблено задля переносимості (компілятори мови С існують майже для усіх платформ) і уникання необхідності розвитку специфічних для машини генераторів команд.
Завдяки величезній популярності мови програмування C, останні стандарти мови Фортран ввели механізм сумісності, що дозволяє просту і стандартизовану взаємодію між програмами на Фортран та C. Сумісність досягається на майже усіх основних рівнях: вбудованих і похідних типів, вказівників, змінних, функцій та процедур.
Бібліотеки
Мова програмування С використовує бібліотеки, як основний засіб свого розширення. У С, бібліотека — набір функцій, котрі містяться в одному файлі. Кожна бібліотека, за звичай має заголовочний файл, в якому містяться прототипи функцій, присутніх у бібліотеці, яка може використовуватися, а також декларації спеціальних типів даних і макро-символів, що використовують ці функції. Для того, щоб програма використовувала бібліотеку, заголовний файл цієї бібліотеки має бути оголошений вгорі файлу із сирцевим кодом, і бібліотека має бути злінкованою з програмою, що у багатьох випадках вимагає спеціальної опції для компілятора (наприклад, -lmath).
Загальною бібліотекою С є стандартна бібліотека С stdlib.h, що вказана уISO та ANSI C стандартах, і розповсюджується з кожним сучасним компілятором мови С.
Іншим загальним набором функцій стандартної бібліотеки Сє той, що використовуєтьсязастосунками. Проектувалися вони для UNIX-подібних систем, у першу чергу, для забезпечення інтерфейсу до ядра. Ці функції деталізуються у різноманітних стандартах, на кшталт POSIX та Single UNIX Specification.
Відтоді, як С набула великої популярності, для неї було написано чимало інших бібліотек. Бібліотеки часто пишуться на С, оскільки компілятори C ґенерують ефективний об'єктний код; пізніше програмісти створюють інтерфейси до бібліотек таким чином, що ті можуть використовуватися високорівневими мовами, на кшталт Java, Perl та Python.
Критика
Докладніше: Критика мови програмування С
Незважаючи на її велику популярність, С часто критикується. В основному критика зосереджена на тому, що, використовуючи C, важко здійснити деякі бажані дії, і на тому, що, використовуючи C, дуже легко здійснити деякі небажані дії. Коротко кажучи, ефективне використання С вимагає від програміста більше навичок, досвіду та зусиль, ніж це потрібно для деяких інших мов програмування.
Пов'язані мови
Коли об'єктно-орієнтовані мови стали популярними, C++ і Objective-C були двома різними продовженнями C, які забезпечували об'єктно-орієнтовані можливості. Обидві мови спочатку функціонували, як препроцесори — написаний на них код спочатку переводився на C, а потім компілювася компілятором C.
С++
Мова програмування C++ розроблена на основі С, і була отримана у наслідок додавання Б'ярном Страуструпом до неї об'єктно-орієнтованої функціональності із C-подібним синтаксисом.
Objective-C
Objective-C — дуже «тонка» надбудова над С, який дозволяє об'єктно-орієнтоване програмування використовуючи гібрид динамічної/статичної парадигми типів. Основу синтаксису Objective-C склав синтаксис мови С, однак, синтаксис для його об'єктно-орієнтованих можливостей був запозичений у Smalltalk. Objective-C та C++ відрізняються своєю філософією — для більшої інформації, читайте відповідні статті.
С#]
Мова програмування C# заснована на строгій компонентній архітектурі і реалізує передові механізми забезпечення безпеки коду. C # об'єднала кращі риси цілого ряду попередників. Крім згаданої раніше мови C++, необхідно указати ще кілька знакових для нашого часу мов програмування, а саме, Java і Visual Basic.
Основні можливості C#
Подібно мовам Java, C++ і Visual Basic, але являється компонентно-орієнтованим і більш безпечним. Додано ряд нових рис (делегати, індексатори, механізм (un)boxing і т.д.)