This page is likely outdated (last edited on 20 Jul 2017). Visit the new documentation for updated content.
Boo
Table of contents |
Overview
Boo is an object oriented, statically typed programming language for the Common Language Infrastructure, with a Python-inspired syntax and a special focus on language and compiler extensibility. Features such as type inference everywhere, duck typing on demand, pattern matching and syntactic macros are just a few of the special features Boo offers, in addition to the standard features a modern CLR developer expects (classes, structs, enums, generics, extension methods, async/await and so on.)
It was designed with a strong emphasis on metaprogramming, with language-level support for macros, meta-methods, and AST-transforming attributes to do AOP-style rewriting as a part of the ordinary compile process.
Syntax Example
namespace BooSyntaxExample
class NamedClass:
private name as string
def constructor (name as string):
self.name = name
def ToString():
return name
named = NamedClass ('Say my name!')
print named
Compilers/Interpreters
- booc - Compile boo code to IL assemblies.
- booi - Execute a boo script without first compiling it.
- booish - Interactive interpreter boo shell.