„Boo (Programmiersprache)“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Website aktualisiert |
Xqbot (Diskussion | Beiträge) K Bot: Ersetze veraltetes <source> tag und veralteten "enclose"-Parameter; kosmetische Änderungen |
||
Zeile 1: | Zeile 1: | ||
{{Infobox Programmiersprache |
{{Infobox Programmiersprache |
||
| Name = Boo |
| Name = Boo |
||
Zeile 27: | Zeile 26: | ||
== Spracheigenschaften == |
== Spracheigenschaften == |
||
Boo ist [[Statische Typisierung|statisch typisiert]], wobei dem Programmierer die explizite Angabe von Typen von Variablen durch [[Typinferenz]] und [[ |
Boo ist [[Statische Typisierung|statisch typisiert]], wobei dem Programmierer die explizite Angabe von Typen von Variablen durch [[Typinferenz]] und [[Generischer Typ|generische Typen]] großteils erspart wird. Daneben wird auch das langsamere, von [[Ruby (Programmiersprache)|Ruby]] übernommene [[Duck-Typing]], also dynamische Typisierung geboten. Dadurch ist sie auf der explizit für statisch typisierte Sprachen ausgelegten CLR recht schnell, ohne auf die Flexibilität einer Skriptsprache verzichten zu müssen. |
||
Von Python erbt die Sprache Generatoren. Sie unterstützt relativ viele eingebaute Literale beispielsweise für Listen, Hashes und [[ |
Von Python erbt die Sprache Generatoren. Sie unterstützt relativ viele eingebaute Literale beispielsweise für Listen, Hashes und [[Regulärer Ausdruck|reguläre Ausdrücke]]. Hinzu kommen für eine OO-Sprache moderne, aus der Funktionalen Programmierung übernommene Features wie first-class-Funktionen und echte [[Closure (Funktion)|Closures]]. Was die Sprache von anderen Sprachen in der [[Java-Plattform|Java]]- und [[.NET]]-Welt abhebt, ist, dass sie syntaktische Makros bietet, die ähnlich bequem einzusetzen sind wie in [[Dylan (Programmiersprache)|Dylan]]. |
||
== Lizenz == |
== Lizenz == |
||
Zeile 37: | Zeile 36: | ||
=== [[Hallo-Welt-Programm]] === |
=== [[Hallo-Welt-Programm]] === |
||
<syntaxhighlight lang=boo> |
<syntaxhighlight lang="boo"> |
||
print "Hallo Welt!" |
print "Hallo Welt!" |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Zeile 43: | Zeile 42: | ||
=== Funktionen === |
=== Funktionen === |
||
Funktion zum Generieren der [[Fibonacci-Folge|Fibonacci-Zahlen]]: |
Funktion zum Generieren der [[Fibonacci-Folge|Fibonacci-Zahlen]]: |
||
<syntaxhighlight lang=boo> |
<syntaxhighlight lang="boo"> |
||
def fib(): |
def fib(): |
||
a as long, b as long = 0, 1 |
a as long, b as long = 0, 1 |
||
Zeile 53: | Zeile 52: | ||
=== Windows-Forms === |
=== Windows-Forms === |
||
Einfaches [[Windows Forms|Windows-Forms]]-Beispiel mit [[Klasse (Objektorientierung)|Klassen]], [[Closure (Funktion)|Closures]] und Events: |
Einfaches [[Windows Forms|Windows-Forms]]-Beispiel mit [[Klasse (Objektorientierung)|Klassen]], [[Closure (Funktion)|Closures]] und Events: |
||
<syntaxhighlight lang=boo> |
<syntaxhighlight lang="boo"> |
||
import System.Windows.Forms |
import System.Windows.Forms |
||
import System.Drawing |
import System.Drawing |
||
Zeile 85: | Zeile 84: | ||
--> |
--> |
||
== Weblinks == |
== Weblinks == |
||
*[https://boo-language.github.io/ Offizielle Website] |
* [https://boo-language.github.io/ Offizielle Website] |
||
[[Kategorie:Objektorientierte Programmiersprache]] |
[[Kategorie:Objektorientierte Programmiersprache]] |
Version vom 17. April 2020, 20:38 Uhr
Boo | |
---|---|
![]() | |
Basisdaten | |
Paradigmen: | Objektorientierte Sprache |
Erscheinungsjahr: | 2003 |
Designer: | Rodrigo B. De Oliveira |
Entwickler: | Rodrigo Barreto de Oliveira |
Aktuelle Version: | 0.9.4 (23. Januar 2011) |
Typisierung: | statisch (siehe Text) |
Beeinflusst von: | C#, Python |
Beeinflusste: | Genie, Vala |
Betriebssystem: | Windows, Linux, macOS, u.v.m. |
Lizenz: | MIT / BSD |
https://boo-language.github.io/ |
Boo ist eine seit 2003 von Rodrigo Barreto de Oliveira entwickelte Programmiersprache für die Microsoft CLR, die aber auch mit Mono verwendet werden kann. Die Syntax lehnt sich stark an die von Python an.
Spracheigenschaften
Boo ist statisch typisiert, wobei dem Programmierer die explizite Angabe von Typen von Variablen durch Typinferenz und generische Typen großteils erspart wird. Daneben wird auch das langsamere, von Ruby übernommene Duck-Typing, also dynamische Typisierung geboten. Dadurch ist sie auf der explizit für statisch typisierte Sprachen ausgelegten CLR recht schnell, ohne auf die Flexibilität einer Skriptsprache verzichten zu müssen.
Von Python erbt die Sprache Generatoren. Sie unterstützt relativ viele eingebaute Literale beispielsweise für Listen, Hashes und reguläre Ausdrücke. Hinzu kommen für eine OO-Sprache moderne, aus der Funktionalen Programmierung übernommene Features wie first-class-Funktionen und echte Closures. Was die Sprache von anderen Sprachen in der Java- und .NET-Welt abhebt, ist, dass sie syntaktische Makros bietet, die ähnlich bequem einzusetzen sind wie in Dylan.
Lizenz
Boo ist freie Software mit eigener Lizenz, die der MIT- und der BSD-Lizenz stark ähnelt.
Code-Beispiele
print "Hallo Welt!"
Funktionen
Funktion zum Generieren der Fibonacci-Zahlen:
def fib():
a as long, b as long = 0, 1
while true:
yield b
a, b = b, a + b
Windows-Forms
Einfaches Windows-Forms-Beispiel mit Klassen, Closures und Events:
import System.Windows.Forms
import System.Drawing
class MyForm(Form):
def constructor():
b = Button(Text: "Click Me")
b.Location = Point(100, 50)
b.Click += do():
MessageBox.Show("you clicked the button!")
self.Controls.Add(b)
f = MyForm()
Application.Run(f)