abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 0
    včera 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    včera 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    včera 14:22 | IT novinky

    Nejvyšší soud podpořil novináře Českého rozhlasu. Nařídil otevřít spor o uchovávání údajů o komunikaci (data retention). Uvedl, že stát odpovídá za porušení práva EU, pokud neprovede řádnou transpozici příslušné směrnice do vnitrostátního práva.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Zajímavý článek

    Minulý týden proběhl u CZ.NIC veřejný test aukcí domén. Včera bylo publikováno vyhodnocení a hlavní výstupy tohoto testu.

    Ladislav Hagara | Komentářů: 22
    včera 04:44 | Nová verze

    Byla vydána nová verze 3.5.0 svobodné implementace protokolu RDP (Remote Desktop Protocol) a RDP klienta FreeRDP. Přehled novinek v ChangeLogu. Opraveno bylo 6 bezpečnostních chyb (CVE-2024-32039, CVE-2024-32040, CVE-2024-32041, CVE-2024-32458, CVE-2024-32459 a CVE-2024-32460).

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    Google Chrome 124 byl prohlášen za stabilní. Nejnovější stabilní verze 124.0.6367.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 22 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    Byla vydána nová verze 9.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Novinkou je vlastní repozitář DietPi APT.

    Ladislav Hagara | Komentářů: 0
    16.4. 18:44 | Nová verze

    Byl vydán Mozilla Firefox 125.0.1, první verze z nové řady 125. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout lze podporu kodeku AV1 v Encrypted Media Extensions (EME). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 125.0.1 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (66%)
     (11%)
     (2%)
     (21%)
    Celkem 517 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Exotické jazyky a různé syntaxe

    23.8.2006 22:22 | Přečteno: 1794× | 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.