7
Simon Georg Pinkel Alice Server Pages Funktionale Programmierung und das Web

Alice Server Pages

Embed Size (px)

DESCRIPTION

Alice Server Pages. Funktionale Programmierung und das Web. Motivation. Motivation (2). Browser. myhost.com. http://myhost.com/index.asp. Http Server. Compiler. Datenbank. index.asp. Motivation (3). Beispiel: - PowerPoint PPT Presentation

Citation preview

Simon Georg Pinkel

Alice Server Pages

Funktionale Programmierung und das

Web

2

Motivation

3

Motivation (2)

Browser myhost.com

DatenbankCompiler

http://myhost.com/index.asp

index.asp

Http Server

4

Motivation (3)

Beispiel:<html><body>

<?php function fak($n) { return ( $n<=1 ? 1 : $n * fak($n-1)); } ?>

<h1>Meine erste dynamische Webseite!</h1>

<ul><?php for($i=1; $i<=$n; $i++) printf("<li>%d",fak($i)); ?></ul>

</body></html>

http://myhost.com/erste.php?n=6

5

verwandte Arbeiten• ASP.Net• PHP Hypertext Preprocessor• Java Server Pages

und was ist mit ML?• ML Server Pages

• Moscow ML als Skriptsprache: <ul><?msp

List.app (fn s => print("<li>" ^ Int.toString s)) (List.tabulate(n,fak))?></ul>

SMLServer• Ein Modul für AOLServer, welches die Entwicklung von

dynamischen Webapplikation in SML ermöglicht• Unterstützt die ML Server Pages

6

Alice Server Pages- Anforderungen• Tools zur Bearbeitung/Interpretation von HTML-seiten mit

eingebetteten Programmfragmenten• Handhabung von dynamischem Input wie Formularvariablen

oder Cookies• Datenbankschnittstelle• niedrige ReaktionszeitenAusserdem soll untersucht werden, inwieweit sich Alice als

Skriptsprache für Webseiten eignet; Also inwiefern• Lässt sich das Typsystem von Alice nutzen?• Fügen sich funktionale Programmieridiome in diesem Kontext

ein?• Lassen sich Server Pages in einen Webserver integrieren?• Finden Alice-spezifische Features wie Nebenläufigkeit,

Laziness oder verteilte Programmierung Anwendung?

7

Alice Server Pages- Arbeitspackete

1. Compiler, der aus HTML mit Alicefragmenten pures Alice generiert

2. Parser für dynamischen Input

3. Interface zum Zugriff auf die geparsten Daten

4. Caching der Kompilate

5. Datenbank-API

6. Beispielanwendung