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.

Additional Information