• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: Profiler to zkusí odhadnout, benchmark ale má poslední slovo (nebo ty budeš věřit profileru i když benchmark dopadne nečekaně jinak? :-)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Profiler.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: to, co mělo či nemělo smysl optimalizovat, to rozhodně až benchmark. ne ty.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tos argument presunul z "dnes nekdo motivaci" na "jednou to tak bude". A ne, nemluvim o "blokovych" instrukcich, at je to co je to (predpokladam ze myslis SSE, asi).

    PS: Kvuli optimalizacim se ti smeju ne ze chces neco optimalizovat, ale ze naprosto nedokazes rozlisovat mezi tim co optimalizovat ma a nema smysl, jak to poznat a proc je to zajimavy.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: s tím, že když jsem tu optimalizace obhajoval, tak byli všichni proti mě. teď jsou taky všichni proti mě :-)

    v podstatě ale to, o čem mluvíš ty, je použití speciálních, např. blokových instrukcí, ke kterým (obvykle) C nenabídne žádné API... (i když třeba předsdtava, že konkrétní implementace memcpy() na konkrétní platformě bude vždy rychlejší, než nějaká smyčka ne přesejpání bajtů, je taky zajímavá...)

    obecně ale k téhle speciální blokové instrukci ti může poskytnout API i vyšší jazyk... a jsme obloukem u toho: o C se v nějaký moment nebudou zajímat lidi se zájmem o optimalizaci výkonu, ale budou se o to zajímat lidi, které zajímá "jak to funguje uvnitř": samozřejmě tam bude velké procento hackerů, které budou zajímat hlavně nějaké ty buffer overruny a stack injectiony apod....
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tenhle nazor:
    "Dnešní počítače jsou z hlediska výkonu obrovský overkill... a navíc třeba pro akaceleraci grafiky se už dávno používají naprosto jiné postupy... takže třeba já v první řadě nedokážu pochopit, jakou má dnes někdo motivaci učit se C."

    A o grafice (dneska) vis, i dle vlastnich slov, kulovy, takze s cim presne nesouhlasis?
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: jakej tohle hlásá názor? bez ohledu na to, jaký názor budu hlásat, se stejně najde někdo, kdo proti němu bude v opozici :-)

    já hlavně popírám, že bych o tom "věděl kulový": prostě něco jsem někdy naprogramoval, něco o programování tuším - a možná sem tam v něčem víc, než jen lidi, co se prostě naučili recyklovat už hotový knihovny, naučili se API a dál to neřeší. a podle mě opakem "vědět kulový" rozhodně není "vědět všechno" - ale právě ono "něco trochu tušit".
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: jakej tohle hlásá názor? bez ohledu na to, jaký názor budu hlásat, se stejně najde někdo, kdo proti němu bude v opozici :-)

    já hlavně popírám, že bych o tom "věděl kulový": prostě něco jsem někdy naprogramoval, něco o programování tuším - a možná sem tam v něčem víc, než jen lidi, co se prostě naučili recyklovat už hotový knihovny, naučili se API a dál to neřeší. a podle mě opakem "vědět kulový" rozhodně není "vědět všechno" - ale právě ono "něco trochu tušit".
    ANT_39
    ANT_39 --- ---
    ALMAD: Z podobneho soudku je Carmackova keynote z 2012 QuakeConu. Ma to pres tri hodiny, a tak polovina toho je specificky o VR. Doufal jsem, ze tam bude i neco o obecnem programovani (v drivejsich letech mluvil o funkcionalnim programovani a staticke analyze), ale moc toho nerekl.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: To je takova klasicka xchaosovska odpoved. Vis o tom kulovy, ale nazor hlasat budes. Bottom line, nemas pravdu.

    Mikrooptimalizace jsou nesmyslny pro tvoje weboviny, kde ti to Amdahl pozere.
    Maj smysl pro 3Dcko, ktery je v mnoha pripadech takrka na urovni kernel benchmarku.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: hmm, asi jo. já už delší čas žádnou grafiku nedělal, protože jsem se zaměřil na Linux a webové aplikace. je pravda, že kdysi dávno jsem samozřejmě hry pro PC vyvíjet chtěl.

    spíš je to asi myšlené tak, že pokud se stejně ukazuje, že třeba rozsáhlou databázi 3D objektu je zřejmě stejně výhodnější mít v databázi než v nějaké nativní datové struktuře, a vykreslit je jí stejně lepší přes akcelerované OpenGL než nějaký framebuffer obsluhovaný v assembleru... tak co z těch optimalizací vlastně pak ještě zbývá? divíš se, že někdo radši programuje FPGA pole aby mu interpretovalo Brainfuck? :-)

    KEYMASTER: to je zajímavý... i když začnu tvrdit přesně něco opačnýho, než třeba před 3-5 lety, tak se mnou stejně všichni začnou hádat :-) jste ve svých názorech hrozně nekonzistentní, řekl bych: hádám se tu 5 let s lidmi, kteří tvrdí, že mikrooptimalizace jsou při dnešním výkonu PC buď zbytečné, nebo dokonce s nepředvídatelnými důsledky a kontraproduktivní.. a teď tohle.

    PIGSTER: tak já 10 let programoval spíš servery a routery... jinak taky jsem svého času spolupracoval s bastlíři, kteří programovali v C pro Atmel jednočipy, apod.

    mě to vysvětlovat nemusíš.... vždyť já jsem klub o C založil :-)
    KEYMASTER
    KEYMASTER --- ---
    XCHAOS: Dnešní počítače jsou z hlediska výkonu obrovský overkill. - Prý ti mám za všechny 3D grafiky vyřídit tohle: BWAHAHAHAHA ;)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Chmm.. novy postupy pro akceleraci grafiky? Jako treba?
    Grafika je zrovna jeden z fakt dobrejch duvodu se ucit C/C++, alespon mi to tak doted prislo.
    PIGSTER
    PIGSTER --- ---
    XCHAOS: staci se jenom konecne odpoutat od konceptu osobniho pocitace jako jedine programovatelne veci (mobil nepocita, nektere mobily jsou vukonnejsi nez rada osobnich pocitacu)

    Tenhle svet je plnej procesoru, ktery se v nicem jinym, nez v C (a nizsich jazycich) programovat nedaj. Tenhle svet je i docela plnej procesoru, ktery se nedaj programovat ani v C (v elektrickym kartacku na zuby od brauna je 4bitovy MCU).

    Takze pokud ma nekdo nezbytnou potrebu obhajovat pouzitelnost C nebo ASM tak rozumnejch moznosti ma dost a imho se neni nutny uchylovat k jakejmkoliv obskurnostem.
    XCHAOS
    XCHAOS --- ---
    PIGSTER: to je tak obecné tvrzení, že s tím téměř nejde nesouhlasit, nicméně... jak jsou dnes lidi vlastně motivováni pochopit, "jak věci doopravdy fungují"?

    Když já začínal, tak byl motivací výkon - přepsat něco "do strojáku" znamenalo téměř vždy masivní zvýšení výkonu. Tedy: kromě použití kompilovaných jazyků, jako bylo např. C ... a to tedy byla dostatečná motivace se to naučit.

    Dnešní počítače jsou z hlediska výkonu obrovský overkill... a navíc třeba pro akaceleraci grafiky se už dávno používají naprosto jiné postupy... takže třeba já v první řadě nedokážu pochopit, jakou má dnes někdo motivaci učit se C. Výpočetního výkonu je dnes fakt hodně a lidé stěží budou mít nějakou motivaci vymáčknout ze svého počítače maximum, když si stejně každý dva roky kupují nový. Vygenerovat rychle webovou stránku se zdá zbytečné, když pak browseru stejně dojde paměť při interpretaci javascriptu, apod.

    Takže skutečně si uvědomuju, že moje posedlost tím nepoužívat hotové virtuální stroje a hotové abstrakce, a naopak snaha "pochopit jak to funguje" a mít to sám pod kontrolou mě samozřejmě přivádí do velké izolace.... daleko větší, než když se poměrně velké procento mé genrace v dětství naučilo assembler na Z-80, například..

    A samozřejmě se pak zajímám i o lidi, kteří zkouší různé obskurnosti... samozřejmě nechci programovat žádné CPU v Brainfucku, to dá rozum. Je to kuriozita - ale spáchali jí lidé, se kterými by tak či onak asi bylo zajímavé dát řeč...
    PIGSTER
    PIGSTER --- ---
    XCHAOS: jen tak na okraj "jak se to správně dělá" imho neimplikuje "nic nového nezkoušet" - jedna vec je objevovani novych, lepsich postupu a zcela jina vec je pouzivani zcela zjevne nevhodnych nastroju (uznavam ze nekdy to muze byt legrace)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: i kdybych něco reálnýho navrhoval, tak použít jako strojový kód Brainfuck je pochopitelně vtip (proto jsem to sem postoval) :-)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Nevidim u nich jedinou motivaci delat cokoliv v SW, viz reseni []. A predstava ze ciste hardwarova implementace Ccka (jakyhokoliv) je jen o malo slozitejsi nez implementace brainfucku... tys predpokladam nikdy nic realnyho nenavrhoval, co?
    REDGUY
    REDGUY --- ---
    XCHAOS
    XCHAOS --- ---
    REDGUY: no, celá historie lidstva je historií nedovzdělaných opic, snažících se překnat hranice svých možností pomocí nevhodných nástrojů. aspoň já se teda k téhle linii hrdě hlásím... pak se ještě samozřejmě vždy oddělovaly postranní linie opice, které se rozhodly spokojit se s tím, "jak se to správně dělá" a nic nového nezkoušet....

    (je fakt, že to tu začíná být offtopic)
    Kliknutím sem můžete změnit nastavení reklam