Prečo programujeme v C-jazykoch?

Či už píšeme programy v jazyku C++, C#, Java a iných jazykoch založených na C (jedna prípustná syntax v PHP je podobná C, ale v PHP sa neprogramuje), nie je problém prečítať kód napísaný v inom C-style jazyku (i keď pochopenie je už ťažšie :-)). Prečo však bol jazyk C pomenovaný týmto písmeno a nie iným?

Jazykom, ktorý mal na históriu programovacích jazykov veľmi veľký vplyv bol ALGOL (algorithmic language) z roku 1958. Populárnym sa stal v roku 1960 po vzniku jednoduchšej varianty ALGOL-60. Jazyk bol portovateľný, s nízkou abstrakciou hardware a vyvinutý pre písanie algoritmov. ALGOL-68 pridal do jazyka nové vlastnosti, ale zvýšil jeho komplexnosť a abstrakciu hardwaru.

Roku 1963 Compoter Lab of Cambridge University prišiel s jazykom CPL. CPL bol založený na ALGOL-e, znižoval abstrakciu HW, ale zachovala sa v ňom komplexnosť ALGOL-u. Martin Richards navrhol Basic CPL (BCPL), ktorý bol okresanou verziou CPL. Tento jazyk ešte zlepšil Ken Thompson z Bell Labs svojím B jazykom.

Jazyk B bol oveľa vhodnejší na systémové programovanie, jednoduchší a rýchlejší. Jeho nástupca, C, vyšiel z Bell Labs roku 1972. So zachovaním jednoduchosti priniesol nový jazyk vyššiu abstrakciu hardware ako jeho predchodca.Pôvodne určený jazyk pre UNIXové systémy sa stal univerzálne použiteľný programovací jazyk.

Samostatne od procedurálnych programovacích jazykov bol navrhnutý jazyk na tvorbu simulácií ? Simula, vyvinul sa však na univerzálny objektovo orientovaný jazyk. Priniesol hlavné koncepty OPP: triedy, dedičnosť, dynamické väzby.

Kombináciou C a Simula vznikol priamy nástupca C ? C++ (1983) s novými vlastnosťami ako šablóny alebo výnimky.

0 thoughts on “Prečo programujeme v C-jazykoch?

  • Já si sebe moc nedokážu představit psát v ne-Céčkových jazycích. Mi se ten styl líbí a sedí mi. Když vidím dneska např. Ruby a spol. tak by mi chvilku trvalo, než bych kód rozluštil.

    Sice mě pak ty menší rozdíly mezi C#, C++/C, nebo chybějící věci v PHP občas vytočí.. ale aspoň je na výběr.

  • Velice poučné a zajímavé, ačkoliv v žádném podobném jazyku neprogramuju.

    Jen by mě zajímalo, co si mám představit pod „abstrakciou“ hardware?

  • Abstrakcia HW: teraz cez cout vypisujem čo chcem a či to ide na konzolu, error log, TCP/IP listener, terminál… je mi jedno. Proste cez všeobecný stream robím s každým výstupom rovnako.

    Bez abstrakcie treba pristupovať k danému prostriedku natívne: pri písaní do error logu si otvoriť súbor a začať písať. Pri termináli napr. sa pripojiť na COM port a vysielať text.

  • No me to vysvetlovali trochu lepsi.

    Abstrakce je treba graficky ovladac, reknes mu nakresli na vystup ctverec. A on to udela.

    Bez tohoto ovladace by si musel ovladat grafiku, praci s pameti atd.

Comments are closed.