„Script.NET“ – Versionsunterschied
Erscheinungsbild
[gesichtete Version] | [gesichtete Version] |
Inhalt gelöscht Inhalt hinzugefügt
KLBot2 (Diskussion | Beiträge) K Bot: 3 Interwiki-Link(s) nach Wikidata (d:Q820978) migriert |
-BKL |
||
Zeile 18: | Zeile 18: | ||
}} |
}} |
||
'''Script .NET''' bzw. '''S#''' ist eine [[Programmiersprache]], die sich |
'''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 [[Laufzeitumgebung|Umgebung]] [[.NET|Microsoft .NET]] auszuführen und während der Laufzeit zu verändern. |
||
Die [[Syntax]] ist sehr stark von [[JavaScript]] beeinflusst. |
Die [[Syntax]] ist sehr stark von [[JavaScript]] beeinflusst. |
||
== Metaprogrammierung == |
== Metaprogrammierung == |
||
In Script .NET existiert u.a. der spezielle [[Operator (Mathematik)|Operator]] '''<[''' ''Programmcode'' ''']>''', der den [[Abstract Syntax Tree|AST]] eines [[Computerprogramm|Programms]] zurückgibt. Auf den AST des aktuellen Programms kann über das [[Objekt (Programmierung)|Objekt]] '''prog''' zugegriffen werden, wie das folgende Beispiel zeigt: |
In Script .NET existiert u. a. der spezielle [[Operator (Mathematik)|Operator]] '''<[''' ''Programmcode'' ''']>''', der den [[Abstract Syntax Tree|AST]] eines [[Computerprogramm|Programms]] zurückgibt. Auf den AST des aktuellen Programms kann über das [[Objekt (Programmierung)|Objekt]] '''prog''' zugegriffen werden, wie das folgende Beispiel zeigt: |
||
< |
<syntaxhighlight lang="javascript"> |
||
// AST erstellen, der eine MessageBox mit dem Ausdruck "Guten Tag!" ausgibt |
// AST erstellen, der eine MessageBox mit dem Ausdruck "Guten Tag!" ausgibt |
||
ast = <[ MessageBox.Show('Guten Tag!'); ]>; |
ast = <[ MessageBox.Show('Guten Tag!'); ]>; |
||
Zeile 31: | Zeile 31: | ||
// Programmcode dem aktuellen Programm anfügen |
// Programmcode dem aktuellen Programm anfügen |
||
prog.AppendAst(ast); |
prog.AppendAst(ast); |
||
</syntaxhighlight> |
|||
</source> |
|||
== Beispiele == |
== Beispiele == |
||
Zeile 37: | Zeile 37: | ||
=== [[Hallo-Welt-Programm|Hallo, Welt!]] === |
=== [[Hallo-Welt-Programm|Hallo, Welt!]] === |
||
< |
<syntaxhighlight lang="javascript"> |
||
MessageBox.Show('Hallo, Welt!'); |
MessageBox.Show('Hallo, Welt!'); |
||
</syntaxhighlight> |
|||
</source> |
|||
=== [[Bubblesort]] === |
=== [[Bubblesort]] === |
||
< |
<syntaxhighlight lang="javascript"> |
||
zahlen = [5, 9, 1979, 23, 9, 1979]; |
zahlen = [5, 9, 1979, 23, 9, 1979]; |
||
for (i = 0; i < zahlen.Length; i++) |
for (i = 0; i < zahlen.Length; i++) { |
||
⚫ | |||
{ |
|||
if ( zahlen[j] < zahlen[i] ) { |
|||
⚫ | |||
⚫ | |||
⚫ | |||
// tauschen |
// tauschen |
||
temp = zahlen[i]; |
temp = zahlen[i]; |
||
zahlen[i] = zahlen[j]; |
zahlen[i] = zahlen[j]; |
||
Zeile 64: | Zeile 59: | ||
// Ausgabe erstellen |
// Ausgabe erstellen |
||
ausgabe = 'Ergebnis: '; |
ausgabe = 'Ergebnis: '; |
||
for (i = 0; i < zahlen.Length; i++) |
for (i = 0; i < zahlen.Length; i++) { |
||
⚫ | |||
{ |
|||
if (i > 0) |
|||
ausgabe = ausgabe + ', '; |
ausgabe = ausgabe + ', '; |
||
⚫ | |||
ausgabe = ausgabe + zahlen[i]; |
ausgabe = ausgabe + zahlen[i]; |
||
} |
} |
||
MessageBox.Show(ausgabe); |
MessageBox.Show(ausgabe); |
||
</syntaxhighlight> |
|||
</source> |
|||
=== [[RSS]]-Feeds === |
=== [[RSS]]-Feeds === |
||
< |
<syntaxhighlight lang="javascript"> |
||
rss = new XmlDocument(); |
rss = new XmlDocument(); |
||
rss.Load('http://www.tagesschau.de/xml/tagesschau-meldungen'); |
rss.Load('http://www.tagesschau.de/xml/tagesschau-meldungen'); |
||
MessageBox.Show('tagesschau.de Meldungen: '); |
MessageBox.Show('tagesschau.de Meldungen: '); |
||
Zeile 86: | Zeile 80: | ||
MessageBox.Show(feed.InnerText); |
MessageBox.Show(feed.InnerText); |
||
</syntaxhighlight> |
|||
</source> |
|||
== Siehe auch == |
== Siehe auch == |
||
Zeile 92: | Zeile 86: | ||
* [[Liste der .NET-Sprachen]] |
* [[Liste der .NET-Sprachen]] |
||
* [http://www.protsyk.com/scriptdotnet/runcode.html Script.NET On-Line] |
* [http://www.protsyk.com/scriptdotnet/runcode.html Script.NET On-Line] |
||
[[Kategorie:Programmiersprache]] |
[[Kategorie:Programmiersprache]] |
||
[[Kategorie:.NET]] |
[[Kategorie:.NET]] |
Version vom 10. Mai 2015, 18:48 Uhr
Script.NET | |
---|---|
Basisdaten | |
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/ |
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);