Alice Server Pages

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

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

Transcript of Alice Server Pages

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