My favorites | Sign in
Logo
                
Show all Featured downloads:
Tycho-0.2.1.msi
People details
Project owners:
  timmacfarlane
Project committers:
diakopter

Tycho was presented at Lang.NET Symposium 2009, check out the video and slides.

What is it?

Tycho is a new programming language designed for language oriented programming (LOP). Combined with a very dynamic runtime, Tycho programmers can define syntax and semantics that bring the code closer to the problem domain.

At its heart, it's a dynamically typed language that runs on the .Net Framework. It's object oriented but requires no classes. Aspect orientation is achieved with actors (see the example below for a laziness aspect.) Software transactional memory in tycho is, too, an aspect, and makes for a pretty good "free" concurrency. Program consistency is supported with schemas that check validity of objects at runtime, not to mention provide functional programming style pattern matching for just about anything. Macros can be used to augment the language's syntax, and whole new languages can be created too.

An Example...

Laziness, an important concept in functional programming is quickly defined by a programmer like this:

macro lazy > function-call "lazy" expression
    user:make-lazy (() => #expression)

make-lazy = operation =>
    cached := null
    is-cached := false

    actor (self, name, arguments, ...) =>
        if not is-cached
            cached := operation ()
            is-cached := true
        cached.(name) (arguments, ...)

lazy-list = lazy
    print "running lazy operation"
    list [1, 2, 3]

print "before evaluation"
print "last item is: #(lazy-list[-1])"

Will output this:

"before evaluation"
"running lazy operation"
"last item is: 3"

More examples and documentation is available in the wiki.

How do I get involved?

Feel free to post any questions, suggestions or patches to tycho-language. Tycho is under active development and new ideas are always being incorporated so we appreciate all the input we can get!









Hosted by Google Code