18
Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language Chris Wailes and Graham Price

Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

  • Upload
    horace

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language. Chris Wailes and Graham Price. Buzzword Soup. General Purpose Not designed for a specific application domain or machine architecture Concurrent and Object Oriented - PowerPoint PPT Presentation

Citation preview

Page 1: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Tangle: A General Purpose, Concurrent, Object

Oriented, Actor Based Programming Language

Chris Wailes and Graham Price

Page 2: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Buzzword Soup

• General Purposeo Not designed for a specific application domain or

machine architecture • Concurrent and Object Oriented

o Every object is viewed as being executed concurrently

• Actor Basedo Message passing acts as serialization point

Page 3: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Why a New Language?

• Concurrency is a new concern for the average programmero  Fortran, C, Java

• Fighting to add concurrency to a serial paradigm is a loosing battle

• Concurrency is HARD• Execution environment

o How many cores do you write your code for?

Page 4: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Current Concurrent Languages Issues• Erlang (1986)

o Actor modelo Functional language

tradition • Fortress (2008)• Chapel (2010) • Clik (2009)• Orc (2009)• Titanium (2005)• Kilim (2008)

o Extended Java• x10 (2004) • ZPL (2005)• HPF(1993)

Page 5: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Current Concurrent Languages Issues• Erlang (1986)

o Actor modelo Functional language

tradition • Fortress (2008)• Chapel (2010) • Clik (2009)• Orc (2009)• Titanium (2005)• Kilim (2008)

o Extended Java• x10 (2004) • ZPL (2005)• HPF(1993)

1.Annotations (Death)2.Concurrency Constru

cts3.Limited Parallelism

Page 6: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Architecture

Tangle To LLVM Bytecode

Page 7: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Architecture

Runtime to LLVM Bytecode

Page 8: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Architecture

Clang + Response Closure Linker Pass -> Native Binary

Page 9: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Concurrency in Tangle

• Parallelism extracted by the runtime environmento Asynchronous message sendso Futureso Hints can be given to the runtime

• Runtime is smart (or it will be)o Load balancingo Data localityo Can identify hot objects

Page 10: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Runtime Environment

Page 11: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Runtime Environment

Page 12: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Runtime Environment

Page 13: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Runtime Environment

Page 14: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Tangle Runtime Environment

Page 15: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Tangle Example

class DSApp    state        :Peer NextPeer    end

    def skip         NewPeer = NextPeer get next; get next        print (NewPeer get name)        transition NextPeer -> NewPeer    endend

Page 16: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

The Only Serial Tangle Program

class Serial    state    end    def main        1 + 1    endend

Page 17: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Future Work

• Embeded Objects• Tail Recursion Optimization• Object Clustering • Object Load Balancer• Compile Time Pattern Matching• Standard Library• New Type System• Interfaces

Page 18: Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language

Conclusion 

• Tangle is a new parallel languageo Implicit Parallelismo Runtime Management Systemo LLVM Compiler Infrastructure

• Get Involvedo Code hosted at www.launchpad.net/tangleo Make your own runtime

Windows Mac Cell