abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 17:02 | Pozvánky

Přijďte si popovídat o open source obecně a openSUSE konkrétně s dalšími uživateli a vývojáři. Oslava nového vydání openSUSE Leap se uskuteční 16. prosince od 17:00 v nových prostorách firmy SUSE v Praze. K dispozici bude nějaké občerstvení a DVD pro ty, kdo je sbírají nebo ještě mají mechaniku. Po párty v kanceláři se bude pokračovat v některé z hospod v okolí.

Miška | Komentářů: 7
včera 14:55 | Zajímavý software

Byla vydána verze Alpha 1.0 otevřeného operačního systému pro chytré hodinky AsteroidOS. Podporovány jsou hodinky LG G Watch, LG G Watch Urbane, Asus ZenWatch 2 a Sony Smartwatch 3. Ukázka ovládání hodinek na YouTube. Jaroslav Řezník přednášel o AsteroidOS na chytrých hodinkách (videozáznam) na letošní konferenci OpenAlt.

Ladislav Hagara | Komentářů: 0
včera 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
včera 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
9.12. 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
9.12. 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
9.12. 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
9.12. 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 810 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: vývojové prostředí

26.8.2012 14:39 Dominik
vývojové prostředí
Přečteno: 910×
Ahoj, měl bych dotaz ohledně toho jak funguje jakékoliv vývojové prostředí na C/C++. Zkoušel jsem pár věcí v pythonu a tam jsme byl zvyklý na ">>>" tedy, že cokoliv jsem napsal, tak mi okamžitě po stistnutí Enter ukázalo, zdali jsem zadal příkaz správně a vyhodilo to nějaký výsledek a nebo špatně a chybu. Jednuduše nevím jak si v C zkontrolovat to co napíši. Zatím pracuji v Dev-C++ a budu vděčný za každou radu. Předem děkuji za odpověd.

Odpovědi

26.8.2012 15:55 MadCatX
Rozbalit Rozbalit vše Re: vývojové prostředí
C je kompilovaný jazyk, tudíž pro kontrolu, že je program zapsán správně je potřeba ho přeložit. Python je jazyk interpretovaný, takže programy v něm napsané je možné okamžitě zpracovávat řádek po řádku.
pavlix avatar 27.8.2012 01:25 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Python je jazyk interpretovaný
Kompilovaný do bajtkódu. To jen pro detailisty :).
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.8.2012 07:26 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Raději transformován než kompilován. Používáním slova kompilace se akorát vyrábějí zmatky, protože transformace do bytekódu nemění na rozdílech mezi C a Pythonem zhola nic.
pavlix avatar 27.8.2012 11:57 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Může být.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.8.2012 14:27 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
A jaký je prosím rozdíl mezi transformací do bytekódu a transformací do strojového kódu?
27.8.2012 14:54 Franta
Rozbalit Rozbalit vše Re: vývojové prostředí
Bajtkód se dále interpretuje (běhovým prostředím) tzn. neběží přímo na procesoru. A zároveň není čitelný pro člověka, takže to není normální zdroják. Takové jazyky/platformy jsou něco mezi kompilovanými a interpretovanými.
pavlix avatar 27.8.2012 15:01 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Nedej bože, aby někdo napsal interpret strojového kódu, to by v tom byl totální bordel. Nebo stroj, který (částečne) interpretuje bajtkód.

A sakra, vždyť oni už to dávno udělali! Obojí! A v několika implementacích. No jo, to jsou ti, co podle povrchní praxe budují novou teorii.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.8.2012 16:19 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Tvar výsledku transformace není pro můj komentář podstatný. Podstatné je, jak vypadá (standardní) cílové runtime prostředí. U REPL a běhu na železe úplně jinak.

I blbé změny v časování znamenají, že adaptivní volba algoritmů ve FFTW znamená spuštění úplně jiného kódu v různých prostředích. A pak porovnávej...
27.8.2012 17:34 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
A co je standardní runtime prostředí u jazyků, u kterých existují obě varianty (jak železo, tak virtuálka) a kdo to určuje? IGCLIC? (international group for classification of languages to interpreted and compiled)???

A mohl by si prosím zatřídit např. takový jazyk cython, který se dá přímo (dle dokumentace autorů) používat dvěma způsoby: buďto pomocí cimport načíst přímo do (podle Tebe jistě interpretovaného) pythonu a klasicky interpretovat, nebo zkompilovat do .so pomocí transformace přes C, což je evidetně kompilovaný jazyk, takže evidentně kompilovat? A žádná z těch možností není preferovaná, každá se hodí někdy.

