Boo (lenguaje de programación)

Boo
Desarrollador(es)
Rodrigo Oliveira
http://boo-lang.org/
Información general
Paradigma Orientado a objetos
Apareció en 2004
Diseñado por Rodrigo B. De Oliveira
Última versión estable 0.9.7 (25 de marzo de 2013)
Influido por C#, Python
Sistema operativo Multiplataforma
Licencia MIT/BSD

Boo es un lenguaje de programación orientado a objetos, de tipos estáticos para la Common Language Infrastructure con una sintaxis inspirada en Python y un énfasis en la extensibilidad del lenguaje y su compilador. Sus características incluyen la inferencia de tipos, los generadores, multimétodos, duck typing opcional, macros, clausuras, currificación y funciones de primera clase.

Boo es software de código abierto; tiene una licencia tipo MIT/BSD.

Boo se integra sin fisuras con Microsoft.NET y Mono.

Ejemplos de código[editar]

Hola mundo[editar]

print "Hola Mundo" 

Función generadora de la Sucesión de Fibonacci[editar]

def fib():     a as long, b as long = 0, 1     while true:         yield b         a, b = b, a + b for index as int, element in zip(range(5), fib()):     print("${index+1}: ${element}") 

Ejemplo simple de Windows Forms con clases, cierres y eventos[editar]

import System.Windows.Forms import System.Drawing  class MyForm(Form):     def constructor():         b = Button(Text: "Púlsame")         b.Location = Point(100, 50)         b.Click += def():             MessageBox.Show("!has pulsado el botón!")         self.Controls.Add(b) f = MyForm() Application.Run(f) 

Ejemplo simple de Gtk#[editar]

import System import Gtk from "gtk-sharp" 	 public class MyWindow: 	def constructor(): 		w = Gtk.Window("Hola Mundo") 	        w.DeleteEvent += ExitWindow 		w.ShowAll() 	 	def ExitWindow(o, args as DeleteEventArgs): 		Gtk.Application.Quit() 	 Gtk.Application.Init() w = MyWindow() Gtk.Application.Run() 

Patrón de diseño asíncrono con un cierre[editar]

import System  def run():     print("en ejecución")  print "arrancado"  result = run.BeginInvoke({ print("reclamado") }) System.Threading.Thread.Sleep(50ms) run.EndInvoke(result)  print "fin" 

Currificación[editar]

plusX = { a as int | return { b as int | return a + b }} print plusX(3)(4) 
  • plusX es una función que toma un entero a, que devuelve otra función que toma un entero b y devuelve a+b."

Véase también[editar]

Enlaces externos[editar]