• ú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
    WILD_A
    WILD_A --- ---
    KILLUA: Jo uz chaou ty chces nejaky extra veci na ty promeny, kdyz to ten dolar nebere, promin, nejak mne to vubec nenapadlo

    Ad VS jako v monha vecech je dobry, ale kdyz se clovek uci tak je to spis na obtiz jelikoz cloveku neni jasny co se deje, priapdne kde sakra reknu ze neco chci aby se delo.

    V tomhle ohledu zlatej Makefile, i kdyz Makefile generovanej autotools uz moc zlatej neni :)
    XCHAOS
    XCHAOS --- ---
    KILLUA: no, "vlastní jazyk" má cenu definovat, pokud dosáhneš i na nějakou vlastní sémantiku. jinak se tomu říká "makra" nebo "vlastní API pro vlastní knihovnu".
    KILLUA
    KILLUA --- ---
    Wild: No ten notepad nedovolí změnit zvýraznění pro existující jazyk, ale můžeš si vytvořit profil vlastního jazyku, který bude úplně identický s C, akorát si tam přidáš jaké chceš pravidla pro zvýraznění - nevěděl sem jestli to jde a teď už vím, že jo.

    Jo, magického to celkem sedí :-D hlavně nabídka pro nalinkování dalších knihoven schovaná 4 nebo kolik kliků v nastavení.. já to prostě nemohl najít.
    WILD_A
    WILD_A --- ---
    KILLUA: No Visual studio je hned z kraje vleky sousto, deje se tam mnoho magickeho a ne zcela zrejmeho, mozna bych radsi zkusil bych jit cestou cygwin/gcc jelikoz tam je mnoho veci explicitne videt. Sice visual studio funguje v podstate stejne nicmene to schovava.

    KILLUA: A na co potrebujes definovat vlastni jazyk kdyz to chces pro C? Nejak nechapu ucel.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KILLUA: Tak se podiva do toho souboru, protoze vi jak vypada include command.
    KILLUA
    KILLUA --- ---
    Takže v notepadu++ si skutečně lze nadefinovat syntax pro vlastní jazyk (zobrazit-uživatelksy definovaná syntaxe), stačí tedy napodobit tu z původního jazyka a přiřadit novému jazyku příslušné přípony souborů. No vida :)
    KILLUA
    KILLUA --- ---
    Davidowitch: To dává smysl, ale co když sem si to definoval v nějakém souboru co includuju?

    Wild: No to je mi jasný, že to za 60 minut nebude už ho nějaký týden oťukávám, rozjet visual studio a nalinkovat externí knihovny byla samo o sobě výzva... .

    Buď mám starou verzi (dost možný), nebo sem slepej ale právě sem to v notepadu++ nenašel lze tam definovat jenom vlastní celé slovo ale ne něco jako slovo.*
    Ale určitě to nějak půjde, protože teď čtu o úplně vlastních programovacích jazycích a že je to podporuje.
    WILD_A
    WILD_A --- ---
    KILLUA: notepad++ ma zrovna mod pro C/C++ a syntax highlight zvlada v pohode.
    WILD_A
    WILD_A --- ---
    Je to poznat z gramatiky, coz neni zrovna zrejmy ctenari, kterej to nema nakoukany nebo nema ulktrarychlej obvod v mozku pro parsovani bezkontextovych gramatik :) Nicmene algoritmus je to celkem jednoduchej a jasnej, takze to parser dobre pozna to plati i v pythonu, tam je to taky jasny z gramatiky. Kazdopadne dolar pred promenou je blbost.


    KILLUA: To uz si stihnul doprogramovat se k sesty kapitole? To ses fakt rychlej nebo si to preskakal na rychlo? Pokud na rychlo tak je jasny, ze se v tom v sesty kapitole ztracis protoze je tam uz prilis mnoho noveho, neni to tutorial na odpoledne, ale na to aby se clovek naucil veci poradne a to znamena ze tim zabije nejakej cas. C neni uplne snadnej jazyk na nauceni, tj learn C in 60 minutes fakt nefunguje, kdyz o tom moc nevis.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KILLUA: Ja zas neumim PHP, ale v C musej bejt vsechny promenny deklarovany. Tj. musis nejdriv rict "int a;" a pak uz ty, prekladac i highlighter vite ze "a" je promenna (typu int). Dalsi deklarace "a" ve stejnym scope neni validni, priradit tam string taky nemuzes atdatd.
    A zaroven nemuzes udelat "a = neco" a cekal ze se ti vyrobi "a" spravnyho typu.
    Takze, vyhoda silne typovanyho jazyka je, ze to proste poznas ze syntaxe.
    A treba Python to pozna taky, i kdyz tyhle deklarace nema, ale uplne si nejsem jistej jak (kdybych mel tipnout, co neni klicovy slovo nebo funkce bere, v prvnim priblizeni, za promennou).
    Jo, a last but not least, kdyz to pozna prekladac, musi to umet poznat i neco co dela syntax highlight.

    (A jo, ted me nekdo chytne za slovo ze deklarace typu bejt nemusi, protoze v prehistorickym standardu C fungovalo ze kdyz to nema typ, je to int...)
    KILLUA
    KILLUA --- ---
    Ale jestliže proměnné v c nejsou nijak odlišené jak je cokoli pozná od ostatních částí kódu?
    Představoval sem si to tak, že by třeba nějaký plugin třeba pro notepad++ povoloval rozlišit zvýraznění dle třeba toho začátečního písmena (nějakého regex) pravidla.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KILLUA: Ne, od toho je sytanx/semantic highlighting v (dopln svuj oblibeny editor/IDE)
    KILLUA
    KILLUA --- ---
    Ale ještě jeden dotaz z PHP sem celkem navyklej na ten dolar před proměnejma - lépe se v kódu orientuje, myslíte je dobrej nápad psát kód takhle? xprom1, xprom2
    tedy dávat vždy na začátek třeba x, nebo jiné písmeno? A co třeba _prom1, _prom2 jde?
    KILLUA
    KILLUA --- ---
    No díky, asi u 6 kapitoly návodu psaní lispu jsem raději utekl. Mám pocit, že by mě to přecijen pletlo psát vlastní jazyk když vůbec neumím ani to C.

    Xchaos - ta práce se sdl bude stejná i ve win, nebo ne? Ale dík.
    XCHAOS
    XCHAOS --- ---
    Lisp jako "primitivní hra"? hmm... :-)
    REDGUY
    REDGUY --- ---
    KILLUA: Jezis, ja jsem dneska uplne retardovanej. Ted teprve jsem kouknul a ten link od WILD_A a vidim, ze to je neco trochu jinyho nez jsem myslel. Teda, obsahove to je ono a moje chvala te rady porad plati, ale to co jsem myslel ja je https://github.com/kanaka/mal , vynikajici navod jak napsat interpretr Lispu v cemkoliv, vcetne toho C. Cituji, Mal is a learning tool. Each implementation of mal is separated into 11 incremental, self-contained (and testable) steps that demonstrate core concepts of Lisp. The last step is capable of self-hosting (running the mal implementation of mal).
    REDGUY
    REDGUY --- ---
    REDGUY: Eeeh, predchozi zprava je pochopitelne adresovana KILLUA 8)
    REDGUY
    REDGUY --- ---
    WILD_A: Tohle je popravde receno uplne nejlepsi mozna odpoved. Protoze (a) splni co to chces, naucis se C na praktickym prikladu, a zaroven (b) naucis se LISP, cili uplne jinej pohled na programovani nez zatim mas (podle toho cos napsal ze umis).
    XCHAOS
    XCHAOS --- ---
    KILLUA: pod Linuxem se na programování her snad měla používat knihovna SDL. přiznám se, že moc zkušeností s tím nemá, čistě céčkové API ale rozhodne nabízí, viz např.
    Linux Game Programming Tutorial 1: Introduction / First SDL - Game Programming Tutorials | Dream.In.Code
    http://www.dreamincode.net/...topic/290187-linux-game-programming-tutorial-1-introduction-first-sdl/
    WILD_A
    WILD_A --- ---
    Za mne je tohle nejlepsi tutorial, nauci C a zaroven Lisp .... http://www.buildyourownlisp.com/
    KILLUA
    KILLUA --- ---
    Zdravím, zvládám PHP, Javascript a rozhodl sem se začít učit i něco jiného po dlouhém vybírání sem se rozhodl pro čisté C s tím, že budu pracovat a kompilovat v C++ prostředí, abych případně mohl použít C++ když by mi v C něco chybělo.

    Nejlépe se vždycky učím na nějakém praktickém příkladu a proto vlastně píšu sem, chci se zeptat jestli nevíte o nějakých dobrých tutorialech např. o vývoji nějakých primitivních her. Něco sem si už našel na googlu, ale neuškodí se zeptat. I z toho PHP vím, že nějaké jakoby triviální věci co strašně usnadní programování "objeví" člověk i za rok dva... když ho někdo neupozorní.
    REDGUY
    REDGUY --- ---
    XCHAOS: Jen skoda, ze zrovna ten prvni link je obecne o programovani, bez dogmatickyho trvani na cistym C. Takze uz se tady smi mluvit i o jinejch jazycich? 8)
    XCHAOS
    XCHAOS --- ---
    jak bych si třeba představoval debaty v tomhle klubu...
    Should We Really Try To Teach Everyone To Code? - Slashdot
    http://developers.slashdot.org/...ry/15/02/14/1845253/should-we-really-try-to-teach-everyone-to-code
    nebo třeba i :-)
    Empirical Study On How C Devs Use Goto In Practice Says "Not Harmful" - Slashdot
    http://developers.slashdot.org/...mpirical-study-on-how-c-devs-use-goto-in-practice-says-not-harmful
    :-)
    XCHAOS
    XCHAOS --- ---
    FLEGMA: koukám
    Self (programming language) - Wikipedia, the free encyclopedia
    http://en.wikipedia.org/wiki/Self_%28programming_language%29
    Instead of having an "instance" of an object that is based on some "class", in Self one makes a copy of an existing object, and changes it.

    ...což přesně dělá i JavaScript. teoreticky zajímavou výhodou by bylo, kdybych nepotřebnou položku mohl z prototypu po naklonování odstranit. třeba mám objekt, jeho součástí je nějaký binární blob, a mě se ten objekt hodí v případě, že pracuju s mnoha tisíci kopiemi, ale zrovna tenhle blob tam nepotřebuju a jen zbytečně zabírá paměť. u špatně navržené nadřazené třídy jsem bez šance...

    každopádně v C na protyping dosáhneme stěží... to už spíš použijeme API k nějakému externímu databázovému repositáři, kde bude uložena nejbližší aproximace toho, čemu se jinde říká objekty... (samozřejmě, chybějící asociativní pole situaci moc neusnadňují...)
    WILD_A
    WILD_A --- ---
    REDGUY: Ja reagoval na to ze si napsal, ze to je to v zasade vyjmecna vec potrebovat vykon, ja si to nemyslim, to je cely. Mozna proto, protoze se temahle vecma zabejvam castejs nez vetsina a tenhle problem mne pali vic nez ostatni.
    WILD_A
    WILD_A --- ---
    FLEGMA: Spatnej algoritmus ani surovej vykon nezachrani :) .... a bruteforce je posledni instance.
    FLEGMA
    FLEGMA --- ---
    JANFROG: No ty jsi me zas donutil se zamyslet nad Selfem do te miry, ze jsem si precetl specifikace, takze win win situace :-)
    KEYMASTER
    KEYMASTER --- ---
    XCHAOS: Ne. O tom ten vtip nebyl. To se jen snažíš přetočit debatu na něco úplně jinýho, protože z nějakýho neznámýho důvodu máš potřebu si spolu s několika místníma xchaos-someliérama dokazovat, kdo máte větší e-kládu.
    JANFROG
    JANFROG --- ---
    FLEGMA: Hmm...dobry komentar! Asi se nad tim budu muset znovu zamyslet.
    XCHAOS
    XCHAOS --- ---
    UETOYO: teoreticky, nějaké aritmetické problémy při míchání různých typů čísel nastat můžou, to jo... a spousta lidí píše v C "slabě typovaně" prostě tak, že se hodně používají void * pointery, přetypovává se.. to je věc stylu. podstatné ale je, že ve staticky typovaném jazyce by třeba funkce proměnnou neočekávaného typu ani dostat neměla (jiná věc je, že C je benevolentní k případu, že se to stane, to ano... ale pokud se nezneužijí určité možnosti jazyka, tak by to měl ohlídat už kompiler...)

    chtěl jsem tuhle debatu několikrát strhnout směrem k debatě "co pokládáte za příklad robustního C kódu" - víceméně jeden z aspektů robustnosti je "nevím, kolik toho bude" - tedy, buď si hlídám indexy polí, nebo použiju jiný kontejnerový typ, než pole, dtto stringy - alokuju je podle potřeby a ne fixně. většina autorů interpreterů skriptovacích jazyků se s tímto typem problému tak jako tak nějak musela vypořádat, takže prostě cílím na lidi, které zajímá jak...

    fakt nevím, proč zabíjet debatu neustálými výtkami, že to nemá smysl, apod. - ano, asi nemá, nezaručí vám to dobře placené pracovní místo (zatímco nějaká praxe v C++ asi ani). diskuze je nicméně "poloodborná" a není myšlená tak, že by nutně měla být pro lidi, kteří hledají znalosti, které by šlo uplatnit komerčně. je to prostě jen klub pro lidi, které některé věci zajímají (případně je někdy už zkusili, z nějakého konce se k nim přiblížili, apod.)
    Kliknutím sem můžete změnit nastavení reklam