A to víš, že na JAVU existuje i spousta neoriginálních JVM které se v některých detailech odlišují od normy? Znamená to, že je JAVA kompilovaná? Nebo to znamená, že Tvůj druhý odstavec při debatě, zdali se nějak liší interpretované jazyky od kompilovaných nemá význam?

PS: On ani mít význam nemůže, protože třeba taková moderní AMD64 architektura je vždy založena na mikrokódu a tedy to není nic jiného, než REPL smyčka.
rADOn avatar 27.8.2012 19:13 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: vývojové prostředí
Dokud nezačala tahle zkryplená móda buzzwordismu tak se běžně používal všeliký preprocesing kódu (flex, yacc etc…) ale prostě se tomu neříkalo kompilování. To co můzu nacpat do stroje je poctivý stroják. To s čím si stroj bez cizí pomoci neporadí je bajtkód. Kulička z hovna nad kterou se tu hádáte je ponejvíce produkt marketrotlismu "kompilování" bajtkódu v Javě aby mohli javisti dělat ramena že mají něco víc než vyhoněný interpretr :-) Pokud si uvědomíš že javovský "bajtkód" není schopný běžet bez JVMka a přestaneš takovému jazyku říkat "kompilovaný" tak je hranice jasně daná.

Cython sice obsahuje nějaké běhové prostředí podobné pythonu, ale je zakompilované přímo do binárky. Výsledek je hrouda strojáku nezávislá na nějakém dalším virtuálním stroji, ovšem jak si rač všimnout ne úplně kompatibilní s cpythonem.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
27.8.2012 19:59 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Souhlasím, máš uplně a zcela bez výjimky pravdu.... teda až na ten drobný detail. Víš vůbec, že některé ARM procesory umí nativně běžet Javovský bytekód? Protože tendle fakt jaksi staví Tvoji argumentaci na hlavu. Z pohledu tědle ARMU se Java nikterak neliší od strojáku (see Jazelle) - stejně jako je podle Tvojí interpretace je C interpretovanej jazyk, protože nativně zkompilovaný Cčkový binárky pro motorolu běhal Apple na intelech ve virtuálním stroji.

Stejnětak cython není nyní 100% kompatibilní s pythonem, ale je to vývojový cíl (verze 1.0 být má). Co až kompatibilitu dokončí, co se stane? Bude python kompilovaný nebo interpretovaný? Nebo se zhroutí svět?

rADOn avatar 29.8.2012 18:06 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: vývojové prostředí
Víš vůbec, že některé ARM procesory umí nativně běžet Javovský bytekód?
Nejenom že to velice dobře vím, ale přímo jsme čekal jestli vypálíš tuhle blbost aniž bys přečetl co jsem vlastně psal. Javovský bytekód je (teoreticky) strojovým kódem takové architektury, moje argumentace platí stejně. Prakticky to nijak zázračně nefungovalo a proto se to nikdy neujalo. Jako argument je to spíš odstrašující příklad proč se java bez JVMka provozovat nedá.
Stejnětak cython není nyní 100% kompatibilní s pythonem, ale je to vývojový cíl (verze 1.0 být má).
Jasně, přístí verze bude dokonalá. Kde já jsem to jen slyšel… Opravdu věříš tomu že existuje nějaky zázračný všelék a že všichni ostatní tvůrci interpretovaných jazyků jsou blbci nebo spiklenci?
Co až kompatibilitu dokončí, co se stane? Bude python kompilovaný nebo interpretovaný? Nebo se zhroutí svět?
Pokud věříš na rozbití celosvětového spiknutí tvůrců interpretovaných jazyků, tak se ti asi opravdu zhroutí svět. Jinak bude záležet jak se autoři cythonu postaví k omezením které klade statická kompilace – buď to bude zase jen omezená podmnožina funkčnosti pythonu nebo to bude obsahovat funkční ekvivalent interpretru včetně mizerného výkonu. Python prostě dovoluje dělat operace které předem zkompilovat nejdou. Nicméně takový zakompilovaný interpret je podle mojí filozofie spustitelný stroják a není na tom nic špatného. Naopak, přesně to ilustruje proč je "kompilování" nezkompilovatelného kódu kokotina. (Pomíjím že zakompilený interpret se hodí z jiných důvodů než honění si kompilačního trika.)
"2^24 comments ought to be enough for anyone" -- CmdrTaco
29.8.2012 23:43 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
>> proč se java bez JVMka provozovat nedá..... viz GCJ, který spousta lidí úspěšně používá, protože programy jím kompilované běží často značně lépe, než na JVM

