C (programovací jazyk)
C, italsky "sí", je jazyk, ve kterém je naprogramován vesmír, smysl života a vůbec.
Když se našinec rozhlédne po světě kolem sebe - na všechen ten bordel a nelogičnost - nemůže se ubránit dojmu, že byl napsán v Javascriptu. Zejména po interakci se ženami je si tím pak téměř jist. Ale chyba lávky - svět byl napsán v Céčku, jak se jazyku C familiérně říká. Ano, Velký smrsk, základní mechanika oběžných drah, erupce na Slunci a podobné věcičky jsou napsané ještě v Assembleru, ale všechna ta pozlátka, děje, návaznosti i apokalypsa jsou už v Céčku. Uvážíme-li, že byl celý vesmír napsán za šest dnů a testování probíhalo jako vždycky až poslední den před releasem - jedná se vskutku o Boží jazyk.
Historie[editovat | editovat zdroj]
Céčko má dlouhou historii. Nepočítáme-li hardcore programování v Assembleru a vypichování děrných pásek nožíkem za svitu svíček, je Céčko nejstarší použitelný jazyk. V dobách první konjunkce sfér, tedy v druhém věku se spojili dva temní mágové - Dennis Ritchie a Ken Thompson a pod vlivem čarovného bejlí Ponikelské báby stvořili opravdovou magii, kterou uzavřeli do grimoáru "C for dummies". Tento Necronomicon od té doby lačně hltali druidové při stavbě Stonehenge a kadidlem sjetí knězi v Egyptě při stavbě pyramid, aby byly uvnitř broušené žiletky co nejostřejší. Pro svou moc a schopnost manipulovat s matérií Všehomíra na nejnižší úrovni je vyhledáváno mystiky, čaroději a mágy dodnes[1].
„S velkou mocí příchází velký průser.“
- varování Dennise Ritchieho v předmluvě Necronomiconu
Ovšem Céčko neusnulo na bobkovém listu a dál se vyvíjelo, jak se na prastarou a mocnou magii sluší. V temném středověku se jeho moc pokoušeli spoutat alchymisté při stavbě prvního pražského humanoidního robota. Díky špatně ošetřeným pointerům a chybě v alokaci bufferu ovladače emočního centra však Golem ničil a bořil a musel být poté degradován na troubu v pekárně[2]. Nebylo tedy, než slibně se rozvíjející průmyslovou revoluci, nástup automatizace a z ní vycházející blahobyt o pár set let odložit.
Do jazyku postupně přispívaly i velké osobnosti tehdejšího života - například Rakousko-Uherský maďar Ferenc Liszt, který přidal funkcionalitu linked-listů (tedy levicových listů) funkcí list(), protože věřil, že Céčko je tu pro všechny. Ale snad i díky této pošetilosti stvořili svá největší díla Beethoven a Bedřich Smetana právě v Céčku a i z tohoto důvodu mnoho lidí začíná právě Céčkem - např. Pražské metro v lednu 1966 se svou trasou Florenc-Kačerov.
Magie[editovat | editovat zdroj]
Aby kouzlo v Céčku zafungovalo, je třeba vyvolat pomocné démony. Prvním takovým je Linker, který srovná roztříštěná zaříkadla do latě tak, aby v nich nebyl guláš. Největším výrobcem linkerů je samozřejmě německé konsorcium Die Linke a proto to tak taky vypadá. Následuje kompiler, který z písmenek a čísel udělá úplně jiná čísla. Vyšší démon GCC nebo jeho mladší zástupce Clang poté zapsaná zaklínadla přetaví ve funkční kouzlo. Následuje vyvolávání démona Make, nejlépe s démonem Clean, který funguje jako uklízečka.
„SEGFAULT přichází!“
- proroctví v kapitole příhodně nazvané Pointer Hell
Byly-li splněny všechny požadované podmínky, správně obětována černá slepice a odříkáná správná zaříkadla, mělo by být hotovo. Zde je ovšem třeba podotknout, že démoni jsou povahy vrtošivé a nepřejícné a kdykoli je to možné, mažika potrápí. To je důvod, proč většina programátorů v Céčku smaží cukr ve velkém prakticky celý den, nikotin si aplikuje prakticky nitrožilně, z návalů vzteku má řídnoucí vlasy, na čele mozol od zdi a spotřebu dvou myší za týden. Opravdu dobrého Céčkového programátora pak poznáte podle těkavého pohledu a okousaných nehtů. Na nohách.
Ukázka[editovat | editovat zdroj]
Protože obrázek vydá za tisíc slov, vypíšeme si program pro začátečníky, kteří se snaží pochopit funkci pointerů:
#include <stdio.h> int main() { printf("Goodbye, cruel world!"); return 0; }
Samozřejmě, tato počáteční frustrace brzo přejde. Céčko je velmi snadné se naučit a zanedlouho dokážete napsat program Hello World stejně elegantně, jako na následující ukázce:
#include "stdio.h" #define e 3 #define g (e/e) #define h ((g+e)/2) #define f (e-g-h) #define j (e*e-g) #define k (j-h) #define l(x) tab2[x]/h #define m(n,a) ((n&(a))==(a)) long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L }; int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 }; main(m1,s) char *s; { int a,b,c,d,o[k],n=(int)s; if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); } else switch(m1-=h){ case f: a=(b=(c=(d=g)<<g)<<g)<<g; return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d)); case h: for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a); case g: if(n<h)return(g); if(n<j){n-=g;c='D';o[f]=h;o[g]=f;} else{c='\r'-'\b';n-=j-g;o[f]=o[g]=g;} if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c; return(o[b-g]%n+k-h); default: if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f; for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1); } }
Případně budete moci spočítat Rudolfovo číslo jako profík pomocí následujícho kódu:
#define _ F-->00 || F-OO--; long F=00,OO=00; main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_ }
Je na bíledni, že se jedná o velmi jednoduchý jazyk s čistým zápisem. A není se čeho bát. Vážně.
Dialekty jazyka C[editovat | editovat zdroj]
- Hante-C - Vznikl na slavné brněnské Mengelově univerzitě. Když se podařilo konečně dotáhnout kompiler do funkčního stavu, byli z toho celí PEF a to jim zůstalo. Používá některé typické konstrukty - namísto void má džuzna a namísto klasického printf má hlaš. Krásný jazyk a stejně autentický, jako je brněnský drak.
- Tepli-C - Varianta jazyka specializovaná na firmware rychlovarných konvic, bojlerů a radiátorů. Velmi užitečné, velmi pokrokové. Uvažuje se o exportu do méně vyspělých zemí.
- Buděj-C - Jedná se experimentální variantu, specializovanou na prototypování a tvorbu. V alfa verzi, stejně jako místní kultura. Výhodou je snad jen slogan jejich kampaně na Instagramu "V Buděj-C by chtěl programovat každý", který je chytlavý a to na dnešní omladinu dost platí.
- 13370m3Ř1-C - Leetspíková varianta pro opravdové nerdy. Byla vymyšlena k zaměstnání mozků v Litoměřické vazební věznici, aby jim muklové nedělali na chodbách bordel a neměli čas se dohadovat s bachaři.
- C-yp - Ezoterická varianta z Ostravy, stále nedokončená. Místní učenci z nějakého pochybného důvodu dali přednost Javě a zrobili jazyk OSTRAJava, který se kupodivu uchytil a od té doby si kdejaký haviř může na šachtě něco naprogramovat.
![]() |
Počítače: Abakus • Acer • Apple • Barbie PC • CMEU • Dell • Detektor lži • Elektronika 666 • HP • Intel • Klapkobřinkostroj • Lenovo • Nový Jeruzalém • Računik-R • Turingův stroj • Ural 2 |