• ú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 --- ---
    KOJA: tak mě se to naopak hodně líbí. na práci se stringama je zajímavé to, že většina vyšších jazyků k tomu nabízí spoustu operací, u kterých předstírá, že jsou triviální - ale samozřejmě nejsou.

    KOJA: tak každý jazyk přece nabízí nějaké standardní způsoby práce se základními datovými typy/objekty, mezi které stringy zcela nepochybně patří. nepokládat implementaci stringové knihovny ve stdlib za základní feature jazyka je dost odvážné :-)

    C++ nedopadlo tak zle - ale je velká otázka, zda nějakou abstrakci nad stringy jde vůbec naprogramovat úplně čistě (asi jde, když ten Perl dopadá tak dobře, jak dopadá).

    jejich implementace v C trochu švindluje, protože právě pracuje se stringy jako s mutable a je to právě level, na kterém když se stringy pracují začátečníci, tak spolehlivě vyprodukují děravý kód (což je hlavní příčina všech bezpečnostních děr na bázi buffer overrunů, apod.).

    jinak v Pythonu i Perlu používají volání regulární výraz, zatímco v Céčku primitivnější strstr() a pak přímo přepisují string, což třeba zrovna v tom Pythonu s immutable stringy z pricnipu nejde.. takže je to vlastně demonstrace toho, že low-level práce se stringy je rychlejší, než většina vyšších abstrakcí, která musí stále znovu dokola alokovat prostor pro výsledek stringové operace. Samozřejmě je ale otázka, jestli lidi fakt vést k tomu, aby pro modifikace stringů používali memcpy().. jenže když budu chtít mít jistotu, že něco poběží fakt rychle, tak to sám udělám přesně takhle...

    Mě se ten test fakt líbí, ne proto, že C "porazilo" C++ (protože ta C implementace je až moc lowlevel a samozřejmě takhle nikdo nechceme programovat každodenní práci se stringy, zvlášť kdo to fakt nějaký čas z nějakého důvodu musel dělat) - ale spíš že C++, Perl, Python i PHP to víceméně dělají nějak "dobře", z hlediska rychlosti i spotřeby paměti, zatímco Java a JavaScript jsou v tomhle směru totálně LOL.

    Zajímavé je, jak málo lidí si tohle uvědomuje, existuje samozřejmě obecné povědomí, že Java je pomalé monstrum, ale takovéhle srovnání a tedy i míra toho, jak je to v té Javě asi udělané špatně, stejně zovu překvapí...
    KOJA
    KOJA --- ---
    GIOMIKY: Me tohle obecny porovnavani jazyku na jedny specificky uloze prijde nic nerikajici. Pominu, ze je to "velmi stary" benchmark (Intel Core2 Duo T7500 a kernel 2.6.32).

    Vhled mam velmi omezeny, nicmene z kodu kterym meri "vykon" toho g++ na mi prijde, ze to moc dobre nedela. V komentarich mu tam nekdo radi upravy, ja bych mel ke kodu poznamek i par dalsich (neflushovat ostream buffer napr.). Dale postradam treba i zpusob jakym ten kod preklada (optimalizace, vyjimky zapnute?), coz neni uplne zanedbatelne. Vzhledem k tomu co tam dela, tak konkretne pro c++ nemeri zadne zasadni vlastnosti jazyka ale rychlost implementace std::string, std::ostream (a defaultni alokator pameti) v libstdc++. Zrovna stringy a streamy jsou ale veci ktere se pro "performance critical" kod v c++ nepouzivaji moc casto (resp se pro souvisejici praci nesaha po c++ kvuli vykonu), takze interpretace srovnani je stran c++ trochu slozita.

    Celkem bych cekal, ze pokud jsou opominuty jemnejsi nuance c++, tak u ostatnich jazyku to bude podobne (lidi co maji v hlave detaily ohledne 10 ruznych jazyku zase tak moc po svete behat nebude) a porovnava vhodnost jablek a hrusek do knedlo vepro zela.
    GIOMIKY
    GIOMIKY --- ---
    Porovnani programovacich jazyku z pohledu rychlosti a vyuziti pameti
    http://raid6.com.au/~onlyjob/posts/arena/
    BURAN
    BURAN --- ---
    Asi embedded systemy.
    XCHAOS
    XCHAOS --- ---
    VITEX: .. zatímco obliba čistého assembleru roste, srsly? :-)
    VITEX
    VITEX --- ---
    Programovací jazyk C má nejnižší oblíbenost v TIOBE za posledních 15 let - Root.cz
    http://www.root.cz/zpravicky/programovaci-jazyk-c-ma-nejnizsi-skore-v-tiobe-za-poslednich-15-let/
    XCHAOS
    XCHAOS --- ---
    UETOYO
    UETOYO --- ---
    XCHAOS: :) Ok
    XCHAOS
    XCHAOS --- ---
    UETOYO: klid... v té debatě to právě dost zpochybňují/rozporují, někteří i celkem vtipně :-)
    XCHAOS
    XCHAOS --- ---
    JANFROG: on to ale není vtip, to je to nejhorší... mě to tu někdo do mého makrojazyka právě navrhoval, ať rekurzivní rebalancovací funkci posílám delta pointerů začátku a klíče jako integer... já to nejdřív nechápal, ale po letech se mi rozsvítilo.

    everything is integer (unless stream of bytes :-)
    JANFROG
    JANFROG --- ---
    XCHAOS: Ted jsem se fakt zasmal...ale ti, co to pak dostanou na talir se asi smat nebudou :-)
    XCHAOS
    XCHAOS --- ---
    Mohli bychom na youtube začít točit show "programujeme v C s Babicou"? :-) když nemáš pointer, vraž tam integer? :-)
    ANT_39
    ANT_39 --- ---
    ALMAD: Severan jako severan.
    ALMAD
    ALMAD --- ---
    ...a kdyz nemas Torvaldse, tak tam dej Lerdorfa, vono ti taky vznikne neco v Ccku, takze je to vlastne stejny ;)
    XCHAOS
    XCHAOS --- ---
    ??
    KILLUA
    KILLUA --- ---
    Pokud se bavíme o tvůrci PHP tak má hodně rozumné názory co si tak občas čtu a že nejde pro ostré slovo daleko je taky dobře, když se mu snažej radit nějaká jelita o jeho vlastním jazyku.
    ANT_39
    ANT_39 --- ---
    ISTEVE: Ztráta goodwill myslím pana Torvaldse nikdy moc netankovala ;)
    ISTEVE
    ISTEVE --- ---
    Uprimne, v dnesni dobe resit code style tim ze se napise email at nekdo dela neco je zbytecna picovina, ztrata casu, a ztrata goodwill. Pokud ma clovek autoritu definovat jakej code style by se mel pouzivat v projektu, tak at se to proste automatizuje pres clang-format.
    XCHAOS
    XCHAOS --- ---
    UETOYO: ...kromě možnosti
    #if 0
    #endif
    kterou doporučují v diskuzi na Slashdotu :-)
    Kliknutím sem můžete změnit nastavení reklam