Бестселъри

Програмният език С
Програмният език С

Програмният език С

ISBN/Кат. №: 954911659X

25.00 лв

В наличност

Издателство: ЗеСТ Прес
Размери: 16.5 х 23.5
Тегло: 570 гр.
  • Страници: 304
  • Корици: меки
  • Език: български
  • Година на издаване: 2008

Езикът С е програмен език, с който могат да се изпълняват различни задания. Той се асоциира тясно с операционната система UNIX, тъй като беше разработен на такава система. Както системата, така и повечето програми, които работят на нея, са написани на С. Обаче езикът не е свързан с нито една операционна система или компютър; и въпреки че се нарича "системен програмен език", тъй като е много удобен за писане на компилатори и операционни системи, той се използва еднакво добре и за създаване на големи програми на различните домейни.
Езикът С предоставя фундаментални конструкции за управление на последователността на изпълнение, които са белег за всяка добре структурирана програма: групиране на оператори, вземане на решения (if-else), избиране на един от няколко възможни варианта (switch), цикъл с префиксен (while, for) и постфиксен (do) тест, възможност за преждевременно излизане от цикъл (break).
Функциите в С могат да връщат стойност от някой от основните типове или структура, обединение или указател. Всяка функция може да се извиква рекурсивно. Локалните променливи обикновено са "автоматични", т.е. се създават всеки път, когато бъдат извикани. Дефинициите на функциите не могат да се вграждат, но една и съща променлива може да се декларира неколкократно в различни блокове. Функциите от една С програма могат да бъдат поставени в отделни изходни файлове, които се компилират поотделно. Променливите могат да бъдат вътрешни за дадена функция, външни, но известни само в един изходен файл или достъпни за цялата програма.
Предпроцесорната обработка предоставя заместване на макроси в програмния текст, включване на други изходни файлове и условна компилация.
Езикът С е език на сравнително "ниско ниво". Тази характеристика няма отрицателен смисъл; тя просто показва, че С работи със същия вид обекти, с който работят повечето компютри, а именно символи, числа и адреси. Тези обекти могат да се комбинират и да се разместват посредством аритметични и логически оператори, реализирани от реални компютри.
Езикът С не предоставя операции, които да боравят директно със съставни обекти като символни низове, множества, списъци или масиви. Не съществуват операции, които да манипулират цял масив или низ, въпреки че езикът дава възможност за цялостно копиране на структури. Езикът не дефинира възможност за заделяне на памет, освен статичните дефиниции и стек-варианта за локалните променливи и функции; не съществува възможност за натрупване или за събиране на нищо незначещи стойности. И за да завършим този преглед трябва да отбележим, че самият С не предоставя входно/изходни характеристики; не съществуват оператори READ и WRITE и няма вградени методи за достъп до файлове. Всички тези механизми от "високо ниво" трябва да се предоставят от изрично извикани функции. Повечето реализации на С включват стандартен набор от такива функции.
Също така С предоставя само пряко, единично управление на последователността на изпълнение: тестове, цикли, групиране и подпрограми. Не се поддържат многопрограмното зареждане, паралелното изпълнение на операции, синхронизацията и съвместните функции.
Въпреки че липсата на някои от тези характеристики може да ви се струва много печална ("Искате да кажете, че трябва да извиквам отделна функция, за да сравня два символни низа?"), фактът, че езикът се държи на ниско ниво си има своите предимства. Тъй като С е сравнително малък език, той може да се опише в малко пространство и бързо да бъде разучен. Програмистът съвсем логично ще очаква да разбере и наистина да използва правилно целия език.
Години наред за дефиниция на С се приемаше наръчникът от първото издание на Програмният език С. През 1983 American National Standards Institute (ANSI) основа комитет, който да предостави една по-модерна и подробна дефиниция на С. Резултатната дефиниция – ANSI стандартът, наричан още "ANSI C", беше завършена през 1988. Повечето от характеристиките в стандарта вече се поддържат от модерните компилатори.
Стандартът се базира на първоначалния наръчник. Езикът беше променен съвсем малко: една от целите на стандарта беше да гарантира, че повечето от вече съществуващите програми ще останат валидни, или ако не бъдат валидни, то компилаторите ще произвеждат предупредително съобщение относно новото поведение.
За повечето програмисти основната промяна е новият синтаксис на деклариране и дефиниране на функции. Декларацията на една функция вече може да включва описание на аргументите на функцията; синтаксисът на дефиницията се промени така, че да съответства на горното правило. Тази допълнителна информация улеснява компилаторите при откриването на грешки, причинени от несъответствие на аргументи; според нас от гледна точка на натрупания опит това е едно много полезно допълнение към езика.
Съществуват и други промени, макар и не толкова генерални. Присвояването на структури и на константи от изброим тип (което беше доста широко разпространено) сега официално се превърна в част от езика. Изчисленията със стойности с плаваща запетая сега могат да се извършват и с единична точност. Изясниха се свойствата на аритметичните операции, особено тези, които се отнасяха до беззнаковите типове. Предпроцесорът стана много по-подробен. Повечето от тези промени, обаче, няма да се отразят на програмистите.
Вторият значителен принос на стандарта е дефиницията на библиотеката, която придружава С. В нея са зададени функции за достъп до операционната система (например четене и писане на файлове), за форматиране на вход и изход, за заделяне на памет, за обработка на низове и така нататък. Наборът от стандартните заглавни файлове предоставя универсален достъп до декларациите на тези функции и до типовете данни. Програми, които използват тази библиотека, за да взаимодействат с хоста, имат гарантирано съвместимо поведение. Голяма част от библиотеката е проектирана спрямо "стандартната В/И библиотека" на системата UNIX. Тази библиотека беше описана в първото издание на настоящата книга; тя се използваше широко и на други системи. По-голямата част от програмистите отново не биха обърнали внимание на тези промени.
Тъй като типовете данни и контролните структури, предоставени от С, се поддържат директно от по-голямата част от компютрите, изпълнимата библиотека, необходима за реализацията на самосъдържащи се програми, е доста малка. Функциите от стандартната библиотека могат да се извикват единствено явно, така че те могат да бъдат пропуснати, когато не са необходими. Повечето от тези функции могат да бъдат написани на С и с изключение на детайлите на операционната система, които скриват, те самите са преносими.
Макар че С отговаря на възможностите на голяма част от компютрите, той не зависи от архитектурата на компютъра. Ако сте малко по-внимателни, няма да ви е трудно да пишете преносими програми – това са програми, които могат да се стартират на различни хардуерни конфигурации, без в тях да се внасят някакви промени. Стандартът изяснява въпроса с преносимостта, като предоставя набор от константи, характеризиращи компютъра, на който е стартирана съответната програма.

За информация :


   

Вижте също

Доставка на дрехи и бельо, плащания, рекламация