>> Prakticky to nijak zázračně nefungovalo... protože architektura JAVY je pomalá (stack based) a tedy její interpretování může být stejném hardware někdy rychlejší, než nativní běh. Což jen dokazuje, že být "nativní" samo o sobě ještě nezaručuje rychlost (ani nic jiného).

>> aniž bys přečetl co jsem vlastně psal ale já to čet, jen prostě tvrdím, že sis udělal umělou kategorii: kód přímo spustitelný procesorem (což ale pravda, je k tomu potřeba někdo kdo rozumí ELF, linker dynamických knihoven, služby OS atd... a i nativní kód se před spuštěním upravuje: např. mapování dynamických knihoven atd...) a kód, kterej potřebuje před spuštěním nějakou další úpravu. Todle kritérium je ale naprosto umělé, protože nic neříká ani o tom, jak se chová aplikace z pohledu vývojáře, ani jak se chová z pohledu uživatele.

>> ostatní tvůrci interpretovaných jazyků. Hlavním smyslem Cythonu není začít jazyk kompilovat (podobné rychlosti by šlo dosáhnout s dobrým JIT kompilerem), ale zavést typovost a snadné propojení s jazykem C, obojí převážně proto, aby vznikl nástroj vhodný na numerické výpočty. Ostatní tvůrci interpretovaných jazyků mají jaksi jiné cíle a proto volí i jiné prostředky. Holt když se koukáš na problém s předporozuměním, že interpretovanost je zlo, docházíš ke špatným závěrům.

>> interpreteru mizerného výkonu. říká Ti něco JIT? K dispozici jsou papery a dokonce i testy, které prokazují, že některé techniky v JIT mohou vést k rychlejšímu kódu, než statická kompilace. (pomalost Javy je daná něčím jiným, než jen interpretací, což je vidět mj. v tom, že existují i javové knihovny pro HPC).

>> Pokud věříš na rozbití celosvětového spiknutí tvůrců interpretovaných jazyků, Ne, já narozdíl od Tebe nevidím na interpretovaných jazycích nic divného (a když se koukneš na procenta zastoupení, tak se se mnou shoduje většina vývojářů) a nevím, proč by to, že někdo z určitých důvodů udělá kompilátor jednoho jazyka do té doby interpretovaného mělo něco znamenat. Právě proto, že to, zdali je jazyk interpretován nebo kompilován o jazyku nikterak nic nevypovídá.

>> Nicméně takový zakompilovaný interpret... A jak řeší člověk např. v C, když má vykonávat nějaké příkazy vzniklé až za běhu? Úplně stejně: přibalí k programu nějaký interpreter, který umožňí kompilovat věci za běhu. Stává se tím z C interpretovaný jazyk? A vadí něčemu, že v některých jazycích je takový interpret standardně k dispozici a náhodou umí totéž, co samotný jazyk? Např. takový Visual Basic EVAL měl todle uměl a přitom byl kompilovaný. Totéž platí o některých implementacích LISPU. Z toho je jasně vidět, že vlastnost "míti eval" není nikterak omezená na interpretované jazyky.
30.8.2012 09:15 JS
Rozbalit Rozbalit vše Re: vývojové prostředí
protože architektura JAVY je pomalá (stack based) a tedy její interpretování může být stejném hardware někdy rychlejší, než nativní běh.
Neni to co rikal Radon?
Což jen dokazuje, že být "nativní" samo o sobě ještě nezaručuje rychlost (ani nic jiného).
Nedokazuje. To ze je JVM bajtkod nativni na nejake obskurni HW architekture jeste neznamena, ze pobezi rychleji nez nativni kod na nejake jine architekture. Nativni kod je rychlejsi uz z definice. (A JIT preklada do nativniho kodu, takze to jde opravdu mimo ten argument.)

