Boo (programming language)

Boo (programming language)

Infobox programming language
name = Boo

paradigm = Object oriented
year = 2003
designer = Rodrigo B. De Oliveira
developer = Rodrigo B. De Oliveira
latest_release_version = 0.8.2
latest_release_date = 2008-05-20
typing = static, strong, duck
implementations = auyu6
dialects =
influenced_by = Python
influenced =
operating_system = .NET Framework, Mono Runtime
license = MIT/BSD style license
website = [http://boo.codehaus.org/ boo.codehaus.org]

Boo is an object oriented, statically typed programming language developed starting in 2003, which seeks to make use of the Common Language Infrastructure support for Unicode, internationalization and web style applications, while using a Python-inspired syntax and a special focus on language and compiler extensibility. Some features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and First-class functions.

Boo is open source–licensed under an MIT/BSD style license.

Boo can be used with Microsoft .NET or Mono.

Code samples

Hello world program

print "Hello, world!"

Fibonacci series generator function

def fib(): a, b = 0L, 1L #The 'L's make the numbers 64-bit while true: yield b a, b = b, a + b

# Print the first 5 numbers in the series:for index as int, element in zip(range(5), fib()): print("${index+1}: ${element}")

Basic Windows Form example demonstrating classes, closures, and events

import System.Windows.Forms from System.Windows.Formsimport System.Drawing

class MyForm(Form): def constructor(message as string): b = Button(Text: "Click Me") b.Location = Point(100, 50) b.Click += do(): MessageBox.Show(message) self.Controls.Add(b) f = MyForm("you clicked the button!")Application.Run(f)


=Asynchronous design pattern with a closure=

import System

def run(): print("executing")

print "started" result = run.BeginInvoke({ print("called back") })System.Threading.Thread.Sleep(50ms)run.EndInvoke(result)

print "done"

ee also

* IronPython - an implementation of Python for the .NET platform, similar to Jython.
* Nemerle - a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features as well as macros.
* Groovy - a language with similar objectives but targeting the Java Platform
* REBOL - a more mature language sharing common goals.
*IronRuby

External links

* [http://boo.codehaus.org/ Official website]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Python (programming language) — infobox programming language name = Python paradigm = multi paradigm: object oriented, imperative, functional year = 1991 designer = Guido van Rossum developer = Python Software Foundation latest release version = 2.6 latest release date =… …   Wikipedia

  • Oxygene (programming language) — Oxygene Developer RemObjects Software Stable release 3.0.21 (August 29, 2009; 2 years ago (2009 08 29)) Influenced by Object Pas …   Wikipedia

  • Mirah (programming language) — Mirah Paradigm(s) object oriented, imperative Appeared in 2008 Typing discipline static, with dynamic features, strong, inferred Influenced by Ruby, Java, Boo …   Wikipedia

  • C Sharp (programming language) — The correct title of this article is C# (programming language). The substitution or omission of the # sign is because of technical restrictions. C# Paradigm(s) multi paradigm: structured, imperative …   Wikipedia

  • F Sharp (programming language) — The correct title of this article is F#. The substitution or omission of the # sign is because of technical restrictions. F# Paradigm(s) multi paradigm: functional, imperative, object oriented Appeared in 2002 (2002) …   Wikipedia

  • Object-oriented programming language — An object oriented programming language (also called an OO language ) is one that allows or encourages, to some degree, object oriented programming techniques such as encapsulation, inheritance, modularity, and polymorphism. Simula (1967) is… …   Wikipedia

  • Boo (disambiguation) — Boo is an expression of dislike for a performance. Boo may also refer to:*Boô, a Saxon cattle shedIn entertainment: * Boo! (1932 film) * * Boo! ( Frasier episode) * Boo! (TV series) *Boo ( Dragon Ball ) or Majin Buu, a character in Dragon Ball… …   Wikipedia

  • Python (programming language) — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

  • Comparison of programming languages — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”