Трохи про історію виникнення мов програмування, та мови Сі зокрема. У 1949 році у Філадельфії (США) під керівництвом Джона Мочлі був створений "Стислий код" - перший примітивний інтерпретатор мови програмування. У 1951 році у фірмі Remington Rand американська програмістка Грейс Хоппер розробила першу транслюючи програму, що називалася компілятором (compiler - компоновщик). У 1957 році у штаб-квартирі фірми IBM на Медісон-авеню у Нью-Йорку з'явилася перша повна мова Фортран (FORmula TRANslation - трансляція формул). Групою розробників керував тоді відомий 30-річний математик Джон Бекус. Фортран - це перша із "дійсних" мов високого рівня. Далі, у 1972 році 31-літній фахівець із системного програмування фірми Bell Labs Денніс Рітчі розробив мову програмування Сі. У 1984 році французький математик та саксофоніст Филип Кан засновує фірму Borland International. Далі з'явився діалект мови Сі фірми Borland. На початку Сі була розроблена як мова для програмування в операційній системі Unix. Незабаром він став поширюватися для програмістів-практиків. Наприкінці 70-х були розроблені транслятори Сі для мікроЕОМ операційної системи СР/M. Після появи IBM PC стали з'являтися і компілятори мови Сі (для таких комп'ютерів їх зараз декілька десятків). У 1983 р. американський Інститут Стандартів (ANSI) сформував Технічний Комітет X3J11 для створення стандарту мови Сі. На сьогодні мова Сі++, що з'явилася як послідовник Сі, підпорядковується більшості вимог стандарту. За своїм змістом Сі, перш за все, є мовою функцій. Програмування на Сі здійснюється шляхом опису функцій і звертання до бібліотек (бібліотечних функцій). Більшість функцій повертають деякі значення, що можуть використовуватися в інших операторах. Серед переваг мови Сі потрібно відзначити основні: • універсальність (використовується майже на всіх існуючих ЕОМ); • компактність та універсальність коду; • швидкість виконання програм; • гнучкість мови; • висока структурованість.
Будь-яка мова (українська, російська, англійська, французька та інші) складається з декількох основних елементів - символів, слів, словосполучень і речень. В алгоритмічних мовах програмування існують аналогічні структурні елементи, тільки слова називають лексемами, словосполучення - виразами, а речення - операторами. Лексеми в свою чергу утворюються із символів, вирази - із лексем і символів, оператори - із символів, лексем і виразів. • Алфавіт мови, або її символи - це основні неподільні знаки, за допомогою яких пишуться всі тексти на мові програмування. • Лексема, або елементарна конструкція - мінімальна одиниця мови, яка має самостійний зміст. • Вираз задає правило обчислення деякого значення. • Оператор задає кінцевий опис деякої дії.
1.2.1 Алфавіт Алфавіт мови Сі включає: • великі та малі літери латинської абетки; • арабські цифри; • пробільні символи: пробіл, символи табуляції, символ переходу на наступний рядок тощо; • символи,.;:? '! | / \ ~ () [ ] { } < > # % ^ & - + * =
1.2.2 Ідентифікатори Ідентифікатори використовуються для іменування різних об'єктів: змінних, констант, міток, функцій тощо. При записі ідентифікаторів можуть використовуватися великі та малі літери латинської абетки, арабські цифри та символ підкреслення. Ідентифікатор не може починатися з цифри і не може містити пробілів. Компілятор мови Сі розглядає літери верхнього та нижнього регістрів як різні символи. Тому можна створювати ідентифікатори, які співпадають орфографічно, але відрізняються регістром літер. Наприклад, кожний з наступних ідентифікаторів унікальний:
Sum sum sUm SUM sUM
Слід також пам'ятати, що ідентифікатори не повинні співпадати з ключовими словами.
1.2.3 Константи Константами називають сталі величини, тобто такі, які в процесі виконання програми не змінюються. В мові Сі існує чотири типи констант: цілі, дійсні, рядкові та символьні. 1. Цілі константи можуть бути десятковими, вісімковими або шістнадцятковими. Десяткова константа - послідовність десяткових цифр (від 0 до 9), яка починається не з нуля якщо це число не нуль. Приклади десяткових констант: 10, 132, 1024. Вісімкові константи починаються з символу 0, після якого розміщуються вісімкові цифри (від 0 до 7). Наприклад: 023. Запис константи вигляду 08 буде сприйматися компілятором як помилка, так як 8 не є вісімковою цифрою. Шістнадцяткові константи починаються з символів 0х або 0Х, після яких розміщуються шістнадцяткові цифри (від 0 до F, можна записувати їх у верхньому чи нижньому регістрах). Наприклад: 0ХF123. 2. Дійсні константи складаються з цілої частини, десяткової крапки, дробової частини, символу експоненти (e чи E) та показника степеня. Дійсні константи мають наступний формат представлення: [ ціла_частина ][. дробова_частина ][ Е [-] степінь ] У записі константи можуть бути опущені ціла чи дробова частини (але не обидві разом), десяткова крапка з дробовою частиною чи символ E (e) з показником степеня (але не разом). Приклади дійсних констант: 2.2, 220е-2, 22.Е-1,.22Е1. Якщо потрібно сформувати від'ємну цілу або дійсну константу, то перед константою необхідно поставити знак унарного мінуса. 3. Символьні константи. Символьна константа - це один або декілька символів, які заключені в апострофи. Якщо константа складається з одного символу, вона займає в пам'яті 1 байт (тип char). Двосимвольні константи займають в пам'яті відповідно 2 байти (тип int). Послідовності символів, які починаються з символу \ (обернений слеш) називаються керуючими або escape-послідовностями (таблиця 1.1).
Таблиця 1.1. Escape-послідовності
Спеціальний символ
Шістнадцятковий код
Значення
\a
звуковий сигнал
\b
повернення на 1 символ
\f
0C
переведення сторінки
\n
0A
перехід на наступний рядок
\r
0D
повернення каретки
\t
горизонтальна табуляція
\v
0B
вертикальна табуляція
\\
5C
символ \
\'
символ '
\"
символ "
\?
3F
символ?
\0
нульовий символ
\0ddd
-
вісімковий код символу
\0xddd
ddd
шістнадцятковий код символу
4. Рядкові константи записуються як послідовності символів, заключених в подвійні лапки. "Це рядковий літерал!\n" Для формування рядкових констант, які займають декілька рядків тексту програми використовується символ \ (обернений слеш): "Довгі рядки можна розбивати на \ частини" Загальна форма визначення іменованої константи має вигляд: const тип ім'я = значення; Модифікатор const попереджує будь-які присвоювання даному об'єкту, а також інші дії, що можуть вплинути на зміну значення. Наприклад: const float pi = 3.14l5926; const maxint = 32767; char *const str="Hello,P...!"; /* покажчик-константа */ char const *str2= "Hello!"; /* покажчик на константу */ Використання одного лише модифікатору const еквівалентно const int.
1.2.4 Коментарі Текст на Сі, що міститься у дужках /* та */ ігноруватиметься компілятором, тобто вважатиметься коментарем до програми. Такі коментарі можуть розміщуватися в будь-якому місці програми. Коментарі здебільшого використовуються для "документування програм" та під час їх відлагодження. В програму бажано вміщувати текст, що хоч якось пояснює її роботу та призначення. Проте не слід надто зловживати коментарями, а використовувати більш розумні форми найменування змінних, констант, функцій тощо. Якщо, наприклад, функція матиме назву add_matrix, очевидно не зовсім раціональним буде включення у програму після її заголовної частини коментар про те, що: /*функція обчислює cуму матриць */ У цьому випадку ім'я функції пояснює її призначення. У більш сучасних версіях Сі широко застосовується так званий угорський запис імен, коли ім'я змінної містить в собі інформацію про її призначення і тип.
1.2.5 Ключові слова Ключові слова - це зарезервовані ідентифікатори, які мають спеціальне значення для компілятора. Їх використання суворо регламентоване. Імена змінних, констант, міток, типів тощо не можуть співпадати з ключовими словами. Наводимо перелік ключових слів мови Сі:
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление