Zum Inhalt springen

Boo (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. November 2011 um 14:49 Uhr durch Regi51 (Diskussion | Beiträge) (Änderungen von 217.91.188.118 (Diskussion) wurden auf die letzte Version von Frank Murmann zurückgesetzt). Sie kann sich erheblich von der aktuellen Version unterscheiden.
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: Python
Betriebssystem: Windows, Linux, Mac OS X, u.v.m.
Lizenz: MIT / BSD
boo.codehaus.org

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 das explizite Binden von Variablen an Typen 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)