Boo: diferenças entre revisões

856 bytes removidos ,  4 de dezembro de 2011
sem resumo de edição
{{Sem notas|data=outubro de 2010| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=Este artigo ou secção|2=|3=|4=|5=|6=}}
{{Info/Linguagem de computador
|nome = Boo
|website = [http://boo.codehaus.org/ boo.codehaus.org]
}}
'''''Boo''''' é uma [[linguagem de programação]] [[multiparadigma]] que suporta [[orientação a objetos]], [[programação imperativa]] e [[programação funcional]], de [[tipagem estática]] com sintaxe inspirada em [[Python]]. Foi criada pelo [[desenvolvedor]] [[Brasileiros|brasileiro]] [[Rodrigo Barreto de Oliveira]]. Boo é [[código aberto]], e seu licenciamento segue o modelo da [[Licença MIT]] e da [[Licença BSD]]. Pode ser usada em conjunto com [[Microsoft .NET]] e [[Mono (projeto)|Mono]].
 
== História ==
Algumas das principais características:
 
* [[Inferência de tipos:tipo]] - o compilador identifica o tipo das variáveis e funções e faz a declaração automática.
* Funções como objetos
* ''[[Duck Typing:typing]]'' - Se algo caminha como um pato e faz quack como um pato então deve ser um pato.
* ''[[Closure]]s''
* Closures
* Interpretador interativo: semelhante ao Python.
* Slicing: - fatiamento de listas; se <code>lista = ['a', 'b', 'c', 'd', 'e']</code>, <code>lista[1:3]</code> retorna <code>['b', 'c']. </code>
* Macros:[[Macro]]s - Lembra as macros do [[C++]]. É utilizado para simplificação de código.
* StringInterpolação interpolationde strings: Manipulação de Strings semelhante ao velocity.
* Generators: - formas diferentes de escrever laços.
 
== Exemplos de Códigoscódigos ==
=== Programa Olá Mundo ===
;[[Interpretador de comandos|Console]]:
print("Olá, Mundo!")
</source>
 
 
;[[Windows Forms]]:
Application.Run(f)
</source>
 
 
;[[GTK]]:
</source>
 
=== [[LeonardoSequência Pisanode Fibonacci|Fibonacci]] ===
{{Artigo principal|Número de Fibonacci}}
<source lang="Boo">
def fib():
</source>
 
== {{Ver tambémBibliografia}} ==
=== Exemplo básico de janela ===
<source lang="Boo">
import System.Windows.Forms
import System.Drawing
 
class MyForm(Form):
def constructor():
b = Button(Text: "Clique-me!")
b.Location = Point(100, 50)
b.Click += do():
MessageBox.Show("Você clicou no botão!")
self.Controls.Add(b)
 
f = MyForm()
Application.Run(f)
</source>
 
=== Asynchronous design pattern ===
<source lang="Boo">
import System
 
def run():
print("executando")
 
print "iniciado"
result = run.BeginInvoke({ print("chamado de volta") })
System.Threading.Thread.Sleep(50ms)
run.EndInvoke(result)
 
print "feito"
</source>
 
=== Imprime os 5 primeiros números da série ===
<source lang="Boo">
for index as int, element in zip(range(5), fib()):
print("${index+1}: ${element}")
</source>
 
== Referências ==
* [http://boo.codehaus.org/BooManifesto.pdf Boo Manifesto]
* [http://www.icsharpcode.net/OpenSource/SD/ Sharp Develop - IDE Open Source]
* Rahien, Ayende.Domain-Specific Languages in Boo.Ed. Manning Publications,2009
 
== {{Ver também}} ==
* [[C♯]]
* [[Python]]
 
== {{Ligações externas}} ==
 
{{Linguagens de programação}}
{{Título em itálico}}
 
[[Categoria:Invenções do Brasil]]