Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Programovací jazyky používané (nejen) v SSSR (část 3 – LISP)

risototh
risototh (neregistrovaný) ---.usr.iklub.sk
11. 3. 2010 0:18 Nový

LISP

celé vlákno

Pri LISPe ma napada iba jedina asociacia: Lost In Stupid Parenthesis :)

I/O
I/O (neregistrovaný) 147.32.68.---
11. 3. 2010 1:35 Nový

Re: LISP

celé vlákno

To nás na první přednášce upozornili, ať se připravíme, že to je Language Intended for Smart People. :-)

alblaho
alblaho (neregistrovaný) ---.131.broadband4.iol.cz
11. 3. 2010 9:03 Nový

Re: LISP

celé vlákno

Taky jsem se na to dřív díval tak, že LISP je jen hromada závorek.

Ve skutečnosti jde o to, že je to jazyk bez syntaxe. Člověk přímo zapisuje ten strom, který u „obyčejných“ jazyků dělá parser. No a tahleta fíčura má svoje výhody, třeba že program a data jsou zde opravdu jedno a to samé.

Chytré hlavy pro to používají slovo „homoikonický“.

Program
Program (neregistrovaný) ---.cust.nbox.cz
11. 3. 2010 12:34 Nový

Re: LISP

celé vlákno

Jazyk bez syntaxe? To snad ne. I když pravda, pokud by se to zapisovalo všechno consama, tak by to byl téměř syntaktický strom, o kterém mluvíte, ale i to jen téměř.

alblaho
alblaho (neregistrovaný) ---.131.broadband4.iol.cz
12. 3. 2010 12:53 Nový

Re: LISP

celé vlákno

Já v tom kódu ten syntaktický strom vidím. Každopádně je to syntaxe na tak primitivní úrovni, že parser nacvaká i malé děcko na čelním panelu počítače.

Program
Program (neregistrovaný) ---.cust.nbox.cz
12. 3. 2010 13:41 Nový

Re: LISP

celé vlákno

Jo, souhlas. Syntaxe LISPu je podobná syntaktickému stromu a udělat syntaktický analyzátor LISPu by mělo být snadné (tohle je řekl bych jeho největší výhoda), ale neřekl bych, že je to jazyk bez syntaxe. Možná jde jen o subjektivní výklad pojmu…

Petr Mejzlík aura:57
11. 3. 2010 17:20 Nový

Re: LISP

celé vlákno

Není to spíš nevýhoda? Míchání kódu a dat se nepovažuje za bezpečné.

JS
JS (neregistrovaný) ---.net.upc.cz
11. 3. 2010 20:48 Nový

Re: LISP

celé vlákno

Mozna je to povazovano za nebezpecne, ale v jinych kontextech. Treba z hlediska bezpecnosti datovych souboru prenasenych po siti. Nebo z hlediska ulozeni v pameti.

V Lispu to znamena zas neco trosku jineho, a totiz, ze muzete programem manipulovat jako daty, a tedy snadno generovat programy. Makra v Lispu toho velmi vyuzivaji. Umoznuje to psat daleko mocnejsi (a zaroven bezpecnejsi) makra nez treba C preprocesor.

x14 aura:88
x14
11. 3. 2010 22:03 Nový

Re: LISP

celé vlákno

C preprocesor je dost nízký standard.

JS
JS (neregistrovaný) ---.net.upc.cz
12. 3. 2010 9:03 Nový

Re: LISP

celé vlákno

Je to standard.

Timy _ aura:55
11. 3. 2010 0:30 Nový

Tečkové páry

celé vlákno

Děkuji za dobrý článek, poznámku bych měl jen k přepisu „tečka-dvojice“. Zní to podivně nečesky, u nás na škole používáme tečkové páry, IMHO to zní lépe :-).

patrol
patrol (neregistrovaný) ---.gtsgroup.cz
11. 3. 2010 8:30 Nový

Re: Tečkové páry

celé vlákno

