BT

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

How to Think about Parallel Programming: Not!

Bookmarks

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")

  • 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

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.