Zbytek nema cenu komentovat - ty se proste chces hadat. :-)
rADOn avatar 30.8.2012 12:45 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: vývojové prostředí
Hlavním smyslem Cythonu není začít jazyk kompilovat…
Čili se dostáváš k tomu co jsem říkal na začátku, že taková "kompilace" jen pro fantazii většího výkonu je pikačovina. Nic jiného jsem netvrdil ani o cythonu (potažmoy PyPy a PsyCo) ani o interpretovaných jazycích vůbec.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
27.8.2012 19:32 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Výborně, vhodným kouzlením s pojmy sis dokázal, že černé je bílé, svoboda je otroctví a mezi C a Javou a Pythonem není z hlediska cesty od zdrojového kódu k vykonání žádný rozdíl. Poplácej se po rameni a na základě onoho závěru čiň praktická rozhodnutí. Přeji ti mnoho úspěchů.
27.8.2012 20:25 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Jasně, argumenty došly, nasadíme jízlivost.

Jestli jsi nepochopil, já nikterak nezapírám, že v x86 procesoru se s C-zkompilovaným kódem zachází jinak, než s Java bytekódem. Já jen tvrdím, že to ale není vlastnost jazyka jako takového, ale maximálně běhového prostředí a architektury, kde se spouští (viz 1) a o vlastnostech jazyka včetně rychlosti to neříká v podstatě nic (2)

1) Protože jaksi existují architektury, které např. JAVU vykonávají nativně, existují prostředí, kde se provádějí C binárky jako bytekód na virtuálním stroji atd... Existuje dokonce "kompilátor" PHP do C# bytekódu a kompilátor C# bytekódu do nativního kódu. Takže když budu chtít, můžu si zkompilovat i PHP. A takový BASIC, typický "interpret" .... začal jako kompilátor a spousta jeho vezí byla kompilována

2) což je vidět na tom, že výkonnostní rozdíl mezi PHP a javou je řádově větší, než mezi C a Javou (v některých případech je java i rychlejší), nebo na tom, že existují kompilované jazyky značně pomalejší než Java (např. forth nebo Visual Basic 5)
Voty avatar 27.8.2012 21:10 Voty | skóre: 12 | blog: gemini
Rozbalit Rozbalit vše Re: vývojové prostředí
Dle IGCLIC jest od této chvíle zapovězeno říkat "XYZ je interpretovaný jazyk", resp. "XYZ je kompilovaný jazyk" a připouští se pouze korektní formulace "Na platformě ABC je jazyk XYZ interpretovaný, neboť je vykonáván interpretrem KLM", resp. "Na platformě ABC je jazyk XYZ kompilovaný, neboť překladač KLM jej překládá do strojového kódu" :)

(Jedná se pouze na draft, návrhy a připomínky posílejte do /dev/null)
Jednu rozbil a tu druhou ztratil.
pavlix avatar 27.8.2012 21:46 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Jedná se pouze na draft, návrhy a připomínky posílejte do /dev/null
Poslal jsem ti hromadu připomínek, tak se snaž :).
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.8.2012 21:52 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Kdysi jsem pracoval s kompilátorem, jehož výstupem byl spustitelný soubor. Když jsem se však do toho souboru podíval, našel jsem v něm běhové prostředí a za ním přilepený bytecode mé aplikace. Byl to tedy kompilovaný nebo interpretovaný jazyk? A není to jedno?

Podle mne nejúspěšnější aplikace vznikly tak, že autor nejprve navrhl vlastní vysokoúrovňový programovací jazyk, ve kterém chtěl aplikaci napsat. Potom v nízkoúrovňovém jazyku napsal jeho interpretr. Pokud mu nestačila rychlost, vložil ještě třetí vrstvu mezi ně - bytecode jako výsledek převodu z vysokoúrovňového jazyka.

Kompilátory do bytekódu a jeho běhové prostředí jsou jen pokusy o více či méně povedenou unifikaci.
28.8.2012 00:08 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Hmmm, problém je, žes pořád nepochopil, co tvrdím

- jednak nezáleží jen na platformě: na libovolné platformě mohu napsat libovolný překladač či interpret libovolného jazyka. Takže výraz na platformě ABC je jazyk XYZ kompilovaný je furt blbina. Posílám do /dev/null formulaci, která to zohledňuje.

- jednak je důležitý závěr z tohoto pozorování: to, zdali daný zpracovátor jazyka je kompilátor či interpret nevypovídá o jazyku naprosto a vůbec nic, protože to vůbec NENÍ VLASTNOST TOHO JAZYKA ale čistě toho zpracovátoru. Např. k javě dávno existuje čistý kompilátor: změnilo to snad jazyk nějak?