Ano, to je pravda. Zde se projevuje jedna z genialnich vlastnosti anglictiny – z kazdeho podstatneho jmena jde udelat sloveso nebo pridavne jmeno. Zde je to zrovna tento priklad – dot (tecka) uzit ve funkci pridavneho jmena. Podobny problem je treba s prekladem zapisu IP adresy v IPv4, coz je v originale „dotted quad“. Kazdopadne zadny preklad mi neprijde dost rozumny – ty „teckove pary“ navozuji predstavu, ze tam nekde bude par tecek, coz neni :-). Mozna bych pro to navrhl specialni nove slovo „teckapar“, „teckapary“ :-).
Zdravi Pavel

Pavel Tišnovský aura:98
11. 3. 2010 8:44 Nový

Re: Tečkové páry

celé vlákno

My jsme zase pouzivali (FIT VUTBR) prave ty „tecka-dvojice“, takze cesky preklad asi bude dost nejednotny. V pristi casti si nejsem jisty, zda pouzivat termin „forma“ nebo „vyraz“, nejaky hint? V zahranicni literature vetsinou skalni LISPari pouzivaji termin „forms“ u odpadliku, kteri zkusili i jiny jazyk :-) zase prevazuje „expression“…

BLEK.
BLEK. (neregistrovaný) ---.net.upc.cz
11. 3. 2010 0:37 Nový

Re: Programovací jazyky používané (nejen) v SSSR (část 3 – LISP)

celé vlákno

Shltnul jsem to jedním dechem.

Eduard DRUSA aura:55
11. 3. 2010 8:31 Nový

zasa raz krizove odkazy na kapitoly

celé vlákno

podobne, ako pri clanku o ceskoslovenskych pocitacoch… zasa krizove odkazy, ale nielen na nasledujuce a predosle kapitoly, ale aj na odstavce.

rusi to pri citani a tvori dojem, ze autor si nevie usporiadat myslienky tak, aby nemusel vytvarat „forward declaration“ krizovym odkazom (niekedy aj na nieco, co este nie je dostupne).

inac je to ale citanie zaujimave a LISP je rozpitvany ovela menej, nez jazyk J, co je prijemne potesenie. akurat by to asi chcelo poprehadzovat fakty tak, aby v dobe popisovania niecoho vsetky zavislosti uz boli odhalene.

Pavel Tišnovský aura:98
11. 3. 2010 8:45 Nový

Re: zasa raz krizove odkazy na kapitoly

celé vlákno

Zrovna u LISPu je problem v tom, jestli nejdriv vysvetlovat, jak je uvnitr implementovany (a tim padem ctenarum po nejakou dobu zamlcet, proc to tak tvurci udelali – potom si 90% lidi rekne, ze je to nanic a tvurci proste jen meli radi zavorky:-) nebo pouze rict „jo, vsechno jsou seznamy a lambda transformace“ a pritom se nezminit, ze vlastne interne o seznamy vubec nejde, protoze v pameti se ukladaji binarni stromy a prave proto mohly vzniknout velmi efektivni funkce CAR a CDR (+ jejich pribuzni).

JS
JS (neregistrovaný) 130.119.248.---
11. 3. 2010 8:52 Nový

vyklad Lispu

celé vlákno

Se zpusobem, jakym se v tomto clanku (a mnoha jinych) podava Lisp, totiz ve stylu „Lisp jsou v podstate seznamy, ktere se skladaji z cons bunek“, zasadne nesouhlasim, protoze si myslim, ze to Lispu jako jazyku prokazuje medvedi sluzbu. Sice jsem ponekud ovlivneny Common Lispem, a chapu historickou perspektivu, ale mam pocit, ze Lisp je prece jen o necem jinem.

Mluvim z vlastni zkusenosti – dlouho jsem nechapal, v cem jsou vyhody Lispu – vzdyt je to proste prace se seznamy. Ale prednaska a pak knizka Practical Common Lisp (a jeste pozdeji On Lisp) mi otevrela oci – v (Common) Lispu je spousta mnohem zajimavejsich konceptu, nez cons bunky. V te prednasce Practical Common Lisp zminuje autor 3 veci – multimetody, signaly a makra, ktere v beznych jazycich chybi (naopak Common Lisp umi temer vsechno, co ostatni jazyky). Ja bych jeste pridal dynamicke promenne.

