Zum Inhalt springen

Script.NET

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. November 2007 um 22:21 Uhr durch Generalpd (Diskussion | Beiträge) (Bubblesort : korrektur im skript). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Script.NET
Basisdaten
Paradigmen: Skriptsprache
Entwickler: Petro Protsyk
Aktuelle Version: Beta 291007  (29. Oktober 2007)
Typisierung: schwach, dynamisch, Duck-Typing
Beeinflusst von: JavaScript
Betriebssystem: alle mit CLR
Lizenz: GNU General Public License (GPL)
http://www.protsyk.com/scriptdotnet/

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.

Metaprogrammierung

In Script .NET existiert u.a. der spezielle Operator <[ Programmcode ]>, der den AST eines Programms zurückgibt. Auf den AST des aktuellen Programms kann über das Objekt prog zugegriffen werden, wie 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

MessageBox.Show('Hallo, Welt!');
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-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