Difference between revisions of "Constructia Compilatoarelor Folosind Flex si Bison"

From HaskellWiki
Jump to navigation Jump to search
m (begining a page concerning compilers in Haskell)
 
m
Line 27: Line 27:
 
http://hackage.haskell.org/packages/archive/pkg-list.html
 
http://hackage.haskell.org/packages/archive/pkg-list.html
 
Code Generation sau harpy.
 
Code Generation sau harpy.
  +
  +
 
== Alte tehnici ==
 
* Gramatici cu atribute, Tree transducers ... vor urma.
  +
* Un back end monadic asemanator acestuia ar putea servi la generare de cod. dupa o mica modificare. Foloseste monada StOut. [http://www.haskell.org/sitewiki/images/b/b1/Back-End.pdf Un back-end monadic. <Download>]
   
   
 
== Bibliografie ==
 
== Bibliografie ==
 
[[Image:Coperta5.jpg|center|Practica Interpretarii Monadice]]
 
[[Image:Coperta5.jpg|center|Practica Interpretarii Monadice]]
Popa Dan[[Practica interpretarii monadice]], Matrix Rom, 2008 - pentru partea de parsing modular si ceva despre semanticile monadice. Se poate comanda la http://www.matrixrom.ro
+
*Popa Dan[[Practica interpretarii monadice]], Matrix Rom, 2008 - pentru partea de parsing modular si ceva despre semanticile monadice. Se poate comanda la http://www.matrixrom.ro
 
*Cautati pe pg de mai jos, Compilers and interpreters:
 
Cautati pe pg de mai jos, Compilers and interpreters:
 
 
 
http://hackage.haskell.org/packages/archive/pkg-list.html
 
http://hackage.haskell.org/packages/archive/pkg-list.html
 
*Cititi sursele proiectului Tiger.Tot acolo.
  +
* O prezentare pdf numita "Evaluare Modulara si Interpretoare folosind Monade si Clase de Tipuri" a fost acceptata pentru sectiunea Functional Grit de la Anglo Haskell 2008. Titlul tradus: [[Modular Evaluation and Interpreters Using Monads and Type Classes by Dan Popa]].
   
Cititi sursele proiectului Tiger.Tot acolo.
 
 
 
== Alte tehnici ==
 
* Gramatici cu atribute, Tree transducers ... vor urma.
 
   
  +
== Vizitati si Laboratorul de limbaje==
  +
==>> Laboratorul de limbaje e la adresa
  +
http://www.haskell.org/haskellwiki/Laboratorul_de_Limbaje
  +
Cautati si in Wikipedia.
 
----
 
----
 
Pagina in dezvoltare
 
Pagina in dezvoltare

Revision as of 11:04, 19 November 2008

Flex si Bison sunt uneltele traditionale, clasice, pentru constructia compilatoarelor. Aceasta pagina isi propune sa devina o resursa on-line de materiale pentru cei care se ocupa de constructia compilatoarelor (in Haskell si in alte limbaje : Flex, Bison, C etc).

In esenta va fi o pagina suport pentru cursul e compilatoare.


Parsere

Cititi despre ParseLib si Parsec si alte biblioteci de parsere.

Arbori

Arborii sunt reprezentari interne ale programului (de) compilat.

De pe pagina Capitole de manual luati capitolele:

  • Tipuri_utilizator.pdf Un capitol de manual despre declararea tipurilor utilizator introduse cu declaratia "data". Exemple de constructori de tip si de constructori de date. Am scris acest capitolul acesta in martie 2005, asa cum se vede si din imaginile aflate in capitol.- Descarcati capitolul!
  • Tipuri_recursive.pdf Un capitol de manual despre declararea tipurilor utilizator recursive. Arbori. Arbori polimorfi. Astfel de arbori se pot/vor folosi la scriererea interpretoarelor si compilatoarelor pentru a implementa arborii sintaxei abstracte - eng: AST = abstract syntax tree. Am scris acest capitolul acesta in martie 2005, asa cum se vede si din imaginile aflate in capitol.Descarcati capitolul!


Semantici

Avem o mica introducere despre semantici in do-notatie:

  • Transcrierea_semanticii_in_do_notatie.pdf Explicatii despre do notatia din Haskell si necesitatea indeplinirii legilor monadei intr-un capitol despre avantajele folosirii Haskellului la realizarea implementarii limbajelor.Exista o pagina despre legile monadei si in sectiunea engleza a site-ului.


Generare de cod

Cautati pe pagina http://hackage.haskell.org/packages/archive/pkg-list.html Code Generation sau harpy.


Alte tehnici

  • Gramatici cu atribute, Tree transducers ... vor urma.
  • Un back end monadic asemanator acestuia ar putea servi la generare de cod. dupa o mica modificare. Foloseste monada StOut. Un back-end monadic. <Download>


Bibliografie

Practica Interpretarii Monadice

http://hackage.haskell.org/packages/archive/pkg-list.html


Vizitati si Laboratorul de limbaje

==>> Laboratorul de limbaje e la adresa http://www.haskell.org/haskellwiki/Laboratorul_de_Limbaje Cautati si in Wikipedia.


Pagina in dezvoltare