Takze rikat, ze jsou to seznamy, jenom posiluje povrchni dojem, ze je to jen spousta zavorek a nic z toho. Pravdou je pritom naprosty opak!

P.S. Jinak, abych jen nekritizoval, clanky jsou skvele. Diky!

Pavel Tišnovský aura:98
11. 3. 2010 8:58 Nový

Re: vyklad Lispu

celé vlákno

Dnesni dil byl jen takovy „rozjezd“, v dalsi casti urcite budou zmineny lambda vyrazy, program jako rekurzivni seznam (bez toho by neslo treba rozumne udelat makra), funkce typu mapcar, apply, reduce atd. (imho hodne zajimave – u mnohych „modernich“ jazyku se prave toto prezentuje jako uzasna novinka) a snad se stihnou take Common Lispovska makra.

A samozrejme mate pravdu v tom, ze Practical Common Lisp a nezapominal bych take na SICP je hoodne dobra literatura, dokonce bych rekl, ze jedna z nejlepsich o programovani vu­bec.

Program
Program (neregistrovaný) ---.cust.nbox.cz
11. 3. 2010 10:06 Nový

Re: vyklad Lispu

celé vlákno

Ale vždyť LISP jsou v podstatě consy a seznamy… To že v „odvozených“ implementacích jsou další featchury, je věc jiná.

Mě spíše vadí opačná tendence, kdy se z původně funkcionálního jazyku dělá čím dál víc procedurální, čemuž všechny tyhle fičurky směřují…

JS
JS (neregistrovaný) 130.119.248.---
11. 3. 2010 10:46 Nový

Re: vyklad Lispu

celé vlákno

A on byl Lisp nekdy funkcionalni ve smyslu, v jakem to chapeme dnes (v jakem je treba Haskell funkcionalni)? Ja osobne si myslim, ze ne, protoze treba takove rplacd a rplaca tam bylo odjakziva. Podle me je nazyvan funkcionalnim proto, ze byl odvozen z lambda kalkulu a jako prvni jazyk implementoval funkce jako skutecne funkce a ne procedury, a take jako samostatny typ (i kdyz je tady ta Lisp-1 a Lisp-2 zalezitost).

Common Lisp je multi-paradigm. To je proste fakt. A v tom je jeho sila. Scheme, ktera je vice funkcionalni, vznikla az pozdeji. Povazovat Lisp za ciste funkcionalni je IMHO spatny vyklad historie.

Program
Program (neregistrovaný) ---.cust.nbox.cz
11. 3. 2010 12:05 Nový

Re: vyklad Lispu

celé vlákno

No, tak u haskelu se tyhle myšlenky akorát přivedly k dokonalosti. Ale dle mě měl být LISP funkcionální, jen se možná nevěřilo, že to programátorům bude stačit, proto jsou tam procedurální berličky. Ale to je jedno, mě šlo jen o to, že základem LISPu (jak ho tedy chápu já) jsou funkce a seznamy (a tím pádem i consy), ten jazyk je na tom prostě postavený. Všechno ostatní jsou jenom vylepšovátka, která se hodí popisovat, když chcete udělat LISPu reklamu, né ho vysvětlit…

Pavel Tišnovský aura:98
12. 3. 2010 8:45 Nový

Re: vyklad Lispu

celé vlákno

<trolling>
Zcela ciste funkcionalni pristup neni mozny v prakticky zadnem realne pouzitelnem programovacim jazyce, protoze funkce s vedlejsimi efekty jsou prakticky nutnosti. Krome evidentnich pripadu (zmena stavu pocitace, treba otevreni souboru, poslani znaku na konzoli) je napriklad „nefunkcionalni“ i forma (setq x 42) i kdyz jako kazda spravna funkce neco vraci (konretne hodnotu 42), tak mnohem dulezitejsi je ten jeji vedlejsi efekt, tj. prirazeni teto hodnoty do x (popr. vytvoreni tohoto objektu).
</trolling>

