Zum Inhalt springen

Sleep (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Sleep
[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten
Paradigmen: prozedural, funktional
Erscheinungsjahr: 2004
Designer: Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler: Raphael Mudge
Aktuelle Version: 2.1 update 5  (29. Februar 2020)
Typisierung: dynamisch
Beeinflusst von: Perl, Objective-C
Betriebssystem: plattformunabhängig
Lizenz: BSD
sleep.dashnine.org

Sleep ist eine prozedurale Skriptsprache, die von Perl und Objective-C inspiriert wurde. Die einzige bekannte Implementierung ist in Java geschrieben und für die einfache Integration in Java-Anwendungen vorgesehen.

Die Sleep Java API erlaubt es, die Sprache um neue Operatoren, Funktionen und „Environments“ zu erweitern.

Sleep wird zum Beispiel in dem IRC-Client jIRCii und dem IRC-Bot SleepyBot benutzt.

Die Eigenschaften der Sprache[Bearbeiten]

Daten, Strukturen und Typen[Bearbeiten]

Sleep besitzt drei verschiedene Datentypen: Skalare, Arrays und Hashes (Assoziative Arrays). Skalare beginnen mit einem Dollarzeichen ($), Arrays mit einem At-Zeichen (@) und Hashes mit einem Prozentzeichen (%).

Skalare[Bearbeiten]

Ein Skalar kann beispielsweise eine Zeichenkette oder eine Zahl repräsentieren. Zeichenketten sind Literale oder „parsed literals“. Zahlen sind entweder Ganzzahlen oder Gleitkommazahlen. Skalare können überdies aber auch beliebige Objektreferenzen repräsentieren, beispielsweise wenn HOES benutzt werden.

Arrays[Bearbeiten]

Ein Array ist eine Sammlung von Skalaren, Hashes oder anderen Arrays, die über einen numerischen Index angesprochen werden können, beginnend bei Null (0).

Hashes[Bearbeiten]

Hashes sind assoziative Arrays und bilden Schlüssel auf Werte ab. Schlüssel können sowohl Zahlen als auch Zeichenketten sein.

Dynamische Typisierung[Bearbeiten]

Sleep benutzt wie viele Skriptsprachen Dynamische Typisierung. Das bedeutet, dass Variablen vor der Benutzung nicht deklariert werden und einen Datentypen zugewiesen haben müssen. Das hat gewisse Vorteile, aber auch gewisse Nachteile.

HOES[Bearbeiten]

Neu in Sleep 2.0 sind HOES (Haphazard Object Extensions for Sleep). Diese ermöglichen die Erzeugung und Verwendung von Java Objekten.

Code-Beispiele[Bearbeiten]

„Hello World“[Bearbeiten]

<syntaxhighlight lang="php">

  # Gibt "Hallo Welt" auf der Standardausgabe aus
  println('Hallo Welt');

</syntaxhighlight>

Zeichenketten[Bearbeiten]

Literale[Bearbeiten]

<syntaxhighlight lang="php">

  # Zuweisung eines Literals an einen Skalar
  $string = 'Diese Zeichenkette ist ein Literal';

</syntaxhighlight>

„Parsed literals“[Bearbeiten]

<syntaxhighlight lang="php">

  $str1 = 'Variablen';
  $str2 = 'werden';
  $str3 = 'in geparsten Zeichenketten';
  $str4 = 'ersetzt';
  $string = "Prima, $str1 $str2 $str3 $str4";
  println($string);

</syntaxhighlight>

Ausgabe: <syntaxhighlight lang="text" highlight="1"> Prima, Variablen werden in geparsten Zeichenketten ersetzt </syntaxhighlight>

Konkatenation[Bearbeiten]

Zeichenketten werden mit dem Punkt-Operator verkettet. <syntaxhighlight lang="php">

  $punkt = '.';
  $ende = 'verkettet.';
  $string = 'Zeichenketten ' . 'werden mit dem ' . $punkt . " $ende";
  println($string);

</syntaxhighlight>

Ausgabe: <syntaxhighlight lang="text" highlight="1"> Zeichenketten werden mit dem . verkettet. </syntaxhighlight>

Arrays[Bearbeiten]

<syntaxhighlight lang="php">

  @namen = array('Thomas','Michael','Andreas');
  println( join( ', ', @namen ) );

</syntaxhighlight>

Ausgabe: <syntaxhighlight lang="text" highlight="1"> Thomas, Michael, Andreas </syntaxhighlight>

Hashes[Bearbeiten]

<syntaxhighlight lang="php">

  %person = hash( vorname => 'Thomas', nachname => 'Müller', alter => 33 );
  println( 'Name:  ' . %person['vorname'] . ' ' . %person['nachname'] );
  println( 'Alter: ' . %person['alter'] . ' Jahre' );

</syntaxhighlight>

Ausgabe: <syntaxhighlight lang="text" highlight="1-2"> Name: Thomas Müller Alter: 33 Jahre </syntaxhighlight>

HOES[Bearbeiten]

<syntaxhighlight lang="php">

  # Erzeugt einen JFrame und zeigt diesen an
  import javax.swing.*;
  $jframe = [new JFrame: 'Sleep HOES Beispiel'];
  [$jframe setDefaultCloseOperation: [JFrame EXIT_ON_CLOSE]];
  [[$jframe getContentPane] add: [new JLabel: 'Erstellt mit Sleep HOES']];
  [$jframe pack];
  [$jframe show];

</syntaxhighlight>

Anwendungen[Bearbeiten]

Sleep wird im Augenblick in folgenden Anwendungen benutzt:

Weblinks[Bearbeiten]