A to je hlavní podstatou mých příspěvků, silně se ohrazujících proti tomu, že "kdosi" tady někdo psal, že to, že pro python zrovna nejpoužívanější implementace je bytecode interpreter, zatímco pro C kompilátor, nějak definuje vlastnosti toho jazyka. Přitom existují jak pro C interpretery, tak pro Python kompilátory a to, že je mezi těmi jazykt rozdíl je dané úplně něčím jiným.

- Z tohodle pohledu je také bazírování na rozdílu mezi trasformací a kompilací naprosto zbytečné honění trika, protože "transformace" je prostě kompilace, akorát do jiného strojového jazyka, než zrovna umí vykonávat ten kus křemíku, kterej je v tomdle počítači. Nebo snad crosskompilace také není kompilace?
30.8.2012 09:20 JS
Rozbalit Rozbalit vše Re: vývojové prostředí
Ja bych rekl, ze vlastnosti jazyka definuji, jestli se kompilator nebo interpret hodi lip. Napriklad Java pouziva .class soubory. Muzes napsat cisty kompilator pro Javu, ale vezmi si treba pripad, kdy distribuujes nejaky plugin do programu. Pro Javovy program ho distribuujes jako .class, pro C program jako .so. Tedy, tvoje rozhodnuti pouzit kompilator je ovlivnene tim, o jaky programovaci jazyk se jedna, neni na nem nezavisle.
30.8.2012 13:34 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
No vlastnosti jazyka ovlivňují, zdali se líp píše kompilátor, nebo interpret. To s tím pluginem myslím moc na jazyku nezávísí: so soubor napíšeš skoro v čemkoli - a může to být klidně kousíček kompilovaného kódu volající něco interpretovaného. .class soubor také není zdaleka vázán na jeden jazyk.

Tady jde IMHO čistě o to, že když píšeš něco pro nějaké prostředí (architektura, typ procesoru, OS, okolí), tak musíš použít jazyk, ke kterému existuje kompilátor (interpreter) schopný vytvářet kód vhodný pro to prostředí. To, jestli je to kompilátor či interpreter na tom až tak nezávisí: např. do interpretovaného pythonu jdou dělat "pluginy" v interpretovaném pythonu, anebo také v kompilovaném C, Fortranu, Cythonu...
28.8.2012 00:05 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
A já zase tvrdím, že oddělovat běhové prostředí od jazyka je akademické teoretizování, protože úplný popis ho musí zahrnout (a tedy není C jako C).

Ale dobře, když si myslíš, že se jazyky vůbec něčím liší, fajn. Jelikož jsou všechny turingovsky kompletní, jmenuj nějaký podstatný rozdíl mezi nimi na této abstraktní úrovni.
28.8.2012 00:16 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Ehm.... a já myslel, že jsem tady zrovna na serveru o linuxu, kterej právě žije čistě z toho, že ač je mnoho běhových prostředí, tak existuje jen jedna norma C a proto může být např. jedno linuxové jádro společné pro všechny...

btw. pokud používáš "nedefinovaná chování", tak si to jednak užij, jednak Ti garantuju, že se budou lišit nejen architektury, ale i jednotlivé kompilátory i jejich verze. Právě jeden z hlavních smyslů vyšších programovacích jazyků je právě ODSTÍNIT programátora od konkrétních implementačních detailů jednotlivých procesorů a nabídnout prostředí jednotné.

28.8.2012 08:11 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Prosím citaci na to, kde jsem psal o používání nedefinovaného chování.

Cílové prostředí je vždy defnováno: například konkrétní jednočip. A ne, nespustíš na něm Linux.
28.8.2012 10:34 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
No pokud nepoužíváš chování nedefinované normou, pak se C, pokud je správně naimplementováno, chová všude stejně, a tedy na běhovém prostředí opravdu nezáleží.

Ano - jsou platformy, na kterých jazyk C neexistuje, nebo existuje jeho proprietální zmršenina. A jsou i platformy, kde třeba nejsou v C potřebné drivery. Ale, mám za to, žes zrovna Ty tady psal o nesmyslnosti akademických debat...

PS: Samozřejmě, platformy se občas dosti liší dostupnými knihovnami. Ale jak to souvisí s jazykem? Knihovny jsou linkovatelné z libovolného jazyka.
28.8.2012 11:59 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Freestanding C implementace, kde není ani libc, je normálně podle standardu.

