Personal tools

Practica interpretarii monadice

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m ((ro) Draft of cap. 1 included - draftul cap 1 inclus.)
Line 1: Line 1:
 
[[Category:Ro]]
 
[[Category:Ro]]
 
 
Volumul '''Practica interpretarii monadice''' isi propune sa prezinte aplicarea cunostintelor de limbaje formale (gramatici in special) la constructia interpretoarelor.
+
Volumul '''Practica interpretarii monadice''' isi propune sa prezinte aplicarea cunostintelor de limbaje formale (gramatici in special dar si semantica monadica) la constructia interpretoarelor. Se folosesc [[monade]] scrise in [[Haskell]]: O monada a parserelor si una cu Stari si IO.
  +
Se adreseaza constructorilor de limbaje, in special constructorilor de limbaje de scripting si filtre pentru Web, acele programe care primesc o intrare structurata conform unor specificatii si produc un output text.
  +
Materialele au fost folosite la [[Universitatea Bacau]] in cadrul laboratoarelor de Limbaje Formale in anul 2006. (Link-urile rosii sunt pagini in pregatire, nu dati click pe ele.)
  +
Materialele asociate cartii au fost prezentate si la Congresul ICMI45.
   
 
'''Sunt prezentate: '''
 
'''Sunt prezentate: '''
 
<br>- O clasificare a interpretoarelor care ne permite sa alegem tipul interpretoarelor pe care le vom implementa
 