JS
JS (neregistrovaný) ---.net.upc.cz
12. 3. 2010 9:14 Nový

Re: vyklad Lispu

celé vlákno

No, i kdyz nejsem fanousek funkcionalniho programovani, tak striktni vyhnuti se vedlejsim efektum (jako to dela Haskell) ma velke vyhody, protoze to dovoluje kompilatoru staticky analyzovat kod velice hluboko, a optimalizovat kod zpusobem, jakym to zadny clovek nedokaze (nebo o to nestoji, kvuli citelnosti).

Pokud ovsem funkcionalni programovani zustane na nizsi urovni nez teto, pak snazit se o ciste funkcionalni programovani (napr. nepouzivat iteraci misto rekurze) je podle me zcela zbytecne.

Navic, jsem pragmatik, a myslim si, ze optimalizace, ktere dokaze Haskell pomoci staticke analyzy, by bylo mozne v nefunkcionalnim programu dosahnout pomoci analyzy dynamicke.

Inkvizitor
Inkvizitor (neregistrovaný) 84.42.166.---
12. 3. 2010 22:57 Nový

Re: vyklad Lispu

celé vlákno

Já bych řekl, že těch výhod je víc, třeba snadnější porozumění chování programu než u obecného imperativního kódu nebo poměrně přirozená paralelizace programů.

Na Haskellu se mi líbí, že je na první pohled (podle typu funkce) jasné, jestli je „čistá“ nebo ne. Ve většině ostatních jazyků nelze u žádné funkce, která není triviální (tedy volá alespoň jednu funkci/procedu­ru/metodu) nikdy říci, co přesně její volání provede, aniž by bylo nutné znát poměrně široký kontext; u dynamických jazyků to platí obzvlášť.

Adam Sloboda
Adam Sloboda (neregistrovaný) ---.radiolan.sk
18. 3. 2010 10:32 Nový

Re: vyklad Lispu

celé vlákno

Trolling je trochu silné slovo, ale ako disclaimer je to vystihujúce :)

Referenčná transparentnosť je lákavá, ale iba s ňou si nevystačíme. To je prostý fakt. Som rád, že si to dovolil povedať niekto ako vy.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) 77.93.216.---
11. 3. 2010 9:37 Nový

Časový posun

celé vlákno

Nevycházel tenhle serial v úterý? Já se těšil na grafiku osmibitů.

Pavel Tišnovský aura:98
11. 3. 2010 11:36 Nový

Re: Časový posun

celé vlákno

Je to posunute, protoze jsem minuly tyden byl na horach (bez internetu i signalu :-), takze ve ctvrtek clanek nevysel, az toto utery. „Grafika“ tam prozatim byla zminena jen velmi okrajove, pokud se za ni daji povazovat carecky na sedmisegmentovem LED :-) Priste to uz bude lepsi, natipal jsem obrazky z PMD-85, Flappy, Hlipu a spol.

Jirka
Jirka (neregistrovaný) ---.nokia.com
11. 3. 2010 13:04 Nový

Interní reprezentace binárního stromu vytvořeného pomocí LISPovských seznamů

celé vlákno

Proč je pravá větev nesymetrická k levé?

JS
JS (neregistrovaný) 130.119.248.---
11. 3. 2010 14:01 Nový

Re: Interní reprezentace binárního stromu vytvořeného pomocí LISPovských seznamů

celé vlákno

Protoze musite nejak rozlisit vnitrni ukazatele v tom stromu a data. Oboji mohou byt slozene z cons bunek.

alef0
alef0 (neregistrovaný) 84.16.60.---
11. 3. 2010 14:13 Nový

Nadherny clanok

celé vlákno

Vynikajuca vec, precital som naozaj na jeden dych a tesim sa na dalsi diel!

