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

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

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Chris Wailes and Graham Price

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

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 Chris Wailes and Graham Price.

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 Chris Wailes and Graham Price.

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 Chris Wailes and Graham Price.

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 Chris Wailes and Graham Price.

The Tangle Architecture

Tangle To LLVM Bytecode

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

The Tangle Architecture

Runtime to LLVM Bytecode

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

The Tangle Architecture

Clang + Response Closure Linker Pass -> Native Binary

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

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 Chris Wailes and Graham Price.

The Tangle Runtime Environment

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

The Tangle Runtime Environment

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

The Tangle Runtime Environment

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

The Tangle Runtime Environment

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

The Tangle Runtime Environment

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

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 Chris Wailes and Graham Price.

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 Chris Wailes and Graham Price.

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 Chris Wailes and Graham Price.

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