BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations How to Think about Parallel Programming: Not!

How to Think about Parallel Programming: Not!

Bookmarks
01:09:36

Summary

Guy L. Steele Jr. believes that it should not be the programmer’s job to think about parallelism, but languages should provide ways to transparently run tasks in parallel. This requires a new approach in building languages supporting algorithms built on independence and build-and-conquer principles rather than on linear decomposition of problems.

Bio

Guy Steele is a Sun Fellow for Sun Microsystems Laboratories, working on the Programming Language Research project. He received his A.B. in applied mathematics from Harvard College (1975), and his S.M. and Ph.D. in computer science and artificial intelligence from MIT (1977 and 1980). Prior to joining Sun Microsystems, he was an assistant professor of computer science at Carnegie-Mellon University

About the conference

Strange Loop is a developer-run software conference. Innovation, creativity, and the future happen in the magical nexus "between" established areas. Strange Loop eagerly promotes a mix of languages and technologies in this nexus, bringing together the worlds of bleeding edge technology, enterprise systems, and academic research. Of particular interest are new directions in data storage, alternative languages, concurrent and distributed systems, front-end web, semantic web, and mobile apps.

Recorded at:

Jan 14, 2011

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • excellent talk

    by peter lin,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks for a great talk.

  • Inspiring. Inspiring.

    by Torsten Grust,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I can view this talk over and over again and find it more inspiring every time.
    Thanks for posting.

    —Torsten


    data WordState = Chunk String
    | Segment String [String] String
    deriving Show

    maybeWord :: String -> [String]
    maybeWord "" = []
    maybeWord s = [s]

    (⊕) :: WordState -> WordState -> WordState
    Chunk s ⊕ Chunk s' = Chunk (s ++ s')
    Chunk s ⊕ Segment l as r = Segment (s ++ l) as r
    Segment l as r ⊕ Chunk s = Segment l as (r ++ s)
    Segment l as r ⊕ Segment l' as' r' = Segment l (as ++ maybeWord (r ++ l') ++ as') r'

    processChar :: Char -> WordState
    processChar ' ' = Segment "" [] ""
    processChar c = Chunk [c]

    words s = case g of
    Chunk s -> maybeWord s
    Segment l as r -> maybeWord l ++ as ++ maybeWord r
    where g = foldr1 (⊕) (map processChar s)

    main = print (Main.words "Here is a sesquipedalian string of words")

  • WOW

    by Adib Saikali,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I love this talk!

  • Concept demonstration

    by will mason,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Here's a chat demonstrating the proof of concept for this thesis:

    * www.infoq.com/presentations/reactive-programmin...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT