Zum Inhalt springen

Script.NET

aus Wikipedia, der freien Enzyklopädie
Script.NET
[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten
Paradigmen: Skriptsprache
Erscheinungsjahr: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Designer: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
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)
https://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 Common Language Runtime (CLI) des .Net-Frameworks 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 Abstract Syntax Tree (AST) eines Programms zurückgibt. Auf den AST des aktuellen Programms kann über das Objekt prog zugegriffen werden, wie das folgende Beispiel zeigt:

<syntaxhighlight lang="javascript"> // 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); </syntaxhighlight>

Beispiele

Hallo, Welt!

<syntaxhighlight lang="javascript"> MessageBox.Show('Hallo, Welt!'); </syntaxhighlight>

Bubblesort

<syntaxhighlight lang="javascript"> 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); </syntaxhighlight>

RSS-Web-Feeds

<syntaxhighlight lang="javascript"> rss = new XmlDocument(); rss.Load('https://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);

</syntaxhighlight>

Weblinks