cb
cb (neregistrovaný) ---.217.broadband7.iol.cz
11. 3. 2010 14:20 Nový

Co ma clanek

celé vlákno

splecneho se SSSR?

Mi. Chal. aura:31
11. 3. 2010 19:17 Nový

Re: Co ma clanek

celé vlákno

v nadpisu mas „(nejen)“, takze spolecneho nemusi mit nic :-)

cb
cb (neregistrovaný) ---.217.broadband7.iol.cz
12. 3. 2010 14:20 Nový

Re: Co ma clanek

celé vlákno

Cekal jsem ze tam bude historie LISPu v CCCP, kdo ho a ja implementoval, na cem, kde ho pripadne ukradl, k cemu se pouzival, jake byly problemy. Jako v predchozich clancich o hw. Ne syntaxi LISP.

Pavel Tišnovský aura:98
13. 3. 2010 7:24 Nový

Re: Co ma clanek

celé vlákno

K tomu se jeste dostaneme, sice ne primo k tomu, kdo Lisp v CCCP implementoval, ale k HW ktery se na to pouzival urcite.

Trm
Trm (neregistrovaný) ---.42.broadband9.iol.cz
11. 3. 2010 20:51 Nový

v Emacsu neni scheme, ale elisp + par detailu

celé vlákno

Clanek docela v pohode, i kdyz musim rict, ze trochu pokulhava s fakty. Predne, v Emacsu je elisp a nikoliv scheme, jakkoliv muze byt v mnoha ohledech podobny spise schemu nez common lispu. Jinak, bylo by dobre vyvarovat se portretovani lispu jako nejakeho drsne ,,funkcionalniho jazyka'' (zadny Haskell to neni, nastesti). Spis bych jej oznacil za jazyk multiparadigmovy, protoze v nem muzete programovat, jak chcete (i kdyz je preferovany zpusob funkcionalni s minimem vedlejsich efektu, stejne dobre se v nem da delat ciste imperativne, i kdyz to trochu potira jeho vyznam). Jeste k cyklum, v LISPu je ITERATE, ne primo v CL, ale jako knihovna, ale kdo jednou zkusil, uz nikdy nechce jinak! Let Over Lambda Forever!

Pavel Tišnovský aura:98
12. 3. 2010 8:41 Nový

Re: v Emacsu neni scheme, ale elisp + par detailu

celé vlákno

Ja jsem nekde psal, ze v Emacsu je Scheme nebo pouzil spojeni „funkcionalni jazyk“? :-)

btw, i ve Scheme je jedna forma vzdalene podobna smyckam – „do“, ale to je jen zakukleny tail-cail :-) Me osobne se take nelibi jen ciste funkcionalni pristup (ten stejne neni z praktickeho hlediska mozny), nekdy smycky reseny problem vyjadruji lepe nez rekurze (i kdyz to je ve vysledku ekvivalentni, tak citelnost a primost algoritmu je dulezitejsi).

Lion
Lion (neregistrovaný) ---.adsl.sky.cz
12. 3. 2010 13:46 Nový

Re: v Emacsu neni scheme, ale elisp + par detailu

celé vlákno

No ono to mohlo vyznít z násl. věty 3. bodu článku:

<cite>Právě z těchto důvodů se Scheme využívá či využívalo jak při výuce programování, tak i v mnoha open-source projektech, například v textovém editoru Emacs či v grafickém editoru GIMP jako jeden z podporovaných skriptovacích jazyků.</cite>

Asi nikdo nezpochybňuje, že čistě funkcionální přístup sám o sobě nestačí na řešení reálných problémů, ale na rozdíl od jiných taky-funkcionálních jazyků si s tím asi nejlépe poradil právě Haskell. Nevydal se cestou míchání s imperativním přístupem, kdy funkcionální vlastnosti tak nevyniknou, ale striktně je oddělil a tu „imperativní část“ zabalil funkcionálně (monády).
Výše uvedené spolu se silným typovým systémem umožňuje eliminovat většinu chyb už při kompilaci (potřeba debugování je raritní záležitost) a zároveň umožnit kompilátoru vysoký stupeň optimalizace (kód z GHC se může rovnat výstupu kompilátorů C)