<br>- O clasificare a interpretoarelor care ne permite sa alegem tipul interpretoarelor pe care le vom implementa
<br>- Un back-end monadic
+
<br>- [http://www.haskell.org/sitewiki/images/b/b1/Back-End.pdf Un back-end monadic. <Download>]
 
<br>- Parserele modulare pentru expresiile din limbaj incluzand gramatica expresiilor.
 
<br>- Parserele modulare pentru expresiile din limbaj incluzand gramatica expresiilor.
 
<br>- Parserele modulare pentru comenzile din limbaj incluzand gramatica comenzilor.
 
<br>- Parserele modulare pentru comenzile din limbaj incluzand gramatica comenzilor.
<br>- Combinarea front-end-ului cu back-end-ul
+
<br>- Combinarea front-end-ului interpretorului cu back-end-ul
 
<br>- Adaugarea de instructiuni complexe care sunt abordate cu tehnici semantice (prin modificarea back-end-ului monadic)
 
<br>- Adaugarea de instructiuni complexe care sunt abordate cu tehnici semantice (prin modificarea back-end-ului monadic)
 
<br>- Adaugarea de instructiuni complexe care sunt implementate cu tehnici sintactice (rescriere de arbori)
 
<br>- Adaugarea de instructiuni complexe care sunt implementate cu tehnici sintactice (rescriere de arbori)
Line 14: Line 14:
   
 
'''Sunt incluse:'''<br>
 
'''Sunt incluse:'''<br>
  +
<br>- Cuvantul inainte bilingv (en/ro)
 
<br>- Exercitii si probleme la fiecare capitol
 
<br>- Exercitii si probleme la fiecare capitol
* [http://www.haskell.org/sitewiki/images/c/cd/Pr_Int_2_DRAFT-Ex-Cap5-o-pg.pdf Descarcati o pagina cu Exercitii din Cap 5 - Draft din 26 dec 2007]
 
 
<br>- Capturi de ecran ilustrand functionarea programelor
 
<br>- Capturi de ecran ilustrand functionarea programelor
 
<br>- Anexe
 
<br>- Anexe
 
<br>- Sursele complete,
 
<br>- Sursele complete,
 
<br>- O biblioteca de combinatori de parsere comentata
 
<br>- O biblioteca de combinatori de parsere comentata
  +
<br>- Un mini glosar de notiuni prezentate
   
  +
'''<DOWNLOAD>'''
  +
* [http://www.haskell.org/sitewiki/images/c/cd/Pr_Int_2_DRAFT-Ex-Cap5-o-pg.pdf <Download>] [http://www.haskell.org/sitewiki/images/c/cd/Pr_Int_2_DRAFT-Ex-Cap5-o-pg.pdf Descarcati o pagina cu Exercitii din Cap 5 - Draft din 26 dec 2007]
  +
* [http://www.haskell.org/sitewiki/images/b/b1/Back-End.pdf <Download>] [http://www.haskell.org/sitewiki/images/b/b1/Back-End.pdf Draft-ul primei versiuni a primului capitol.] Un asemnea Back-End monadic este explicat in capitolul unu al cartii finalizate.. Back-End-ul acesta l-am folosit in cadrul lucrarilor de laborator pentru a putea rula programele reprezentate prin arbori sintactici.
   
(19 ianuarie 2008-14 iunie 2008)
+
  +
'''Multumiri''' : Multumesc tuturor celor care s-au implicat indirect in realizarea acestei carti dand un pretios ajutor: editorului care ne sprijina, referentilor, membrilor familiei mele, stiudentilor care au pus intrebari, perosonalului tehnic care a asigurat comunicatiile digitale atat la Haskell.org cat si la Bacau, intreagii comunitati Haskell si bineinteles (last but not least) lui Simon P.J.
  +
  +
  +
De unde puteti procura cartea :
  +
Urm,eaza sa va anunt... reveniti pe pagina pentru a afla. Deocamdata nu stiu.
  +
  +
  +
(19 ianuarie 2008-14 iunie 2008 -20 aug 2008)
  +
Nota: Autorul recunoaste ca nu a pus in carte tot ceea ce ar fi dorit cititorii.
  +
Dar promite sa adauge si pe web materiale pe masura ce care le cereti si daca sunt disponibile, liber de copyright.
  +
  +
----
  +
Foreword:
  +
  +
I am delighted to introduce this book on the use of monads in Haskell as a way of structuring interpreters. In the early days, Haskell's most distinctive feature was lazy evaluation. Laziness forced us to take a pure approach to input/output, which meant that Haskell's I/O was initially rather weak. This weakness ultimately proved a strength, however, because it led us to the discovery that monads were not just an abstract mathematical concept, but were immediately applicable as a powerful program structuring mechanism.
  +
  +
Monadic programming is not just to do with input/output: it is much more powerful. That is why I am pleased to see this book, which describes in some detail how to write a language interpreter using a monadic approach.
  +
  +
In retrospect, the discovery of monads as a practical programming pattern is one of Haskell's most substantial contributions to the world of programming -- and it is one that you will share if you work through this book.
  +
  +
I am also very happy to see Haskell growing in popularity among our brothers and sisters in Eastern Europe, and in Romania in particular. Enjoy!
  +
  +
Simon P.J.
 
----
 
----
 
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
 
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]

Revision as of 08:38, 26 August 2008


Volumul Practica interpretarii monadice isi propune sa prezinte aplicarea cunostintelor de limbaje formale (gramatici in special dar si semantica monadica) la constructia interpretoarelor. Se folosesc monade scrise in Haskell: O monada a parserelor si una cu Stari si IO. Se adreseaza constructorilor de limbaje, in special constructorilor de limbaje de scripting si filtre pentru Web, acele programe care primesc o intrare structurata conform unor specificatii si produc un output text. Materialele au fost folosite la Universitatea Bacau in cadrul laboratoarelor de Limbaje Formale in anul 2006. (Link-urile rosii sunt pagini in pregatire, nu dati click pe ele.) Materialele asociate cartii au fost prezentate si la Congresul ICMI45.

Sunt prezentate:
- O clasificare a interpretoarelor care ne permite sa alegem tipul interpretoarelor pe care le vom implementa
- Un back-end monadic. <Download>
- Parserele modulare pentru expresiile din limbaj incluzand gramatica expresiilor.
- Parserele modulare pentru comenzile din limbaj incluzand gramatica comenzilor.
- Combinarea front-end-ului interpretorului cu back-end-ul
- Adaugarea de instructiuni complexe care sunt abordate cu tehnici semantice (prin modificarea back-end-ului monadic)
- Adaugarea de instructiuni complexe care sunt implementate cu tehnici sintactice (rescriere de arbori)


Sunt incluse:

- Cuvantul inainte bilingv (en/ro)
- Exercitii si probleme la fiecare capitol
- Capturi de ecran ilustrand functionarea programelor
- Anexe
- Sursele complete,
- O biblioteca de combinatori de parsere comentata
- Un mini glosar de notiuni prezentate

<DOWNLOAD>


Multumiri : Multumesc tuturor celor care s-au implicat indirect in realizarea acestei carti dand un pretios ajutor: editorului care ne sprijina, referentilor, membrilor familiei mele, stiudentilor care au pus intrebari, perosonalului tehnic care a asigurat comunicatiile digitale atat la Haskell.org cat si la Bacau, intreagii comunitati Haskell si bineinteles (last but not least) lui Simon P.J.


De unde puteti procura cartea : Urm,eaza sa va anunt... reveniti pe pagina pentru a afla. Deocamdata nu stiu.


(19 ianuarie 2008-14 iunie 2008 -20 aug 2008) Nota: Autorul recunoaste ca nu a pus in carte tot ceea ce ar fi dorit cititorii. Dar promite sa adauge si pe web materiale pe masura ce care le cereti si daca sunt disponibile, liber de copyright.


Foreword:

I am delighted to introduce this book on the use of monads in Haskell as a way of structuring interpreters. In the early days, Haskell's most distinctive feature was lazy evaluation. Laziness forced us to take a pure approach to input/output, which meant that Haskell's I/O was initially rather weak. This weakness ultimately proved a strength, however, because it led us to the discovery that monads were not just an abstract mathematical concept, but were immediately applicable as a powerful program structuring mechanism.

Monadic programming is not just to do with input/output: it is much more powerful. That is why I am pleased to see this book, which describes in some detail how to write a language interpreter using a monadic approach.

In retrospect, the discovery of monads as a practical programming pattern is one of Haskell's most substantial contributions to the world of programming -- and it is one that you will share if you work through this book.

I am also very happy to see Haskell growing in popularity among our brothers and sisters in Eastern Europe, and in Romania in particular. Enjoy!

Simon P.J.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la inceputul paginii 'Intrebarile incepatorului Ro/Haskell'.