Skip to content

Commit

Permalink
changes
Browse files Browse the repository at this point in the history
  • Loading branch information
northOfThule committed May 18, 2010
1 parent 81f17e3 commit 337206c
Show file tree
Hide file tree
Showing 5 changed files with 163 additions and 161 deletions.
27 changes: 16 additions & 11 deletions rapport/kallor.bib
@@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -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},
Expand Down
6 changes: 3 additions & 3 deletions rapport/kapitel/abstract.tex
@@ -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}
2 changes: 0 additions & 2 deletions rapport/kapitel/inledning.tex
@@ -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}.
Expand Down

0 comments on commit 337206c

Please sign in to comment.