C (programlingvo): Malsamoj inter versioj

[nekontrolita versio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
komputillingvo -> programlingvo
Linio 10:
|influis = [[C++]], [[Java (programlingvo)|Java]]
}}
'''C''' estas komputila [[programlingvo]] kreita de [[Dennis Ritchie]] dum la fruaj 1970-aj jaroj por verki la operaciumon [[Unikso]]. Ĝi restas la plej vaste uzata lingvo por verki operaciumojn kaj sisteman programaron. Ĝi estas ankaŭ ofte uzata por verki aplikaĵojn, kvankam ĝia populareco en tiu fako jam malpliiĝis pro pli novaj komputillingvojprogramlingvoj, ekz. siaj propraj heredantoj [[C Plus Plus|C++]] kaj [[Java (programlingvo)|Java]].
 
== Propraĵoj ==
 
C estas meznivela komputillingvoprogramlingvo, kio signifas, ke la fonta kodo de programo povas esti tajpita sen detala kono de la [[CPU]]-speco de la komputilo. Antaŭ ol oni povas uzi la programon, la fonta kodo devas esti tradukita al la necesa maŝinkodo per tradukilo. Kontraste, programoj verkitaj en simbola maŝinkodo (malaltnivela) povas esti plenumitaj nur per unu speco de CPU. Kontraste kun altnivelaj programlingvoj, C devigas la programiston okupiĝi pri la asignadon kaj malasignadon de memoro.
 
La kernaj ecoj de C estas:
Linio 27:
Iuj el ĉi tiuj ecoj ne estas garantiitaj de la diversaj C-normoj. Ekzemple, la C-antaŭtraktilo estas ĝenerale aparta programo, kio permesas, ke dosieroj antaŭtraktiĝu, sen tio ke ili devas esti plene tradukitaj. Tamen, la plejparto de realigoj de C havas ĉi tiujn ecojn, kaj la komunumo de C-programistoj atendas, ke ili ĉeestu.
 
Kvankam C estas meznivela komputillingvoprogramlingvo, ĝi dividas similaĵojn kun [[asembla komputillingvoprogramlingvo]] kaj estas malpli altnivela ol la plejparto de aliaj komputillingvojprogramlingvoj. Plej elstare, la programisto povas prizorgi la enhavojn de memoro: defaŭlte, C donas neniujn ilojn por kontroli la limojn de tabeloj kaj por aŭtomata [[senrubigilo|senrubigo]]. Libera prizorgado de memoro donas al la programisto pli da libereco por ĝustigi la kvalitojn de programo, kio estas aparte grava por programoj kiel peliloj. Tamen, tio ankaŭ faciligas la aperon de cimoj fontantaj el eraraj operacioj je memoro, ekz. bufraj trofluoj (transbordiĝoj). Oni jam verkis ilojn por eviti ĉi tiajn erarojn, i.a. bibliotekojn por kontroli la limojn de tabeloj kaj por rubkolekto, kaj la programon ''lint'' por kontroli fontan kodon.
 
Kelkaj el la "mankoj" de C jam estis prizorgitaj de pli novaj komputillingvojprogramlingvoj, kiuj heredas de C. La programlingvo [[Cyclone (programlingvo)|Cyclone]] havas ilojn por gardi kontraŭ eraraj uzoj de memoro. C++ kaj [[Objective C]] donas ilojn celitajn por helpi objekteman programadon. Java kaj [[C dieso (programlingvo)|C#]] aldonas objektemajn ilojn kaj ankaŭ pli altan nivelon de abstrakteco, ekz. per aŭtomata prizorgado de memoro.
 
== Historio ==
Linio 35:
La komenca prilaboro de C okazis inter 1969 kaj 1973 (laŭ Ritchie, la plej kreema periodo estis dum 1972). Ĝi nomiĝis "C", ĉar multaj propraĵoj devenas de pli frua lingvo kiu nomiĝis [[B (programlingvo)|B]].
 
Antaŭ 1973, la komputillingvoprogramlingvo C estis fariĝinta sufiĉe kapabla, kaj pro tio la plejparto de la kerno de la operaciumo [[Unikso]] estis reverkita per C. Ĉi tio estis la unua fojo, ke la kerno de operaciumo estis implementita en lingvo pli altnivela ol asembla lingvo. En 1978, Ritchie kaj [[Brian Kernighan]] eldonis la libron ''The C Programming Language'' (ankaŭ konata kiel "la blanka libro", aŭ K&R.) Dum multaj jaroj, ĉi tiu libro servis kiel la normo de la lingvo; eĉ hodiaŭ, ĝi estas tre populara kiel referenco kaj lernilo.
 
C fariĝis tre ege populara ekster Bell Labs dum la 1980-aj jaroj, kaj ĝi estis dum iom da tempo la ĉefa lingvo en programado de aplikaĵoj. Estas ankaŭ la plej uzata lingvo en programado de sistemoj, kaj estas unu el la plej ofte uzataj lingvoj en komputila edukado.
 
En la malfruaj 1980-aj jaroj, [[Bjarne Stroustrup]] kaj aliaj ĉe Bell Labs laboris por aldoni [[objektema programo|objektemajn]] ilojn al C. La rezulta lingvo nomiĝas [[C Plus Plus|C++]]. C++ estas nun la komputillingvoprogramlingvo plej uzata por komercaj aplikaĵoj ĉe la operaciumo [[Vindozo]]. Tamen, C restas pli populara en la Uniksa mondo. La plejparto de Linuksa sistemo, inkluzive de la kerno, estas verkita en C.
 
== Versioj de C ==
Linio 60:
En 1989, C estis unuafoje oficiale normigita de [[ANSI]] en ANSI X3.159-1989 "Programming Language C". Unu el la celoj de la ANSI-C-normigado estis produkti superaron de K&R-C. Tamen, la normigaj komitatoj ankaŭ enmetis kelkajn novajn ilojn, pli ol estas normale en komputillingva normigo.
 
Iuj el la novaj iloj estis "neoficiale" aldonitaj al la komputillingvoprogramlingvo post la eldono de K&R, sed antaŭ la komenco de la ANSI-C-normigo, ekz.:
 
* funkcioj kun rezulto <code>void</code>
Linio 74:
=== C99 ===
 
Post la ANSI-normigado, la C-lingva normo restis relative stabila dum iom da tempo, kvankam C++ daŭre evoluis. (Fakte ''Normative Amendment 1'' kreis novan version de la komputillingvoprogramlingvo C en 1995, sed ĉi tiu versio estas malofte agnoskata.) Tamen, la normo estis reviziita en la malfruaj 1990-aj jaroj, kio rezultis en ISO 9899:1999, eldonita en 1999. Ĉi tiu normo estas kutime nomita "C99".
 
La novaj ecoj aldonitaj al C99 estas inter alia: