C (programlingvo): Malsamoj inter versioj

[kontrolita revizio][kontrolita revizio]
Enhavo forigita Enhavo aldonita
Linio 27:
Ne ĉiuj el tiuj ecoj estas garantiitaj de la diversaj C-normoj. Ekzemple, la antaŭtraktilo CPP estas ĝenerale aparta programo, kio permesas, ke dosieroj antaŭtraktiĝu, sen tio ke ili estu plene tradukitaj. Tamen, la plejparto da realigoj de C havas ĉi tiujn ecojn, kaj la komunumo de C-programistoj atendas, ke ili ĉeestu.
 
Kvankam C estas meznivela programlingvo, ĝi havas similaĵojn kun [[asembla programlingvolingvo]] kaj estas malpli altnivela ol multaj aliaj programlingvoj. Plej elstare, la programisto devas 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 en eraraj operacioj pri memoro, ekz. bufraj trooj (transbordiĝoj). Oni jam verkis ilojn por eviti ĉi tiajn erarojn, i. a. bibliotekojn por kontroli la limojn de tabeloj kaj por senrubigo kaj la programon ''lint'' por kontroli fontan kodon.
 
Kelkajn el la «mankoj» de C jam prizorgas pli novaj programlingvoj devenantaj 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 memoradministrado.