• ú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 --- ---
    VYHULENY_UFO: chystám o tom článek, takže dík za odkazky. ale jinak je to tu naprosto offtopic.

    REDGUY: problém je, že ty slovo "podporuje" právě používáš v divném významu. v C lze zprasit téměř cokoliv, pokud používáš násilné přetypování: pointa s C objekty obsahujícícmi pointer na interface je, že je to naprosto "čisté" C, nezávislé na přetypování.

    spíš jsme se asi neshodli v definici té dědičnosti, obávám se. tomu, co mám na mysli, se možná říká trochu jinak - ale je to shodou okolností právě to, co lidi rozumějí objektovým programováním (tedy že mohou vyjít z nějaké předdefinované třídy a přidat si k ní nové vlastnosti, které všechny zmatou)
    ALMAD
    ALMAD --- ---
    //OT

    VYHULENY_UFO: Jo, jasne, ja mam na mysli to, ze uz neni uzce specializovanej na reaktory jak stuxnet.

    Je tu nekde klub o tom? Vubec tomu nerozumim, ale prijde mi to dost fascinujici.
    VYHULENY_UFO
    VYHULENY_UFO --- ---
    ALMAD: ja se obavam, ze jeho pole pusobeni bude sirsi :))

    3rd UPDATE: Cyber Espionage Reaches New Levels with Flamer | BitDefender Labs
    http://labs.bitdefender.com/2012/05/cyber-espionage-reaches-new-levels-with-flamer/

    Back to Stuxnet: the missing link - Securelist
    http://www.securelist.com/en/blog/208193568/Back_to_Stuxnet_the_missing_link

    ale to je ot zde
    REDGUY
    REDGUY --- ---
    XCHAOS: Ach boze, zase to tvoje oblibene strawman fallacy? Vsechno co jsem rekl, ze dedicnost lze v jazyce ktery ji primo nepodporuje pouzit stejne, jako lze pouzit polymorfismus v jazyce, kteru ho primo nepodporuje - cili reakce na tvuj blabol o tom, ze C "podporuje" polymorfismus. Pokud C "podporuje" polymorfismus, pak uplne stejne "podporuje" i dedicnost, protoze je to pouze o tom, ze XChaos zacal pouzivat slovo "podporuje" ve svem vlastnim, bizarnim vyznamu. Jo, jasne, v C se da programovat objektove a jestli si o tom chces neco nastudovat, precti si treba tu dokumentaci k GLibu. Ale rikat "C podporuje.."? Bah.
    ALMAD
    ALMAD --- ---
    ANT_39: Jo, jinak Flamer uz neni na iransky sajty, je celkem general purpose a afaik se momentalne vi, ze cili hlavne na technicky vykresy...
    ALMAD
    ALMAD --- ---
    XCHAOS: Ja bych rek, ze by ses mozna divil.

    Jako uvedom si, ze se bavime o viru, co kdyz potreboval exploitnout certifikaty, tak vymyslel novy, unikatni kryptograficky utok na porad-jednu-z-nejrozsirenejsich hashovacich funkci.

    Myslim ze v takovym pripade uz to ze ses pripojenej na internetu znamena, ze ses v prdeli ,)
    XCHAOS
    XCHAOS --- ---
    REDGUY: s tak odvážným tvrzením, že knihovna může vnést dedičnost do jazyka, který dědičnost nepodporuje, si tu přišel ty :-) tak očekvám příklad.
    REDGUY
    REDGUY --- ---
    XCHAOS: to byl trolling a ne link - ale prdlajs. Chtel jsi link na GLib, dostal jsi ho. Ze sis az pozdejc vymyslel ze vlastne chces nejakej "deep link", protoze jsi neschopnej si ho najit sam je tvuj problem, ne muj.
    XCHAOS
    XCHAOS --- ---
    REDGUY: to byl trolling a ne link :-) mě spíš zajímá, kde v té dokumentaci najdu něco o dědičnosti, a jak je teda řešená.
    REDGUY
    REDGUY --- ---
    XCHAOS: Nebyl by link? Nebyl - ale byl. Ze nejsi schopnej si ho nastudovat je tvuj problem. Ostatne, uz to ze ti musim linkovat referencni manual na jeden ze zakladnich produktu open-source hnuti je znacne bizarni - to ze si v nem neumis najit to co potrebujes je jen tresnicka na dortu 8)
    XCHAOS
    XCHAOS --- ---
    REDGUY: no, ty po ostatních občase požaduješ doložit jejich různá tvrzení docela nevybíravým způsobem... já prostě použil podmiňovací způsob. Nebyl by link? Nebyl.
    REDGUY
    REDGUY --- ---
    XCHAOS: ne. myslím přímo nějaký deep link na "dědičnost" v Glib Srlsy? Opravdu nejsi schopnej si to vygooglit sam a zaroven cekas, ze to budu hledat za tebe? A dokonce ses ani neobtezoval rict kouzelne slovicko? Wow 8))
    XCHAOS
    XCHAOS --- ---
    REDGUY: ne. myslím přímo nějaký deep link na "dědičnost" v Glib: nějaké základy toho, co tato knihovna zhruba je a k čemu je a co třeba nabízí se tady už řešily (viz např. já se odkazoval na to, že moje memory pooly nejsou nápad z mojí hlavy, ale že je to v podstatě opsané mj. i z Glib... i když já na to samozřejmě kdysi přišel z jiného důvodu sám nezávisle...)
    REDGUY
    REDGUY --- ---
    XCHAOS: Ach jo. Chces link? Co treba http://lmgtfy.com/?q=glib&l=1 ?
    REDGUY
    REDGUY --- ---
    XCHAOS: (*(object->interface->metoda))(object, další parametry) - Hahahahaha. "Podpora pro polymofismus", my ass. A samozrejme, cely to pujde do prdele kdyz se bude lisit layout objektu ruznejch trid.

    No, myslim ze jsme zase u klasickeho "XChaos bere existujici slova a prirazuje jim novy, bizarni vyznam". Ze se vsichni shodnou ze C nepodporuje objektove programovani? Nevadi! Kdyz XChaos rekne ze C podporuje polymorfismus, tak to tak proste je 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: (*(object->interface->metoda))(object, další parametry)
    XCHAOS
    XCHAOS --- ---
    REDGUY: nebyl by nějaký link? Glib je v tomhle klubu maximálně ontopic, ale já o ní vím celkem minimum.
    REDGUY
    REDGUY --- ---
    ale finta na dědičnost v C prostě není - a jestli je, tak mě jí ukaž a já smeknu. - uz jsem ti to jednou rikal: viz GLib, ciste C, ktere podporuje dedicnost. Doufam ze mas klobouk 8)

    finta na polymorfismus v C je právě do té míry, že vzájemně polymorfní objekty mají stejný "interface": musí mít všechny definovanou přesně stejnou sadu stejně pojmenovaných metod - co presne podle tebe v 'C' znamena "objekt ma metodu"?
    XCHAOS
    XCHAOS --- ---
    REDGUY: ale finta na dědičnost v C prostě není - a jestli je, tak mě jí ukaž a já smeknu.

    finta na polymorfismus v C je právě do té míry, že vzájemně polymorfní objekty mají stejný "interface": musí mít všechny definovanou přesně stejnou sadu stejně pojmenovaných metod (i když tyto metody pak můžeš celkem snadno přetěžovat i za chodu, apod.). polymorfismus v C++ může (podle mě, možná to nechápu) teoreticky zhranovat i polymorfismus mezi parent class a nějakou odvozenou třídou, která obsahuje nějaké metody navíc: toto v C nijak jednoduše nenapodobíš - sice můžeš mít prasecky definovanou union nad několika interfacy, jejichž začátek je stejný, a omezit volání "polymorfních metod" na společný začátek všech interfejsů - ale to už je prasení a bastlení a pochopitelně - v C můžeš přetypovat cokoliv na cokoliv jiného, když jsi dost drzý... já se bavím o tom, co je vlastně možné dosáhnout zcela bezpečně a robustně... bez obcházení typové kontroly a takových věcí...
    XCHAOS
    XCHAOS --- ---
    PIGSTER: v podstatě chápu, že ti to připadá divné - ale open source svět je obrovské vetešnictví ("bazar, nikoliv katedrála") obsahující obrovskou sbírku programátorských udělátek, které někdo ubastlil během posledních 40ti let a pak je pohodil na smetišti.

    a já jako nezávislý internetový poskytoval chodím po tomto smetišti, provádím archeologický výzkum - a hledám, jestli by nešlo předvědčit moje potenciální klienty, že by jim některá z těchto úžasných hraček šla prodat :-) a proto mi sedí i jazyk C, který se na takovéto slepování z existujících knihoven podle mě docela hodí.

    samozřejmě - pokud je na začátku zákazník, který víc co chce, tak je to problém. já opravdu kacířsky myslím, že open source / free software hnutí by si mělo vychovat zákazníky, kteří nevědí co chtějí a nechají se okouzlit tím, co už je hotové (a tady nemluvím jen o sobě, ale i o invazi nově příchozích programátorů a adminů do kdysi-mého-vlastního produkčního prostředí a o tom, jak mi to válcují :-)
    PIGSTER
    PIGSTER --- ---
    XCHAOS: ehm - pokud delas neco / cokoliv bez predesle analyzy problemu (alespon minimalni), tak to uz samo o sobe je imho docela divny (a je podle me irelevantni, jestli to delas proceduralne, objektove nebo cinnost obsahuje rezani dreva pilou).

    IMHO objektovy programovani je dobry tam, kde je mozne / se vyplati mit nejake zapouzdreni - pokud jsem schopnej identifikovat "objekt" jako sadu vlastnosti a metod, pak muzu programovat objektove. Pokud nemam objekty (poste dana uloha tak nejak neni objektova), nebo si nemuzu dovolit luxus objektoveho programovani (typicky nemam pamet, kam ty objekty davat - mam tak akorat na par globalnich promennejch a nejakej zasobnik) no tak si na to vezmu proceduralni pristup zeano.
    REDGUY
    REDGUY --- ---
    XCHAOS: že "finta" na objektový polymorfismus v čistém C lze pokládat za přímé využití základních vlastností jazyka způsobem - uplne stejne si lze predstavit jinou "fintu", ktera bude implementovat dedicnost. V okamziku, kdy musim kvuli X delat "fintu", tak proste danej jazyk X nepodporuje, ale pouze umoznuje. Uplne stejne muzu rikat, ze pomoci "finty" podporuje objektove programovani i assembler nebo Turinguv stroj.

    naproti tomu u té dědičnosti tam vysloveně není podpora pro to - uplne stejne jako tam "vyslovenene neni podpora" pro polymorfismus.

    něco jako user->address->street stačilo zapsat jako user->street (což by bylo možné v objektovém jazyce, kde by třída "user" vznikla např. rozšířením třídy "address" pouze dve poznamky - pomoci tveho "triku" je mozne metody volat primo jako objekt->metoda? No a za druhe.... pokud si tohle predstavujes jako dobrej priklad dedicnosti, tak potes panbu 8))
    Kliknutím sem můžete změnit nastavení reklam