• ú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í
    REDGUY
    REDGUY --- ---
    XCHAOS: abychom konečně opustili tuhle arénu, která mě už vůbec nebaví. - to me neprekvapuje. Akorat mam obavu, ze to jen a jen znamena ze rozbite kontexty pujdou k ledu a za par mesicu je zase vythanes, zacnes rikat jak jsou super a znovu ti budeme muset ukazat jak a proc jsou rozbite. Pokud dobre pocitam, tohle uz je aspon druha iterace debaty na tohle tema.

    jestli by standardní proces odchytávání signálů v C šlo nabindovat na setjmp/longjmp standardní POSIX libc error handling ? - co presne tim chce basnik rici?
    XCHAOS
    XCHAOS --- ---
    REDGUY: když jsme u toho dělení nulou... to je mimochodem odchytitelný signál, ne ? abychom konečně opustili tuhle arénu, která mě už vůbec nebaví... co takhle popřemýšlet, jestli by standardní proces odchytávání signálů v C šlo nabindovat na setjmp/longjmp standardní POSIX libc error handling ? pokud bude adresa získaná pomocí setjmp uložena v globální proměnné, tak snad nic nebrání tomu, aby handler ošetřující signál provedl longjmp, ne ?

    (napadlo mi, že takhle by šlo odchytit vlastně i Ctrl+C .... jednoduše, Ctrl+C by se pak dalo odchytit na konci try { } bloku jako cokoliv jiného... a pokud se to neodchytilo, tak by ovšem program skončil... vlastně není jasné, jestli je to "očekávané" chování, ale každopádně by to bylo elegantní chování)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: víceméně ... z debaty vyplynulo, že bude muset mít :-) a je fakt, že jsem to zvlášť neřešil, to se přiznám.

    prostě ve všech mých flow-control makrech budeš muset místo "break" psát "escape". ("continue" naproti tomu bude použitelné beze zeměny... BTW, pro vyskočení z kontextu bude bohatě stačit "continue" místo "break", a bude to ještě čitelnější...)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Ma ten remember/forget mit explicitni "terminate context now!" makro? Ja uz si to z ty debaty nepamatuju.
    REDGUY
    REDGUY --- ---
    XCHAOS: No a? Stejne tai budu v prdeli kdyz budu delit nulou, pristupovat na neinicializovanou pamet nebo zapisovat do RO souboru. No a? To ze existuji jine, nesouvisejici druhy chyb znamena, ze rozbitost kontextu je nejak v poradku?

    Problem tvych kontextu je v tom, ze je vydavas za zpusob reseni problemu s alokaci pameti pres malloc v C. Jenomze (a) nejsou kompletni nahradou, v rade situaci _porad_ musim pouzivat malloc a _porad_ bojovat s jeho problemy a zaroven (b) prinasi celou radu omezeni, ktera jen komplikuji praci a zpusobuji dalsi problem. To proste je rozbity a spatny design.
    _BENNY
    _BENNY --- ---
    XCHAOS: a to cele jen kvuli tomu ze nemas rad C++. feature jak vrata od chliva.
    XCHAOS
    XCHAOS --- ---
    REDGUY: pokud budeš používat return zprostředka funkce, která na konci něco de-incializuje, tak jsi v prdeli úplně stejně, jako když takhle použiješ můj hypotetický forget { }.
    XCHAOS
    XCHAOS --- ---
    Manifesto for Software Craftsmanship
    http://manifesto.softwarecraftsmanship.org/
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: V IT branzi veci kde je navod counterintivni pomerne rychle koncej v propadlisti dejin. U kolika toolu a knihoven sis predem prostudoval navod, nez si je zacal pouzivat? (Ja za sebe presne 0)
    REDGUY
    REDGUY --- ---
    XCHAOS: LOL!!! "To neni bug, to je feature!" Takhle ted pracuji umelecti kovari, er, chci rict, umelecti programatori? Haha 8) Nicmene, i tahle vymluva je mimo: pokud je rozbity uz zakladni design, tak zadna noticka v manualu "ehm, nepouzivejte return uprostred funkce" te nezachrani.
    XCHAOS
    XCHAOS --- ---
    REDGUY: tak až budu mít něco vysloveně nefunkčního, tak mi dej vědět. takovéto "když se to použije jinak, než se píše v návodu, tak to udělá něco co nečekám" - to není nefunkčnost, to je obecná vlastnost čehokoliv v IT (nejen v naší branži)
    XCHAOS
    XCHAOS --- ---
    _BENNY: s tím já nesouhlasím. od každé profese/specializace může existovat "umělecká" verze. jen musí být uživatelé varováni - a pro mě je dostatečným varováním třeba GPL licence.
    REDGUY
    REDGUY --- ---
    XCHAOS: tak ti vadí, že nemám jasný plán. a co má být ? To ze plany, ne nutne "jasne" ale PROBOHAASPONNEJAKE, jsou super a projekt, ktery ma PROBOHAASPONNEJAKY plan ma o nekolik radu vyssi sanci na uspech nez projekty ktery ho nema. Vidis? Zase se snazim pomoct.

    ale o těch kontextech se nedá předem říct, že _nefungujou_ - z ciste formalniho hlediska je samozrejme mozne ze se stane zazrak a za zvuku nebeskych harf, zpevu andelu pod dvojitou, ne, trojitou duhou prijdes a predvedes super duper implementaci ktera fungovat bude. Vzhledem k tomu ze takova implementace tady zatim neni a dokonce tady neni ani naznak problemu ktere jsme ti ukazali, sazim spis na "_nefungujou_".

    jinak umění má smysl samo o sobě, - dost mozna - na rozdil ale od programovani, kde je primarni funkcnost.
    _BENNY
    _BENNY --- ---
    Programátor není umělecký kovář! - Zdroják
    http://zdrojak.root.cz/clanky/programator-neni-umelecky-kovar/
    XCHAOS
    XCHAOS --- ---
    REDGUY: (...ve skutečnosti, reálně mi ta extra data před alokovanou oblastí dávají smysl jen u polí, a to ještě váhám, zda to stojí za tu práci...). ok, tak ti vadí, že nemám jasný plán. a co má být ?

    s tou funkčností souhlasím, ale o těch kontextech se nedá předem říct, že _nefungujou_ (kromě toho, že bych je implementoval špatně, což je zatím otevřená možnost). je třeba říct, že pokud se budou používat bez znalosti jejich fungování, tak tam může dojít k problémů. ale budou zdokumentované.

    jinak umění má smysl samo o sobě, a nejde o to, aby to byl laciný kýč, který si někdo koupí a dá si ho na zahrádku: dle tvé definice jsou uměním sádroví trpaslíci, protože si je lidi kupují.
    REDGUY
    REDGUY --- ---
    XCHAOS: Spíš tebe se ptám, zda jsou nějaké důvody, proč bych nový dialekt Céčka NEMĚL vymýšlet - chapu ze to asi obcas neni videt, ale jednim z duvodu, proc tady travim tolik casu je ze se ti snazim pomoct (a pravda, krome toho mam duvodu jeste par dalsich, zdaleka ne tak altruistickych. Ale tenhle tady skutecne je.) A co se ti snazim poslednich par zprav vysvetlit je, ze pokud nemas rozumne formulovane zadani, tj. ceho _konkretne_ chces dosahnout a plan jak to zhruba udelat, tak je sance na uspech miziva. A bohuzel, nejake povidani "eee, nechci se ucit C++ a pred kazdou alokovanou oblasti budou nejaka extra data a bude to superrychla nahrada fastcgi ktera natrhne php prdel", to takove zadani a plan neni.

    a odpovědí mi neustále je: "ne, programování musí být k něčemu dobré, musí to být užitečné protoze to tak je. V modernim umeni se asi muzes vysrat na talir a kdyz presvedcis dostatecne mnozstvi snobu ze to je umeni, tak to umeni bude. Diky bohu, v programovani to tak neni. Aby se o necem dalo rict ze to je povedene programatorske umeni, _musi_ to byt funkcni. Coz ocividne nechapes - viz to co jsi psal o svych kontextech, ze ti prijdou krasne a elegantni. Dost mozna jsou - ale NEFUNGUJOU, jsou ROZBITY a tudiz jsou k nicemu. Chces-li se dat cestou modernich umelcu a vydavat sracku za umeni, budiz. Jdi ale do umeleckeho klubu a presvedcuj umelce o tom jakej jsi machr a nevydavej to za programatorske, inzenyrske dilo.


    XCHAOS: "Umelecke kovarstvi"? Delas si srandu nebo si opravdu tolik fandis? Kdyz umeleckej kovar vykova peknou branu, lidi si ji radi zasadej do plotu protoze je hezka a zaroven funkcni. Co z toho co jsi vytvoril je podobne uspesne? Hezke, funkcni a pouzivane? A co te vede k tomu, ze tvoje dalsi bastl nadstavba nad C bude lepsi?
    XCHAOS
    XCHAOS --- ---
    ANT_39: no já fakt nevím, ale nepřestává mě fascinovat, kolika lidem stojím za ty flejmy, teda...
    ANT_39
    ANT_39 --- ---
    XCHAOS: Tedy jako vtip dobry, ale vazne, jestli to cele delas je proto, abys to delal, k cemu ti je nazor ostatnich? Ptas se jen proto, aby ses ptal?
    XCHAOS
    XCHAOS --- ---
    ANT_39: tak už nedebatuj :-)

    (a ano, dialekty Basicu jsem sledoval a zajímaly mě... akorát od té doby uplynulo moře vody, a více mě zajímá třeba JQuery jako nářečí JavaScriptu... to je úplně jiný level)

    V podstatě málokdo, kdo s tím toolkitem pracoval, se mnou asi bude polemizovat o tom, zda JQuery je nebo není geniální nápad. Ale zajímavé - představit si, že by mohlo existovat něco podobného i na nižším levelu, to mají lidi problém.
    ANT_39
    ANT_39 --- ---
    XCHAOS: V tom pripade o tom ale nema smysl moc debatovat.

    XCHAOS: Tak basic mel nareci vic nez dost, ne? A treba takove G++ neimplementuje cele C++, zato k nemu pridava mrak rozsireni...
    XCHAOS
    XCHAOS --- ---
    uvědomte si, že třeba otázka, jestli i v počítačových jazycích můžou být nářečí (dialekty) nebo jestli může vznikat počítačová "kreolština" je nesmírně zajímavá...

    třeba Perl byl v podstatě jeden z první pokusů po "počítačovou kreolštinu", protože si jako první bezostyšně půjčoval koncepty z jiných jazyků (aniž by přišel s nějakým dominantním vlastním konceptem - proto taky např. nemá důsledné odchytávání vyjímek, protože s tou koncepcí vlastně přišel dávno před tím, než se stala běžná jinde - a místo toho má obecnější feature, která současně umožňuje i interpretaci programem vygenerovaného zdrojového kódu, apod.

    nebo jinak: jestliže C je vnímáno spíše jako řemeslo nebo dokonce "těžký průmysl" IT oboru, tak já se snažím o cosi, jako "umělecké kovářství".
    Kliknutím sem můžete změnit nastavení reklam