C (програмски јазик): Разлика помеѓу преработките

Од Википедија — слободната енциклопедија
[проверена преработка][проверена преработка]
Избришана содржина Додадена содржина
с r2.7.1) (Робот: Додава war:C (linggwahe hin pagprograma)
статијава беше хаос (0/10) , сеуште не е во добра состојба(5/10) , но барем содржи наводи , мултимедија и параграфи(срамота е да нема!)
Ред 1: Ред 1:
{{внимание}}
{{внимание}}
{{Без извори|датум=октомври 2009}}
{{Без извори|датум=октомври 2009}}
{{Infobox programming language
| name = C
| paradigm = структуриран , процедурален
| logo = [[File:The C Programming Language 1st edition cover.jpg|200px|alt=Корица на "The C Programming Language".]]
| caption = корица на "The C Programming Language"
| year = 1972<ref name="dottcl_2">{{cite web |url=http://cm.bell-labs.com/cm/cs/who/dmr/chist.html |title=The Development of the C Language|quote=Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort. |author=Dennis M. Ritchie|year=1993 |month=јануари |accessdate=1 јануари 2008}}</ref>
| designer = [[Денис Ричи]]
| developer = Денис Ричи и Bell Laboratories
| latest release version = C11
| latest release date = декември 2011
| turing-complete = да
| implementations = [[Clang]], [[GNU Compiler Collection|GCC]], [[Intel C++ Compiler|Intel C]], [[MSVC]], [[Pelles C]], [[Watcom C compiler|Watcom C]]
| influenced_by = [[B (programming language)|B]] ([[BCPL]], [[Combined Programming Language|CPL]]), [[ALGOL 68]],<ref name="dottcl">{{cite web |url=http://cm.bell-labs.com/cm/cs/who/dmr/chist.html |title=The Development of the C Language|quote=The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. |author=Dennis M. Ritchie|year=1993 |month=јануари |accessdate=1 јануари 2008}}</ref> [[Assembly language|Assembly]], [[PL/I]], [[FORTRAN]]
| influenced = [[AMPL]], [[AWK]], [[C shell|csh]], [[C++]], [[C--]], [[C Sharp (programming language)|C#]], [[Objective-C]], [[BitC]], [[D (programming language)|D]], [[Go (programming language)|Go]], [[Java (programming language)|Java]], [[JavaScript]], [[Limbo (programming language)|Limbo]], [[LPC (programming language)|LPC]], [[Perl]], [[PHP]], [[Pike (programming language)|Pike]], [[Processing (programming language)|Processing]], [[Seed7]]
}}
'''Програмскиот јазик Ц (C)''' е релативно нов програмски јазик. Тој е програмски јазик кој ги одбележа осумдесеттите и деведесеттите години на минатиот век. Ц е најраширен програмски јазик на светот. Тој е едноставен и елегантен програмски јазик кој ја пополнува празнината меѓу вишите програмски јазици и асемблерите (assembler) бидејќи ги комбинира особеностите на вишите програмски јазици со функционалноста на асемблерите. Поради тоа Ц можеме да го наречеме јазик што ги обединува својствата и на вишите програмски јазици и на асемблерите.
'''Програмскиот јазик Ц (C)''' е релативно нов програмски јазик. Тој е програмски јазик кој ги одбележа осумдесеттите и деведесеттите години на минатиот век. Ц е најраширен програмски јазик на светот. Тој е едноставен и елегантен програмски јазик кој ја пополнува празнината меѓу вишите програмски јазици и асемблерите (assembler) бидејќи ги комбинира особеностите на вишите програмски јазици со функционалноста на асемблерите. Поради тоа Ц можеме да го наречеме јазик што ги обединува својствата и на вишите програмски јазици и на асемблерите.


Ред 7: Ред 22:
Генеологијата на програмскиот јазик Ц е следнава. Како и за сите други структуирани програмски јазици, така и за програмскиот јазик Ц може да се каже дека негов најдалечен предок е програмскиот јазик ALGOL 60. ALGOL-от 60, како што кажува и неговото име, бил развиен во 1960 година од страна на повеќе национални групи. Тој настанал само неколку години по програмскиот јазик FORTRAN. При создавањето на овој јазик било посветено големо внимание на неговата синтакса, модуларната структура и многу други нешта за кои денес се смета дека се современи и полезни. За жал, овој програмски јазик не бил никогаш општо прифатен од програмерите, веројатно поради неговата преголема генералност, апстрактност и опширност.
Генеологијата на програмскиот јазик Ц е следнава. Како и за сите други структуирани програмски јазици, така и за програмскиот јазик Ц може да се каже дека негов најдалечен предок е програмскиот јазик ALGOL 60. ALGOL-от 60, како што кажува и неговото име, бил развиен во 1960 година од страна на повеќе национални групи. Тој настанал само неколку години по програмскиот јазик FORTRAN. При создавањето на овој јазик било посветено големо внимание на неговата синтакса, модуларната структура и многу други нешта за кои денес се смета дека се современи и полезни. За жал, овој програмски јазик не бил никогаш општо прифатен од програмерите, веројатно поради неговата преголема генералност, апстрактност и опширност.


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


Ред 15: Ред 32:


Според тоа, генеологијата на програмскиот јазик Ц е следнава: '''ALGOL 60 > CPL > BCPL > B > C.'''
Според тоа, генеологијата на програмскиот јазик Ц е следнава: '''ALGOL 60 > CPL > BCPL > B > C.'''
=== Понатамошно развивање ===

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


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


== Карактеристики ==
Преносливоста на Ц, за која многу се зборува, е реалност на ниво на пренос на програми што инаку би се пренесувале како асемблерски програми. За апликативни програми преносливоста на јазиците, како што се [[Паскал]] (Pascal) и FORTRAN е поголема поради големиот степен на нивната стандардизација.
Преносливоста на Ц, за која многу се зборува, е реалност на ниво на пренос на програми што инаку би се пренесувале како асемблерски програми. За апликативни програми преносливоста на јазиците, како што се [[Паскал]] (Pascal) и FORTRAN е поголема поради големиот степен на нивната стандардизација. <ref>[[http://catb.org/esr/writings/taoup/html/ch04s02.html Компактност на C и Python; "Among general-purpose programming languages, C and Python are semi-compact;"]]</ref>


Јазикот Ц ја поседува компактноста карактеристична за програмските јазици конструирани од еден човек. Такви програмски јазици се веќе споменатите B и BCPL и програмските јазици како [[Паскал]], Lisp, APL и други. За разлика од нив програмските јазици што се конструирани од страна на тимови со повеќе автори како што се PL/1, ADA, ALGOL 60 и други, не се компактни и често пати се пресложени.
Јазикот Ц ја поседува компактноста карактеристична за програмските јазици конструирани од еден човек. Такви програмски јазици се веќе споменатите B и BCPL и програмските јазици како [[Паскал]], Lisp, APL и други. За разлика од нив програмските јазици што се конструирани од страна на тимови со повеќе автори како што се PL/1, ADA, ALGOL 60 и други, не се компактни и често пати се пресложени.
Ред 31: Ред 49:
Клучни зборови во Ц според стандардот 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 ...''' Програмскиот јазик Ц е '''case sensitive''' односно тој прави разлика помеѓу малите и големите букви. '''While''' не е исто што и '''while'''.
Клучни зборови во Ц според стандардот 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 ...''' Програмскиот јазик Ц е '''case sensitive''' односно тој прави разлика помеѓу малите и големите букви. '''While''' не е исто што и '''while'''.


И во двете верзии може да се забележи дека Ц ги содржи само основните наредби и дека нема вградени влезно-излезни (I/O) наредби и наредби за ракување со низи знакови. Философијата на Ц е таква што сите посложени наредби се реализираат со помош на основните наредби и како функции (fuction) се чуваат во таканаречените библиотеки на функции (function library). Со секој преведувач на Ц (C compiler) се испорачуваат и повеќе библиотеки на разни видови функции.
И во двете верзии може да се забележи дека Ц ги содржи само основните наредби и дека нема вградени влезно-излезни (I/O) наредби <ref>Like many other programming languages, C programs read in (input) or write out (output) characters: [http://pages.cs.wisc.edu/~markhill/cs354/Fall2008/notes/C.io.html C I/O функции]</ref> и наредби за ракување со низи знакови. Философијата на Ц е таква што сите посложени наредби се реализираат со помош на основните наредби и како функции (fuction) се чуваат во таканаречените библиотеки на функции (function library). Со секој преведувач на Ц (C compiler) се испорачуваат и повеќе библиотеки на разни видови функции.


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


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

== Наводи ==
{{наводи}}
{{Програмски јазици}}


[[Категорија:Програмски јазици]]
[[Категорија:Програмски јазици]]

Преработка од 11:51, 24 јули 2012

C
Корица на "The C Programming Language".
Парадигма:структуриран , процедурален
Прво појавување:1972[1]
Дизајнирано од:Денис Ричи
Развивач:Денис Ричи и Bell Laboratories
Главни имплеметации:Clang, GCC, Intel C, MSVC, Pelles C, Watcom C
Под влијание на:B (BCPL, CPL), ALGOL 68,[2] Assembly, PL/I, FORTRAN
Влијае на:AMPL, AWK, csh, C++, C--, C#, Objective-C, BitC, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Pike, Processing, Seed7

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

За творец на овој програмски јазик се смета Денис Ричи (Dennis Ritchie) од Bell-овите лабаратории на АТ&Т. Тој заедно со Кен Нортон (Ken Northon) работел на дизајнирање на првичните верзии на оперативниот систем ЈУНИКС (UNIX) и го имплементира на PDP 11. Во 1978 година Брајан Кернихан (Brian Kernighan) и Денис Ричи ја издале првата книга за програмскиот јазик Ц. Оваа книга служела како референтна книга за јазикот се до појавата на првиот ANSI стандард за Ц, десетина години подоцна.

Генеологијата на програмскиот јазик Ц е следнава. Како и за сите други структуирани програмски јазици, така и за програмскиот јазик Ц може да се каже дека негов најдалечен предок е програмскиот јазик 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 на имплементација на разните верзии на оперативниот систем ЈУНИКС. За таа цел, Томсон го создал програмскиот јазик Б во 1970 година. Јазикот Б претставува натамошно поедноставување на програмскиот јазик BCPL. Тој бил применет за реализација на првиот ЈУНИКС оперативен систем на компјутерот PDP-7.

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

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

Понатамошно развивање

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

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

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

Карактеристики

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

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

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

Клучни зборови во Ц според стандардот 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 ... Програмскиот јазик Ц е case sensitive односно тој прави разлика помеѓу малите и големите букви. While не е исто што и while.

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

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

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

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

Наводи

  1. Dennis M. Ritchie (1993). „The Development of the C Language“. Посетено на 1 јануари 2008. Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort. Занемарен непознатиот параметар |month= (help)
  2. Dennis M. Ritchie (1993). „The Development of the C Language“. Посетено на 1 јануари 2008. The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. Занемарен непознатиот параметар |month= (help)
  3. [Компактност на C и Python; "Among general-purpose programming languages, C and Python are semi-compact;"]
  4. Like many other programming languages, C programs read in (input) or write out (output) characters: C I/O функции


Програмски јазици
Ada | ALGOL | APL | Асемблер | AWK | BASIC | C | C++ | C# | COBOL | ColdFusion | Common Lisp | Delphi | Eiffel | Focus | Forth | FORTRAN | Haskell | IDL | Java | JavaScript | Limbo | Lisp | Lua | Modula 2 | Objective C | OCaml | Pascal | Perl | PHP | Prolog | Python | Ruby | SAS | Scheme | Smalltalk | SQL | Tcl | Visual Basic