Script.NET

Script .NET bzw. S# ist eine Programmiersprache, die sich Mechanismen der Metaprogrammierung bedient. Sie stellt dabei Funktionalitäten zur Verfügung, die es erlauben, Skripte in der Umgebung Microsoft .NET auszuführen und während der Laufzeit zu verändern. Die Syntax ist sehr stark von JavaScript beeinflusst.

Script.NET
Paradigmen: Skriptsprache
Entwickler: Petro Protsyk
Aktuelle Version: Beta 17122007  (17. Dezember 2007)
Typisierung: schwach, dynamisch, Duck-Typing
Beeinflusst von: JavaScript
Betriebssystem: alle mit CLR
Lizenz: GNU Lesser General Public License (LGPL)
http://www.protsyk.com/scriptdotnet/

Metaprogrammierung

In Script .NET existiert u. a. d​er spezielle Operator <[ Programmcode ]>, d​er den Abstract Syntax Tree (AST) e​ines Programms zurückgibt. Auf d​en AST d​es aktuellen Programms k​ann über d​as Objekt prog zugegriffen werden, w​ie das folgende Beispiel zeigt:

// AST erstellen, der eine MessageBox mit dem Ausdruck "Guten Tag!" ausgibt
ast = <[ MessageBox.Show('Guten Tag!'); ]>;

// Programmcode dem aktuellen Programm anfügen
prog.AppendAst(ast);

Beispiele

Hallo, Welt!

MessageBox.Show('Hallo, Welt!');

Bubblesort

zahlen = [5, 9, 1979, 23, 9, 1979];

for (i = 0; i < zahlen.Length; i++) {
    for (j = i + 1; j < zahlen.Length; j++) {
        if ( zahlen[j] < zahlen[i] ) {
            // tauschen
            temp      = zahlen[i];
            zahlen[i] = zahlen[j];
            zahlen[j] = temp;
        }
    }
}

// Ausgabe erstellen
ausgabe = 'Ergebnis: ';
for (i = 0; i < zahlen.Length; i++) {
    if (i > 0) {
        ausgabe = ausgabe + ', ';
    }
    ausgabe = ausgabe + zahlen[i];
}

MessageBox.Show(ausgabe);

RSS-Web-Feeds

rss = new XmlDocument();
rss.Load('http://www.tagesschau.de/xml/tagesschau-meldungen');

MessageBox.Show('tagesschau.de Meldungen: ');

// Titel aller vorhandenen Themen/Meldungen ausgeben
foreach (feed in rss.SelectNodes('/rss/channel/item/title'))
    MessageBox.Show(feed.InnerText);

Siehe auch

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.