V realitě se nepíše pouze pro nějaký standard, ale vždy pro definované cílové prostředí, které bude mít určité vlastnosti nedefinované standardem (i hello-world.c předpokládá hosted C), do čehož patří všechno od knihoven, přes vlastnosti dynamického linkeru až po konkrétní hadrware. Co je na tom akademického?
28.8.2012 13:46 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Ano - a hosted C je ovšem také standard jazyka. Otázka je, který standard, když srovnáváme C s dalšími jazyky je asi ten relevantní, o kterém se bavíme. Jelikož u ostatních jazyků také ke standardu patří i implementace standardní knihovny, tak normální člověk předpokládá hosted C.

Máš pravdu, že argumentace freestanding C není akademická debata - je to křečovitá snaha obhájit si svůj názor tím, že běžnému významu slova "C" tak, jak mu bude bez bližší specifikace rozumět 99% lidí, dáváš jiný význam (zeptej se kohokoli, kdo umí C, jak vytisknout řetězec: kolik z nich ti neodpoví puts popř. printf, ale začne řešit freestanding C?).
28.8.2012 14:45 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Já jsem nezačal s tím, že navzdory tomu, že jazyk X v drtivém počtu případů vykazuje vlastnost Y a běžně se bere za pro něj charakteristickou, tak to není inherentní vlastnost a existují situace, kdy se něco dělá jinak. Kdo si co navařil, ať si to taky sní ;)
28.8.2012 20:35 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Furts to nepochopil: jazyk X žádnou v drtivé většině případů nevykazuje vlastnost Y, býti kompilovaný prostě není vlastnost jazyka jako takového, ale jeho kompilátoru. O jazyce to neříká vůbec ale vůbec nic. Schválně se podívej např. do normy ANSI C, kolikrát se tam mluví o kompilaci (výskyt toho slova je tam asi pětkrát). Nebo se koukni na JAVU: ta pravda standardizuje svůj bytekód, ale co má spolu společného java, javascript, closure jako jazyky? Nic. a přesto jdou kompilovat do stejného bytekódu.

Ta distinkce není žádné slovíčkaření, ale podstatné pozorování, které ukazuje, že soudy: "jazyk X je kompilovaný, tedy je pomalý" jsou ve skutečnosti špatné, protže ta pomalost je daná nikoli tím jazykem, ale použitým kompilátorem. Což má i praktický dopad: protože není třeba měnit jazyk, stačí měnit kompilátor (iterpret). S tím, na jakém kompilátoru/interpreteru je ten jazyk běhán nejčastěji to nikterak nezávisí. Naopak Ty jsi v diskusi smísil dva naprosto rozdílné jazyky (pro vývojáře je daleko větší rozdíl mezi freestanding C a hosted C: jak v komfortu psaní, tak v tom, kde se tyto jazyky užívají, než např. mezi hosted C a Javou) a na základě toho zmatení pojmů jsi se snažil argumentovat.

A furt tady zůstává ten Tvůj obrovský rozdíl mezi kompilovanými a interpretovanými jazyky, který spočívá čistě v tom, který virtuální stroj umí či neumí výsledný bytekód vykonat (btw. ani exáč/ELF není spustitelný sám o sobě, vyžaduje nějaký runtime). Pro normálního člověka to prostě žádný rozdíl není, např. s Javou je vývojový cyklus naprosto stejný jako s C, v dobře zkonfigurovaném OS se neliší ani spouštění (a v špatně nemusíš spustit ani ten ELF). Kde je ten obrovský rozdíl, který je třeba řešit? V tom, že když přenesu daný kód na jiný stroj (arm s jazelle), tak je to najednou naopak?
29.8.2012 18:25 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Áha, takže jsme zpět u akademických kydů ;)

Je podle tebe to, že jazyk C vznikl okolo roku 1972, jeho vlastnost, nebo není?

Pokud to je jeho vlastnost, tak existují vlastnosti jazyka, které nejsou předepsány standardem, ale jeho původem, užitím, etc.

Pokud to není jeho vlastnost, tak co to tedy je? A ať už zde použiješ jakýkoli termín, tak já v tomto smyslu zde užívám slovo vlastnost, a užívati budu nadále.
29.8.2012 18:28 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
s/ale jeho původem/ale dány jeho původem/
pavlix avatar 29.8.2012 20:38 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Áha, takže jsme zpět u akademických kydů ;)
Já myslel, že ty tu vedete celou dobu :D.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
29.8.2012 21:57 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Nj, nj, jdu klečet do kouta :D
29.8.2012 23:17 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Ano, jazyk C vznikl 1972. Takže je to jeho vlastnost. Ovšem je to veskrze nepodstatná vlastnost, která nemá žádný vliv na to, jaký ten jazyk je, jak se v něm co dobře vyvíjí atd.... To ovlivňuje pouze standard jazyka a dostupné nástroje k tomu jazyku (které už ovšem vlastností jazyka samotného nejsou: může existovat kvalitní programovací jazyk, ovšem na dané architektuře např. bez debuggeru a tedy těžko v praxi použitelný).

