C

Од Сподели wiki
Прејди на: содржини, барај

Програмскиот јазик C (Це) е програмски јазик од третата генерација програмски јазици. Тој е програмски јазик кој ги одбележа осумдесеттите и деведесеттите години на минатиот век и е најраширен програмски јазик на светот. Тој е едноставен и елегантен програмски јазик кој ја пополнува празнината меѓу вишите програмски јазици и асемблерите (assembler) бидејќи ги комбинира особеностите на вишите програмски јазици со функционалноста на асемблерите. Поради тоа C можеме да го наречеме јазик што ги обединува својствата и на вишите програмски јазици и на асемблерите.

Историја

За творец на овој програмски јазик се смета Dennis Ritchie од Bell-овите лабаратории на АТ&Т. Тој заедно со Ken Northon работел на дизајнирање на првичните верзии на оперативниот систем Unix и го имплементира на PDP 11. Во 1978 година Brian Kernighan и Denis Ritchie ја издале првата книга за програмскиот јазик C. Оваа книга служела како референтна книга за јазикот се до појавата на првиот ANSI стандард за C, десетина години подоцна.

Генеологијата на програмскиот јазик C е следнава. Како и за сите други структуирани програмски јазици, така и за програмскиот јазик C може да се каже дека негов најдалечен предок е програмскиот јазик Algol 60. Algol 60, како што кажува и неговото име, бил развиен во 1960 година од страна на повеќе национални групи. Тој настанал само неколку години по програмскиот јазик Fortran. При создавањето на овој јазик било посветено големо внимание на неговата синтакса, модуларната структура и многу други нешта за кои денес се смета дека се современи и полезни. За жал, овој програмски јазик не бил никогаш општо прифатен од програмерите, веројатно поради неговата преголема генералност, апстрактност и опширност.

Во 1963 година на универзитетот во Кембриџ развиен е програмски јазик CPL (Combined Programming Language). Овој јазик претставува обид програмскиот јазик Algol 60 да се поедностави и доведе до разумна мера. Но и овој програмски јазик бил преопширен и пресложен, па како таков и тежок за учење и примена.

Martin Richards исто така од Кембриџ, во 1967 година го создал јазикот BCPL (Basic Combined Programming Language). При тоа, поедноставувајќи го програмскиот јазик CPL, се обидел да дојде до поедноставен и применлив програмски јазик. Овој програмски јазик е сличен на макроасемблерите и се нашол во примена на повеќе компјутери меѓу кои и на некои микрокомпјутери (BBC и Sincler QL). Натамошното поедноставување на овој програмски јазик било направено од Кен Томсон (Ken Thompson). Тој работел во лабараториите на Bell на имплементација на разните верзии на оперативниот систем Unix. За таа цел, Томсон го создал програмскиот јазик Б во 1970 година. Јазикот Б претставува натамошно поедноставување на програмскиот јазик BCPL. Тој бил применет за реализација на првиот Unix оперативен систем на компјутерот PDP-7.

Поедноставувањето на овие програмски јазици довело до тоа тие да личат на макро асемблери и да бидат употребливи само за ограничен број примени. Затоа, Денис Ричи се обидел да ја поврати изгубената генералност кај овие програмски јазици, конструирајќи го програмскиот јазик C во 1972 година.

Според тоа, генеологијата на програмскиот јазик C е следнава: Algol 60 > CPL > BCPL > B > C.

Конструкција

Програмскиот јазик C бил конструиран првенствено за потребите на развој и пренос на оперативниот систем Unix од еден вид компјутер на друг. Овој оперативен систем бил напишан во асемблер за PDP 11, а Денис Ричи го преобработил неговото јадро (kernel) со помош на програмскиот јазик C. На тој начин оперативниот систем станал полесно пренослив на други компјутери.

Програмскиот јазик C не бил посебно популаризиран од никого. Тој самиот се наметнал меѓу програмерите без никакво рекламирање, така што и самиот автор бил изненаден кога видел колку неговиот јазик станал популарен.

Од PDP 11 C се проширил на мини компјутерите, а потоа и на микро компјутерите. Тој е основно орудие на многу познати програмерски куќи како што сe: Ashton Tate, Microsoft, Digital Research, DEC, AT&T итн.

Преносливоста на C, за која многу се зборува, е реалност на ниво на пренос на програми што инаку би се пренесувале како асемблерски програми. За апликативни програми преносливоста на јазиците, како што се Паскал (Pascal) и Fortran е поголема поради големиот степен на нивната стандардизација.

Искористување

Јазикот C ја поседува компактноста карактеристична за програмските јазици конструирани од еден човек. Такви програмски јазици се веќе споменатите B и BCPL и програмските јазици како Паскал, Lisp, APL и други. За разлика од нив програмските јазици што се конструирани од страна на тимови со повеќе автори како што се PL/1, ADA, Algol 60 и други, не се компактни и често пати се пресложени. C е програмски јазик за општа намена и со него можат да се пишуваат најразлични видови програми. Сепак, може да се каже дека неговите можности најмногу доаѓаат до израз при пишување на системски софтвер, што и била неговата првенствена намена, а и специјалноста на неговиот творец.

Во однос на големината, C е екстремно мал програмски јазик. Бројот на клучни зборови (keyword) во C изнесува 32 (28 според првичниот незваничен стандард од книгата на Ричи и Кернихам и дополнителни 4 кои се внесени во ANSI стандардот за C). За разлика од C, IBM-овиот Basic, кој се смета за едноставен програмски јазик има 159 клучни зборови.

Краток опис на синтаксата

Клучни зборови во C според стандардот ANSI се: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while ... Програмскиот јазик C е case sensitive односно тој прави разлика помеѓу малите и големите букви. While не е исто што и while.

И во двете верзии може да се забележи дека C ги содржи само основните наредби и дека нема вградени влезно-излезни (I/O) наредби и наредби за ракување со низи знакови. Философијата на C е таква што сите посложени наредби се реализираат со помош на основните наредби и како функции (function) се чуваат во таканаречените библиотеки на функции (function libraries). Со секој преведувач на C (C compiler) се испорачуваат и повеќе библиотеки со разни видови функции.

Програмите во C се состојат од низи блокови кои се организираат како функции. Според тоа, пишувањето на програмите се сведува на пишување поедини функции и нивно вклопување. При тоа, сите функции се рамноправни со тоа што една мора да го има името main(). Тоа е функцијата од која отпочнува програмата.

Читањето на програмите во C е тешко и на прв поглед тие се прилично неразбирливи за почетниците. Тоа е поради големиот број оператори кои се присутни како резултат на тенденцијата за блискост со асемблерот.

Покрај другото, моќта на C е и во овозможување на работа со покажувачи. Покажувачите, најпросто речено, соодветстуваат со мемориски адреси. Многу машински инструкции работат директно со реалните мемориски адреси, па примената на покажувачите овозможува ефикасно преведени програми.

Пример на C код

  #include <stdio.h>
 
  int main (int argc, char **argv) {
        int a, i;
	
	a = 0;
        for(i=1; i<=100; i++)
		a+=i;
		
	printf("Sumata na broevite od 1 do 100 e: %d\n", a);

	return 0;
}

Врски