Boo (programming language)
This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "Boo_(programming_language)"
.

content
Boo
Image:BooLogo.png
Paradigm Object oriented
Appeared in 2003
Designed by Rodrigo B. De Oliveira
Developer Rodrigo B. De Oliveira
Latest release 0.8.2/ 2008-05-20
Typing discipline static, strong, duck
Major implementations auyu6
Influenced by Python
OS .NET Framework, Mono Runtime
License MIT/BSD style license
Website boo.codehaus.org

Boo is an object oriented, statically typed programming language in active development since 2003, which seeks to make use of the Common Language Infrastructure support for Unicode, internationalization and web 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 free software released under an MIT/BSD–style license. It is compatible with both the Microsoft .NET and Mono frameworks.

Contents

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.Forms
import 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 an anonymous function

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

See 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

© jGames.co.uk 2007 (some content from Wikipedia under GDL ) !-- ValueClick Media 468x60 and 728x90 Banner CODE for jgames.co.uk -->
Your Ad Here