Totéž platí o původu - opět je to sice vlastnost jazyka, ale nic o něm neříkající. Užití jazyka pak už vůbec není vlastnost jazyka, ale někdy fakt vyplývající z jeho vlastností a někdy fakt vyplývající z něčeho úplně jiného.

29.8.2012 23:57 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
Opravdu si myslíš, že to, jak se jazyk vyvíjí, je určeno pouze standardem? To asi žijeme v různých vesmírech. V tom mém se to, jak se jazyk vyvíjí, promítá do dalších verzí standardu.

Existence nástrojů je vlastnost jazyka, protože je to něco, co k jazyku inherentně patří. A ano, může se s časem měnit, stejně jako se s časem mění i ,akademické` vlastnosti, tedy specifikace.

Řekne-li se Python, představím si nejen specifikace, ale i standardní knihovnu, šíři různých implementací, bindingy pro knihovny, ... až po zvýrazňování syntaxe ve vimu. I všechny tyto externality k němu patří. Chceme-li se bavit o formálních specifikacích, bavme se o nich, ale v tom případě se bavíme o vybraném aspektu jazyka: jeho formální specifikaci, nikoli o celku.
pavlix avatar 30.8.2012 00:24 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: vývojové prostředí
Opravdu si myslíš, že to, jak se jazyk vyvíjí, je určeno pouze standardem
Nějak takové tvrzení nemůžu najít v jeho příspěvcích. Že by sis to vycucal z prstu?
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
30.8.2012 13:49 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: vývojové prostředí
Kdo mluví o vývoji jazyka? Jazyk ať se vyvíjí jak chce. V jeden konrkétní čas má ale jeden standard (ať už psaný, nebo nepsaný) a ten určuje jeho vlastnosti.

Mezi změnou nástrojů umožňující snažší vývoj v daném jazyce a změnou specifikace jazyka samotného je ohromný rozdíl. Když si upravím nástroje, pořád můj kód splňuje standard jazyka a tedy je použitelný i bez těch mých nástrojů. Mohu je tedy bez jakýchkoli problémů rozšiřovat, měnit, použít najednou úplně jiné nástroje. Kód to ovšem nechá zcela netknutý a kdokoli mající kompilátor jazyka daného standardu může můj kód zkompilovat a podílet se na vývoji.

Pokud si upravím standard jazyka jako takový, vytvořil jsem nový jazyk, protože můj kód už nadále není zpracovatelný ničím jiným, než pouze tím mým upraveným kompilátorem.

Standardní knihovny samozřejmě k standardu jazyka patří a je to dokonce pro vývojáře jedna z nejdůležitějších vlastností jazyka (možná nejdůležitější): proto také tvrdím, že freestanding C a hosted C jsou zcela jiné jazyky, defakto od sebe vzdálenější než např. C a Java.

PS: Samozřejmě, při zvažování jaký jazyk užít je třeba zvážit i dostupnost vhodných nástrojů pro vývoj. To ale není věc samotného jazyka, stejně tak člověk musí např. zvážit cílovou platformu (OS atd...) a také to přitom není záležitost jazyka, byť některé platformy člověka ve volbě jazyka omezují.
26.8.2012 17:25 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: vývojové prostředí
Ahoj, to co hledas se jmenuje REPL. V tom clanku na wikipedii je odkaz na nejake projekty v C/C++, ale netusim, neb me nikdy nic takoveho v C/C++ nenapadlo.
26.8.2012 17:48 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
REPL pro kompilované jazyky může být užitečná hračka pro blbnutí s výrazy nebo jednoduché zkoušení knihovních funkcí, avšak je zapotřebí si vždy uvědomovat, že nereprodukuje binární kód, který vygeneruje reálný kompilátor + linker, ani podmínky, za kterých poběží, pouze se to pokouší emulovat.

Ineraktivní interpret interpretovaných jazyků je naproti tomu stejný jako neinteraktivní, byť může volitelně poskytovat různé vychytávky pro interaktivní mód.
27.8.2012 22:15 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Považuji za hloupost snažit se interpretovat jazyk C. Daleko užitečnější bude, když si navrhneš vlastní jazyk, který bude splňovat požadavky pro interaktivní práci a v C/C++ si napíšeš jeho interpretr.

Není vždy nutné používat sílu Pythonu či Javy. Někdy jen stačí nechat se inspirovat třeba jazykem Waduzitdo, i když tak primitivní (neúplný) jazyk bude jen stěží hledat uplatnění.
28.8.2012 00:14 l4m4
Rozbalit Rozbalit vše Re: vývojové prostředí
A poté, co navrhneš vlastní jazyk, nezapomeň ještě navrhnout vlastního package managera, nebo rovnou celé linuxové distro, zdokumentuj to ve vlastním formátu dokumentace, který popíšeš na stránkách vytvořených pomocí vlastního webového frameworku...

Navrhnout vlastní jazyk je samozřejmě zajímavé intelektuální cvičení. Ale jako cvičení by to taky mělo zůstat. TriINTERCAL na tebe...
28.8.2012 08:06 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Však tady jde hlavně o intelektuální cvičení. Pokud specifikuji, co by daný jazyk měl umět, snáze vyberu nejvhodnější. A pokud si nevyberu, tak většinou ten požadovaný jazyk je mnohem jednodušší, než všechny nabízené a dá se slepit za pár hodin.

Zapomeň na package managera a další popsané "závislosti". To přece není nutné.

TriINTERCAL vypadá zajímavě, ale nepoužitelně. Sám jsem si kdysi vyrobil vlastní interpretr na 120 řádcích, který mi slouží dodnes.
28.8.2012 14:36 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: vývojové prostředí
Ale jako cvičení by to taky mělo zůstat.
Když by se tím řídil každý , tak by nedocházelo k žádnému pokroku.
28.8.2012 22:55 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Díky za zastání. Ostatně jsem neměl na mysli žádný univerzální jazyk, ale jazyk určený k řešení konkrétní úlohy. Dnes se tomu honosně říká "interface". Teprve ve chvíli, kdy se budu snažit z toho udělat univerzální jazyk, vznikne ten správný paskvil, viz třeba ORM.
30.8.2012 09:05 JS
Rozbalit Rozbalit vše Re: vývojové prostředí
Super! Autor je zjevne zacatecnik a ty mu doporucis, at si navrhne vlastni jazyk... :-)
30.8.2012 09:13 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Však to je úloha pro začátečníka. Ty jsi snad začínal na něčem složitějším?
30.8.2012 09:23 JS
Rozbalit Rozbalit vše Re: vývojové prostředí
:-) Podotykam, ze mluvime o navrhu, ne implementaci jazyka.
30.8.2012 09:29 Kit
Rozbalit Rozbalit vše Re: vývojové prostředí
Správně vedený začátečník zvládne obojí během velmi krátké doby.
28.8.2012 15:05 Ivan
Rozbalit Rozbalit vše Re: vývojové prostředí
Tahle cela debata uhnula kousek vedle. Bud si stahni MSVC Express od Microsoftu, anebo pouzij Eclipse CDT. Obe prostredi se snazi o alespon castecnou syntaktickou kontrolu toho co pises. Takze nemusis porad dokola kompilovat, abys nasel nejakej preklep.

C++ bohuzel neni jazyk, kde by bylo neco takoveho udelat na 100% bez kompilatoru, takze stejne musis cas od casu kompilovat.

29.8.2012 11:21 Roman DAVID | skóre: 24 | Brno
Rozbalit Rozbalit vše Re: vývojové prostředí
Pripadne zkusit Code::Blocks (http://www.codeblocks.org).

To je IDE pro C++
iwtu avatar 31.8.2012 10:13 iwtu | skóre: 7 | blog: Personal Wiki
Rozbalit Rozbalit vše Re: vývojové prostředí
Ahoj, Ultimatne IDE pre C a C++ sa povazuje KDevelop, ale pre zaciatocnika to moze byt vopruz. Na Windowse je najlepsie Visual Studio. Je to trochu moloch, ale vyjde z neho aj zaciatocnik. Na uvod je pekne, jednoduche a multiplatformove IDE Qt Creator (s nim by mozno bolo aj najlepsie zacat).

Ale kazdopadne odporucam aj napisat program v nejakom textovom editore a potom ho skopirovat rucne, aby si mal predstavu, ze co vlastne deje.

Good Luck. (sakra, preco ma vzdy pri tej fraze napadne Taken)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.