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í
×
    dnes 13:00 | Nasazení Linuxu

    Cathode Ray Dude v novém videu ukazuje autorádio Empeg Car (později Rio Car) z let 1999–2001. Šlo o jeden z prvních přehrávačů MP3 do auta. Běží na něm Linux. Vyrobeno bylo jen asi pět tisíc kusů, ale zůstala kolem nich živá komunita, viz např. web riocar.org.

    Fluttershy, yay! | Komentářů: 0
    dnes 02:11 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.7.

    Ladislav Hagara | Komentářů: 0
    dnes 01:44 | Nová verze

    Wayland byl vydán ve verzi 1.24.0. Jde o menší vydání po více než roce. Více funkcionality bývá přidáváno v průběžných vydáních Wayland Protocols.

    Fluttershy, yay! | Komentářů: 0
    včera 23:44 | Nová verze

    Textový editor Geany byl vydán ve verzi 2.1. Jde o udržovací vydání po bezmála dvou letech. Obsahuje drobná vylepšení vyhledávání, aktualizace podpory zvýrazňování syntaxe a dále převážně opravy chyb.

    Fluttershy, yay! | Komentářů: 1
    včera 19:44 | Komunita

    Byly zveřejněny videozáznamy, dostupné také s prezentacemi přímo z programu, a také fotogalerie z open source komunitní konference DevConf.CZ 2025 konané od 12. do 14. června v Brně.

    Ladislav Hagara | Komentářů: 0
    5.7. 20:22 | Zajímavý software

    Navigace se soukromím CoMaps postavena nad OpenStreetMap je nově k dispozici v Google Play, App Store i F-Droid. Jedná se o komunitní fork aplikace Organic Maps.

    Ladislav Hagara | Komentářů: 6
    4.7. 19:33 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.49.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek i s náhledy obrazovek v oznámení o vydání.

    Ladislav Hagara | Komentářů: 1
    4.7. 15:22 | IT novinky

    Masivní výpadek elektrického proudu zasáhl velkou část České republiky. Hasiči vyjížděli k většímu počtu lidí uvězněných ve výtazích. Výpadek se týkal zejména severozápadu republiky, dotkl se také Prahy, Středočeského nebo Královéhradeckého kraje. Ochromen byl provoz pražské MHD, linky metra se už podařilo obnovit. Výpadek proudu postihl osm rozvoden přenosové soustavy, pět z nich je nyní opět v provozu. Příčina problémů je však stále neznámá. Po 16. hodině zasedne Ústřední krizový štáb.

    Ladislav Hagara | Komentářů: 94
    4.7. 02:33 | Nová verze

    Po více než roce vývoje od vydání verze 5.40 byla vydána nová stabilní verze 5.42 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 64 vývojářů. Změněno bylo přibližně 280 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 7
    4.7. 01:33 | Nová verze

    Byla vydána nová stabilní verze 7.5 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 138. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (27%)
     (7%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 364 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Exotické jazyky a různé syntaxe

    23.8.2006 22:22 | Přečteno: 1858× | Linux | Výběrový blog

    Při občasném psaní seriálku o překladačích zjišťuji, že neznám prakticky žádné programovací jazyky. Teda znám jich dost, ale to jsou takové ty běžné, jazyky jako je C, Pascal, C++, Java, JavaScript, PHP, Python, shell, SQL (a PL/SQL) a trochu VHDL. Jediný z exotičtějších jazyků je Smalltalk a trochu jsem viděl D a Logo. Momentálně po očku pokukuji po Lispu (líbí) a Forthu (taky líbí, ale asi nemám využití), což jsou jazyky ze zcela jiného soudku, než ty předešlé (až na ten Smalltalk).

    Proto bych rád věděl, zda někdo z vás nezná některý z jazyků, které jsou pro mě exotické. Příkladem mohou být Eifell, OCAML, Ada, Prolog (přiznám se, že jsem ho moc nepochopil), Haskell, Goedel, nebo třeba veteráni Fortran, případně Cobol. Vím, že si můžu během pár minut přečíst popisy všech jazyků na wikipedii (nebo jinde), ale zajímal by mě váš osobní názor na ten který jazyk. Například to, že jazyk XY má vlastnost YZ, která se mi moc líbí.

    BTW: informace o Lispu, Forthu, Smalltalku, Logu a D pochopitelně beru taky (hlavně se zaměřením na překladače) :-D

    A ještě na závěr malá anketa na téma, u kterého jsem se nemohl s kolegou shodnout. Pokud programujete ve více jazycích současně, dělá vám potíže přecházet mezi různými syntaxemi, anebo preferujete raději všude stejnou (nebo podobnou)?

           

    Hodnocení: 100 %

            špatnédobré        

    Anketa

    Dělá vám potíže přecházet mezi syntaxemi různých jazyků?
     (28 %)
     (52 %)
     (20 %)
    Celkem 89 hlasů

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

    Komentáře

    Vložit další komentář

    23.8.2006 22:59 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Omezovat se na jednu syntaxi nebo jeden druh jazyka a prováděcí model je hřích a tunelové vidění. Kolik mindsetů ovládneš, tolikrát jsi programátorem. :-)

    Dovolím si vzhedem k únavě rukou a hlavy v tuhle hodinu jen jeden link:

    http://www.cfcl.com/~eryk/weblog/archives/000129.html

    Tak, jako existují překvapivé souvislosti v různých oborech matematiky (Wilesův důkaz Fermatovy věty), existují zřejmě i mezi jazyky. I tak architektonicky a koncepčně odlišná prostředí, jaká popisuje odkazovaná stránka, dospěla v mnoha směrech k pozoruhodné podobnosti. Mně to přijde jako pěkný jev. :-)
    23.8.2006 23:28 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Což, zápis mi nepřijde jako problém (on opravdu v podstatě žádný není :-)), ale skutečně třeba ve Forthu něco naprogramovat, to už ano. Snažím se o to, výsledky nevalné.
    Copak toho není dost?
    24.8.2006 02:48 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Leo Brodie praví:

    "In fact, you shouldn't write any serious application in Forth; as a language it's simply not powerful enough. What you should do is write your own language in Forth (lexicons) to model your understanding of the problem, in which you can elegantly describe its solution."

    Přičemž vzhledem k tomu, co je to za jazyk, jde opravdu o vytvoření DSLka a ne jen sady funkcí. Základní problém je, že jak Pavel Tišnovský píše, že Forth je po Lispu a Algolu třetí (ovšem minoritní) jazyková větev. Granularita jeho konstrukcí je dost jiná a já teprv začal vychytávat ty slepé uličky, co včechno se v něm psát nemá. :-D Na rozdíl od některých jiných jazyků je to ale aspoň zábava a kus originálního přemýšlení. :-) Ti lidé, kteří ho nepochopili, jsou pak většinou autoři těch nečitelných kusů kódu, které od něj nováčky odrazují. Funkce na osm řádků v něm fakt není dobrý nápad... :-D

    Jako kdyby ho navrhli mimozemšťani. Hmm, když o tom tak přemýšlím...nejprve infikoval nějakou tu hvězdárnu, že jo? Že by? :-D

    Našel jsem třeba pěknou věc jménem PatternForth - pattern matching engine pro realtimové aplikace. Zajímavá věc, se spoustou znovupoužitelných myšlenek a podknihoven...
    24.8.2006 08:32 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Co jsem četl rozhovory s GvR, tak jeho samotného překvapilo, proč lidé srovnávají Python s Lispem, když on Lisp nezná.

    Ten článek jsem už četl, v podstatě se s ním dá souhlasit. Ale stejně se mi víc líbí S-výrazy, než Smalltalk (možná za to může Squeak) :-D
    When your hammer is C++, everything begins to look like a thumb.
    24.8.2006 08:46 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    „Co jsem četl rozhovory s GvR, tak jeho samotného překvapilo, proč lidé srovnávají Python s Lispem, když on Lisp nezná.“
    No, hádám, že Guido se už stihl v Googlu rozkoukat a že už si popovídal i s Peterem Norvigem... :-D
    24.8.2006 08:57 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    No, myslím, že mu o Lispu někdo pověděl o něco dřív :-). Vzhledem k tomu, jak vehementně se do Pythonu přidává kdeco z okolních jazyků, budou je lidé kolem GvR asi znát.
    When your hammer is C++, everything begins to look like a thumb.
    23.8.2006 23:32 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Mimochodem, hodně mě zaujaly některé prvky Selfu, takže ho přidávám k Michalovo výčtu jazyků, o kterých bych si rád nechal něco povědět ;-)
    Copak toho není dost?
    24.8.2006 08:23 ajikdpoe | skóre: 23 | blog: dvh
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Self:

    (desktop activeWindow) draw: (labelWidget copy label: 'Hello, World!').

    Delphi:

    desktop.activeWindow.labelWidget.label := 'Hello, World!';

    Tak neviem ale to druhe sa mi zda trochu lepsie na pouzivanie !?
    24.8.2006 08:34 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Vzhledem k tomu, že self (aspoň co jsem slyšel) dovádí Smalltalk k dokonalosti, určitě bych jej nesrovnával s Delphi :-D
    When your hammer is C++, everything begins to look like a thumb.
    24.8.2006 18:26 Stanislav Bohm
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Nektere myslenky Selfu pouziva Io (http://iolanguage.com/about/ ) Myslim ze stoji za zhlednuti.
    23.8.2006 23:49 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    David Watzke avatar 24.8.2006 02:58 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    V C++ jsem furt zapomínal na středníky, ale už se to lepší :-)
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    24.8.2006 03:08 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Patchnul sis kompilátor? :-D
    David Watzke avatar 24.8.2006 04:30 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe;
    Ne, pro změnu je píšu všude :-D;
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    24.8.2006 04:40 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    brainfuck

    :D
    24.8.2006 08:28 trancelius | skóre: 22
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    Souhlas, je to správně exotickej assembler-like :))
    mkoubik avatar 24.8.2006 19:08 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    assembler-like
    Programování v assembleru je proti brainfucku procházka růžovou zahradou (viz můj oblíbený "brainfuck hello world!"...)
    14.9.2006 21:53 Harvie
    Rozbalit Rozbalit vše Re: Esoterické jazyky a různé syntaxe
    Pokud ti jde o hello world, pak bys měl sáhnout spíše po jazyce HQ9+ http://cs.wikipedia.org/wiki/Hello_world#HQ9.2B (Satira na omezené možnosti BrainFucku = nesmysl - BrainFuck ye "turing complete"),

    Ale myslím, že snáze lze pochopit BrainFuck, než AssEmBleR, jednak proto, že má asi desetkrát méně instrukcí než assembleru a neřeší přerušení a adresaci paměti a gdesicosi...

    ---------------------------------------------------------------------

    Pokud jde o program hello world, kód vypadá sice vražedně, ale není na něm nic nevysvětlitelného:

    1 ++++++++++

    2 [

    3 >+++++++

    4 >++++++++++

    5 >+++

    6 >+

    7 <<<<-

    8 ] inicializačí cyklus nastaví potřebné hodnoty buněk

    9 >++. výpis 'H'

    10 >+. výpis 'e'

    11 +++++++. 'l'

    12 . 'l'

    13 +++. 'o'

    14 >++. mezera

    15 <<+++++++++++++++. 'W'

    16 >. 'o'

    17 +++. 'r'

    18 ------. 'l'

    19 --------. 'd'

    20 >+. '!'

    21 >. nová řádka

    ---------------------------------------------------------------------

    Příkazy:

    > posun ukazatele o jednu buňku doprava

    < posun ukazatele o jednu buňku doleva

    + zvýšení hodnoty aktivní buňky o 1 (buňky, nad kterou je ukazatel)

    - snížení hodnoty aktivní buňky o 1

    . výpis hodnoty aktivní buňky na standardní výstup (v drtivé většině případů na obrazovku). Pro výpis se používá hodnota aktivní buňky převedená dle kódování ASCII na znak.

    , uložení hodnoty ze vstupu do aktivní buňky

    [ pokud je hodnota aktivní buňky rovna nule, provede přesun ukazatele doprava za odpovídající ]

    ] pokud je hodnota aktivní buňky různá od nuly, provede přesun ukazatele doleva před odpovídající [

    ---------------------------------------------------------------------

    Pozn. 1: Zmíněné ekvivalenty příkazů Brainfucku v jazyce C jsou vycházejí z předpokladu, že proměnná ptr je deklarována jako unsigned char*.

    Pozn. 2: Zmíněné ekvivalenty příkazů Brainfucku v Delphi vycházejí z předpokladu, že proměnná ptr je deklarována jako pointer a aplikace je překládána jako konzolová (pro funkce write a read).
    24.8.2006 08:23 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: Exotické jazyky a různé syntaxe
    ad prechazeni: mam spis problem se znalosti knihoven - zivim se Javou a obcas potrebuju neco maleho v Pythonu - syntax neni problem, ale stravim hodiny nad hledanim trid/funkci/...
    never use rm after eight
    24.8.2006 09:00 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Něco málo k Lispu
    Pár poznámek k Lispu a jeho kompilaci - asi obecně známo, ale stejně

    - obecné označení pro skupinu jazyků stejného původu a podobné syntaxe - Common Lisp, Scheme, ... (dál popisuji Common Lisp)

    - Common Lisp je definován ANSI normou, řada implementací kompilujících do kdečeho (instrukce procesoru - binárka, vlastní bytekód, JVM), povoleny jsou myslím i nekompilující implementace, ač žádnou neznám

    - z hlediska prvního parsování zdrojového kódu - jednoduchá základní syntaxe (sexpy), plus reader makra (typu ' -> quote), která stejně dávají jako mezisyntaxy sexpy, takže nakonec vyleze sada sexpů. Reader makra jsou psána v Lispu.

    - definována fáze kompilace, při které jsou expandována makra a výsledný expandovaný kód je přeložen danou implementací. Makra lze psát vlastní a tudíž definovat, co se má jak překládat. Makra jsou psána v Lispu a převádí sexp na sexp (transformace kódu)

    - kompilaci lze ovlivňovat tím, že se definují parametry optimalizace (s granularitou jemnější než celý soubor), specifikují činnosti, které se mají dělat už při kompilaci (eval-when), inlinování a podobně

    - lze definovat compiler-makra, která se použijí místo funkce při překladu - dojde k expanzi např. do efektivnější formy (rozpoznání konstantních parametrů, speciálních případů a pod) - lze psát vlastní

    - deklarace např. typů jsou nepovinné, ale některé kompilátory je dokáží efektivně využít (sbcl) a naznačují uživateli, co by rádi

    - je možné stínovat funkce standardu, takže v nějakém balíku může defun být nikoliv standardní defun, ale moje upravené defun

    - asi jsem něco vynechal - zmátl, formální specifikace na http://www.lisp.org/HyperSpec/Body/sec_3-2.html

    - optimalizace tail callu není povinná, ale skoro všichni jí provádí (i když třeba interpretovaný clisp ne)
    24.8.2006 09:50 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Něco málo k Lispu
    Kdyby šly bodovat příspěvky, dostal bys plný počet bodů :-)
    When your hammer is C++, everything begins to look like a thumb.
    24.8.2006 13:56 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Něco málo k Lispu
    s odstupem ještě pár dalších:

    - pro kompilaci může být zajímavé jak se nakládá s closures a (teď skáču ke Scheme) s continuations

    - existuje spousta věcí ohledně toho jak se co dá kompilovat, starou klasikou (1977?) je série Lambda the Ultimate (goto, declaration, a pár dalších)

    - implementace stavového automatu popisovaného tuším ve druhém díle vašeho seriálu by se pravděpodobně "nejlispovatějš" tvořila jako jedna funkce pro každý stav, která by podle přijatého písmena volala další z těchto funkcí - celkový výsledek po efektivním překladu při použití tail call optimalizace odpovídá špagetti kódu s goto, jen to je přehlednější - viz zmiňované Lambda the Ultimate Goto. Případně by se dal automat (tabulka přechodů) reprezentovat v nějaké formě a vytvořilo by se makro, které by tuto formu překládalo přímo do onoho špagetti goto kódu.

    Založit nové vláknoNahoru

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