Difference between revisions of "Research area"

From HaskellWiki
Jump to navigation Jump to search
(fixing broken links)
Line 40: Line 40:
 
==. References ==
 
==. References ==
 
Dan Popa, "Modular evaluation and interpreters using monads and type classes in Haskell" , Studii si Cercetari Ştiinţifice, Seria Matematica, Univ. Bacău, (18) 2008. An Open Office (.sxw) file ''including example code'' is available here:
 
Dan Popa, "Modular evaluation and interpreters using monads and type classes in Haskell" , Studii si Cercetari Ştiinţifice, Seria Matematica, Univ. Bacău, (18) 2008. An Open Office (.sxw) file ''including example code'' is available here:
[http://www.haskell.org/sitewiki/images/1/15/Paper-v5.sxw Download .sxw ] After loading the .sxw in the Open Office, press the PDF button from the toolbar to produce your own .pdf file. Or
+
[http://www.haskell.org/wikiupload/1/15/Paper-v5.sxw Download .sxw ] After loading the .sxw in the Open Office, press the PDF button from the toolbar to produce your own .pdf file. Or
[http://www.haskell.org/sitewiki/images/7/7d/POPA_D.pdf Official PDF of the paper for <DOWNLOAD> ], having the following title:
+
[http://www.haskell.org/wikiupload/7/7d/POPA_D.pdf Official PDF of the paper for <DOWNLOAD> ], having the following title:
   
 
Direct modular evaluation of expressions using the monads and type classes in Haskell by DAN V. POPA
 
Direct modular evaluation of expressions using the monads and type classes in Haskell by DAN V. POPA
Line 52: Line 52:
 
Nr. 18 (2008), pag. 233 – 248
 
Nr. 18 (2008), pag. 233 – 248
   
The paper is introducing [[Pseudoconstructors over monadic values]] as a way of building modular trees without [[data]] or Haskell extensions. [http://www.haskell.org/sitewiki/images/7/7d/POPA_D.pdf http://www.haskell.org/sitewiki/images/7/7d/POPA_D.pdf]. Modular adaptable interpreters for extensible languages - like [[Rodin]] - become now easy to build, without the need of any Haskell extensions.
+
The paper is introducing [[Pseudoconstructors over monadic values]] as a way of building modular trees without [[data]] or Haskell extensions. [http://www.haskell.org/wikiupload/7/7d/POPA_D.pdf http://www.haskell.org/wikiupload/7/7d/POPA_D.pdf]. Modular adaptable interpreters for extensible languages - like [[Rodin]] - become now easy to build, without the need of any Haskell extensions.
   
   

Revision as of 06:32, 11 April 2011

. The Expression Problem

In 1998 P.Wadler had defined "The Expresion Problem" (accordingly to Wouter Swierstra - Data types a la carte ).

"The goal is to define a data type by case, where one can add new cases to the data type and new functions over the dat a type , without recompiling existing code, and while retaining static type safety."

The Expression problem Solved untill 2008.png


Ten years later a simple and clear solution (2008) was given by Dan Popa User:Ha$kell in a speech scheduled for AngloHaskell/2008 http://www.haskell.org/haskellwiki/AngloHaskell/2008 You may download the presentation from http://www.haskell.org/wikiupload/1/1d/Prezentare-Anglo-Haskell-2008-draft2-more-slides.pdf


Why this solution is so interesting and so new:

  • it did not use a fixpoint operator !!
  • it did not use a Maybe (high level embeded) type !!
  • it did not propose a Haskell extension !!
  • it did not use data declaration anymore !!
  • as a consequence it did not use Data Constructors anymore !!
  • it is introducing pseudoconstructors over monadic values because the chain of unevaluated (yet) functions is actually forming a datastructure . do not forget that Haskell is a lazy evaluation language !!

Why this solution is valuable:

  • because we have already built modular languages like Rodin using it.
  • because it works with just a bit overloading of the system : See final pages of http://www.haskell.org/wikiupload/1/1d/Prezentare-Anglo-Haskell-2008-draft2-more-slides.pdf
  • because it is modular
  • because language construction tools are valuable software (1000$ a Licence for a good language generator.)
  • because it fits in the previous kind of systems with truee small modifications (just replace a single letter of a data constructor to transform it in a pseudoconstructor ...)
  • because my Ph.D Superviser is wishing to sell custom languages with a price of aprox 10 000$ / language - or at least he declared this some times ago.

References: see the .pdf of the latest papers from User:Ha$kell's homepage. Ill be back. Download and read the latest papers of Dan Popa from User:Ha$kell's homepage.

. Classic complex solutions

... will be added


. Monadic Interpretation

... will be added

. References

Dan Popa, "Modular evaluation and interpreters using monads and type classes in Haskell" , Studii si Cercetari Ştiinţifice, Seria Matematica, Univ. Bacău, (18) 2008. An Open Office (.sxw) file including example code is available here: Download .sxw After loading the .sxw in the Open Office, press the PDF button from the toolbar to produce your own .pdf file. Or Official PDF of the paper for <DOWNLOAD> , having the following title:

Direct modular evaluation of expressions using the monads and type classes in Haskell by DAN V. POPA UNIVERSITATEA DIN BACĂU STUDII ŞI CERCETĂRI ŞTIINŢIFICE Seria: MATEMATICĂ Un draft al lucrarii Adaptable Software - Modular Extensible Monadic Entry-pointless Type Checker in Haskell by Dan Popa , Ro/Haskell Group, Univ. “V.Alecsandri”, Bacau este aici: download Nr. 18 (2008), pag. 233 – 248

The paper is introducing Pseudoconstructors over monadic values as a way of building modular trees without data or Haskell extensions. http://www.haskell.org/wikiupload/7/7d/POPA_D.pdf. Modular adaptable interpreters for extensible languages - like Rodin - become now easy to build, without the need of any Haskell extensions.


Adaptable Software - Modular Extensible Monadic Entry-pointless Type Checker in Haskell by Dan Popa , Ro/Haskell Group, Univ. “V.Alecsandri”, Bacau <DOWNLOAD> in .ps format

more ... will be added

. History of the domain

... will be added


Go to Pseudoconstructors Page -> http://www.haskell.org/haskellwiki/Pseudoconstructors_over_monadic_values