Zum Inhalt springen

Boo (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 31. August 2025 um 05:41 Uhr durch imported>Siegbert v2 (+ ENs / weitere Artikel verknüpft).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Boo
colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | Datei:Boo Logo.svg
Basisdaten
Paradigmen: Objektorientierte Sprache
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: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Typisierung: statisch (siehe Text)
Beeinflusst von: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Beeinflusste: Genie, Vala
Betriebssystem: Windows, Linux, macOS, u.v.m.
Lizenz: MIT / BSD<ref name="Lizenz">Barreto de Oliveira: boo/license.txt. In: GitHub. 20. Oktober 2009, abgerufen am 31. August 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
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.<ref name="Minifest">Barreto de Oliveira: The boo Programming Language. (PDF; 201 kB) In: boo.codehaus.org. 29. Juni 2005, archiviert vom Vorlage:IconExternal am 25. April 2015; abgerufen am 31. August 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Seit 2013 hat es keine neuen Versionen gegeben, das Projekt wird nicht mehr gepflegt.

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.<ref name="Minifest" /> 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.<ref name="Minifest" /> Was die Sprache von anderen Sprachen in der Java- und .NET-Welt unterscheidet, ist, dass sie syntaktische Makros bietet, die ähnlich bequem einzusetzen sind wie in Dylan.<ref>Macros. In: GitHub. 2015, abgerufen am 31. August 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Lizenz

Boo ist freie Software mit eigener Lizenz, die der MIT- und der BSD-Lizenz stark ähnelt.<ref name="Lizenz" />

Code-Beispiele

Hallo-Welt-Programm

Ein Hallo-Welt-Programm zur Ausgabe einer Zeichenkette: <syntaxhighlight lang="boo">

print "Hallo Welt!"

</syntaxhighlight>

Funktionen

Funktion zum Generieren der Fibonacci-Zahlen: <syntaxhighlight lang="boo"> def fib():

   a as long, b as long = 0, 1
   while true:
       yield b
       a, b = b, a + b

</syntaxhighlight>

Windows-Forms

Einfaches Windows-Forms-Beispiel mit Klassen, Closures und Events: <syntaxhighlight lang="boo"> 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) </syntaxhighlight>

Literatur

Weblinks

Einzelnachweise

<references />