Mnoho příladů reálných opensource aplikací je k dispozici na http://hackage.haskell.org/packages/archive/pkg-list.html . Hodně lidí určitě zná i verzovací systém Darcs http://darcs.net

Pavel Tišnovský aura:98
13. 3. 2010 7:34 Nový

Re: v Emacsu neni scheme, ale elisp + par detailu

celé vlákno

Aha, to se omlouvam, ta veta je napsana skutecne nestastne. Ja jsem myslel tu druhou zminku o Emacsu, tam je to dobre. Nechapejte to prosim tak, ze jsem si jako Vimar rypl do Emacsaku, tak to nebylo mysleno ;-)

Ano, Haskell se vydal trosicku jinou cestou, treba zavadi i staticke typovani a dalsi napady, coz je logicke – ovsem Haskell je stary „pouze“ 20 let, dedecek LISP ma uz 52 let, takze vyvoj urcite musi byt videt.

Osobne si myslim, ze tento pristup bude v budoucnu jeste vice prosazovan – vykon ALU a radicu moc neroste, spise se zvysuje pocet vypocetnich jader, takze snaha o paralelizaci kodu povede k vetsi orientaci na ty programovaci jazyky, ve kterych se daji BEZPECNE psat multithreadove aplikace.

Adam Sloboda aura:94
18. 3. 2010 10:41 Nový

Re: v Emacsu neni scheme, ale elisp + par detailu

celé vlákno

Erlang ide o krok ďalej a podporuje distribuovateľné riešenie, nielen multithreadové. Sú aj pokusy takýto prístup preniesť do Scheme/Common Lis­pu.

hghjg
hghjg (neregistrovaný) ---.net.upc.cz
12. 3. 2010 20:39 Nový

rebol

celé vlákno

Ve skole nas ucili Rebol. Tohle je tomu trochu podobny. O vikendu si to snad prectu cele v klidu a poradne.

Pavel Tišnovský aura:98
13. 3. 2010 7:36 Nový

Re: rebol

celé vlákno

Skutecne, Rebol z LISPu castecne vychazi, takze podobnost neni ciste nahodna :-) Muzu se zeptat, na jake skole se uci Rebol?

hjghjg
hjghjg (neregistrovaný) ---.net.upc.cz
13. 3. 2010 12:33 Nový

Re: rebol

celé vlákno

Technicka univerzita v Liberci, Fakulta mechatroniky, cca rok 2002, pan Mecir, tenkrat tam asi tak nejak doktorandoval a pro Rebol mel zrejme slabost.

100% Lenin
100% Lenin (neregistrovaný) 85.90.127.---
13. 3. 2010 8:04 Nový

A víte - že Elbrus byl vyvíjen jako superpočítač?

celé vlákno

Zrovna včera jsem pařil s jedním kolegou, co se podílel na procesorové jednotce.
Strašně jsme si zavzpomínali na ony Bulharské disky, bubnové paměti a co všechno se muselo vyřešit, by to fungovalo. Jak se u SSSR klonů AT/XT řešila vodovzdornost, neb to muselo šlapat i pod vodou.
A pak už jsme si pokecali o nových SSD a shodli jsme se na tom, že to je dnes přeci jen supr, a ty zážitky z těch průkopnických dob nám nikdo nevezme.

Jo jo, to byly časy. (y) :D. Zdarec.

anonym
anonym (neregistrovaný) 158.194.92.---
17. 3. 2010 10:57 Nový

teckove pary

celé vlákno

Nebely by byt ty teckove pary (nebranim se tomuto terminu:)) tvaru (1 . 2) a ne (1.2)? Druhe zminovane je totiz desetinne cislo v seznamu. Ale clanek pekny, Lisp je nej.

Zasílat nově přidané příspěvky e-mailem