Permalink
Browse files

Merge branch 'master' of git@github.com:johang88/haskellinjavascript

  • Loading branch information...
2 parents ea9043b + 337206c commit 9e16ffdfb2a805c581fa64fe3f2e37931e2a7e92 Johan Gustafsson committed May 18, 2010
Showing with 163 additions and 161 deletions.
  1. +16 −11 rapport/kallor.bib
  2. +3 −3 rapport/kapitel/abstract.tex
  3. +0 −2 rapport/kapitel/inledning.tex
  4. +143 −144 rapport/kapitel/resultat.tex
  5. +1 −1 rapport/kapitel/sammanfattning.tex
View
@@ -1,14 +1,16 @@
@misc{csharp,
- author = "Anders Hejlsberg, Mads Torgersen",
+ author = "A. Hejlsberg, M. Torgersen",
title = "Overview of C# 3.0",
year = 2007,
- url = "http://msdn.microsoft.com/en-us/library/bb308966.aspx"
+ url = "http://msdn.microsoft.com/en-us/library/bb308966.aspx",
+ note = "Hämtad 2010-05-15"
}
@misc{ghc,
title = "Glasgow Haskell Compiler",
url = "http://www.haskell.org/ghc/",
- year = 2010
+ year = 2010,
+ note = "Hämtad 2010-05-18"
}
@misc{json,
@@ -22,35 +24,38 @@ @misc{json
@misc{jsparse,
title = "JSParse - Javascript Parser Combinators",
url = "http://www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html",
- author = "Chris Double",
- year = 2010
+ author = "C. Double",
+ year = 2010,
+ note = "Hämtad 2010-05-18"
}
@misc{jquery,
author = "The jQuery Project",
title = "jQuery",
url = "http://jquery.com/",
- year = 2010
+ year = 2010,
+ note = "Hämtad 2010-05-18"
}
@book{jones87,
- author = "Jones, S. P.",
+ author = "Peyton-Jones, S.",
year = 1987,
title = "The Implementation of Functional Programming Languages",
publisher = "Prentice Hall",
- howpublished = "\url{http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/}"
+ howpublished = "\url{http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/}",
+ note = "Hämtad 2010-05-18"
}
@book{haskell98,
title = "Haskell 98 language and libraries: the Revised Report",
- editor = "S. P. Jones",
+ editor = "S. Peyton-Jones",
year = 2003,
publisher = "Cambridge University Press"
}
@inbook{haskell98chap3,
title = "Haskell 98 Language and Libraries: The Revised Report",
- editor = "S. P. Jones",
+ editor = "S. Peyton-Jones",
year = 2003,
publisher = "Cambridge Univeristy Press",
chapter = 3
@@ -98,7 +103,7 @@ @conference{fang01
}
@INPROCEEDINGS{jones99,
- author = {Jones, M. P.},
+ author = {Peyton-Jones, M.},
title = {Typing Haskell in Haskell},
booktitle = {Haskell Workshop},
year = {1999},
@@ -1,13 +1,13 @@
\renewcommand{\abstractname}{Abstract}
\begin{abstract}
-Haskell is not a widely used programming language, nor very known to the average programmer. By implementing a subset of the Haskell 98 specification in Javascript our intention is to make it possible to run Haskell in a web browser, thus making it easier for beginners to try Haskell by eliminating the need of downloading Haskell compilers such as GHC.
+Haskell is not a widely used programming language, nor very known to the average programmer. By implementing a subset of the Haskell 98 specification in Javascript our intention is to make it possible to run Haskell in a web browser, thus making it easier for beginners to try Haskell by eliminating the need of downloading Haskell compilers such as the Glasgow Haskell Compiler.
In this paper we describe the process and result from the project of implementing Haskell in Javascript.
\\
\\
Our result consists of a parser, type checker, interpreter and a front end similar to GHCi.
-The parser process the text input, creating an internal structure called abstract syntax tree (AST). The type checker then analysis the AST to confirm that there are no type errors. If no errors have been detected, the AST is sent to the interpreter. The interpreter then interprets the AST in an well defined way.
+The parser processes the text input, creating an internal structure called abstract syntax tree (AST). The type checker then analysis the AST to confirm that there are no type errors. If no errors have been detected, the AST is sent to the interpreter. The interpreter then interprets the AST in a well defined way.
\\
\\
-The results show that it is possible to successfully implement Haskell in Javascript, but a lot of more work need to be done for making a newbie-friendly environment for learning Haskell.
+The results show that it is possible to successfully implement Haskell in Javascript, but a lot of more work needs to be done for making a newbie-friendly environment for learning Haskell.
\end{abstract}
@@ -1,6 +1,4 @@
\section{Inledning}
-% TODO text here!!
-\subsection{Bakgrund och motivation}
På vissa av Chalmers och Göteborgs Universitets datorvetenskapliga program är den första programmeringskursen i Haskell \citep{haskell98} och för en del av de nya eleverna är inlärningströskeln hög. De studenter som börjar på de datavetenskapliga programmen på Chalmers och Göteborgs Universitet är allt från nybörjare till mycket kompetenta inom programmering. De flesta saknar dock kunskaper kring funktionell programmering. Skillnaden mellan ett funktionellt och ett objektorienterat programmeringsspråk är stora och omställningen hur programmeringsrelaterade problem behöver angripas är inte enkelt för de flesta nybörjare. Vi tror att ett interaktivt webbverktyg skulle kunna sänka tröskeln och underlätta undervisningen. Ett webbverktyg medför även att en kompilator som \emph{Glasgow Haskell Compiler} (GHC) \citep{ghc} ej behöver installeras. Webbens stöd för interaktivitet gör det möjligt att snabbt visa funktionsdeklarationerna för de inbyggda funktionerna och att enkelt evaluera funktionerna och testa sig fram till olika resultat.
Många programmerare kommer inte i kontakt med funktionell programmering och med hjälp av ett interaktivt webbbverktyg som är enkelt för användaren att använda är vår förhoppning att fler programmerare och studenter ska komma i kontakt med funktionell programmering, och i synnerhet Haskell. Då flera moderna objektorienterade programmeringsspråk börjar ta funktionalitet och begrepp från funktionella programmeringsspråk så är det extra viktigt att programmerare kommer i kontakt med funktionell programmering. Ett exempel på detta är \emph{C\#} som i senare versioner har fått stöd för bland annat lambda-funktioner (anonyma funktioner) \citep{csharp}.
Oops, something went wrong.

0 comments on commit 9e16ffd

Please sign in to comment.