Sleep (Programmiersprache)
Sleep ist eine prozedurale Skriptsprache, die von Perl und Objective-C inspiriert wurde. Die einzige bekannte Implementierung ist in Java geschrieben und für …
| Sleep | |
|---|---|
| Basisdaten | |
| Paradigmen: | prozedural, funktional |
| Erscheinungsjahr: | 2004 |
| 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
Daten, Strukturen und Typen
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
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
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
Hashes sind assoziative Arrays und bilden Schlüssel auf Werte ab. Schlüssel können sowohl Zahlen als auch Zeichenketten sein.
Dynamische Typisierung
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
Neu in Sleep 2.0 sind HOES (Haphazard Object Extensions for Sleep). Diese ermöglichen die Erzeugung und Verwendung von Java Objekten.
Code-Beispiele
„Hello World“
# Gibt "Hallo Welt" auf der Standardausgabe aus
println('Hallo Welt');
Zeichenketten
Literale
# Zuweisung eines Literals an einen Skalar
$string = 'Diese Zeichenkette ist ein Literal';
„Parsed literals“
$str1 = 'Variablen';
$str2 = 'werden';
$str3 = 'in geparsten Zeichenketten';
$str4 = 'ersetzt';
$string = "Prima, $str1 $str2 $str3 $str4";
println($string);
Ausgabe:
Prima, Variablen werden in geparsten Zeichenketten ersetzt
Konkatenation
Zeichenketten werden mit dem Punkt-Operator verkettet.
$punkt = '.';
$ende = 'verkettet.';
$string = 'Zeichenketten ' . 'werden mit dem ' . $punkt . " $ende";
println($string);
Ausgabe:
Zeichenketten werden mit dem . verkettet.
Arrays
@namen = array('Thomas','Michael','Andreas');
println( join( ', ', @namen ) );
Ausgabe:
Thomas, Michael, Andreas
Hashes
%person = hash( vorname => 'Thomas', nachname => 'Müller', alter => 33 );
println( 'Name: ' . %person['vorname'] . ' ' . %person['nachname'] );
println( 'Alter: ' . %person['alter'] . ' Jahre' );
Ausgabe:
Name: Thomas Müller
Alter: 33 Jahre
HOES
# 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];
Anwendungen
Sleep wird im Augenblick in folgenden Anwendungen benutzt:
- jIRCii – Java IRC-Client
- SleepyBot – IRC-Bot
- After the Deadline – Open Source Sprachüberprüfungs-Technologie
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.