Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Concurrent Programming in ML

    Concurrent Programming in ML

    John H. Reppy · 1999

    "Concurrent Programming in ML presents the language Concurrent ML (CML), which supports the union of two important programming models: concurrent programming and functional programming. CML is an extension of the functional language Standard ML (SML) and is included as part of the Standard ML of New Jersey (SML/NJ) distribution. CML supports the programming of process communication and synchronization using a unique higher-order concurrent programming mechanism which allows programmers to define their own communication and synchronization abstractions."--Jacket. "The main focus of the book is on the practical use of concurrency to implement naturally concurrent applications. In addition to a tutorial introduction to programming in CML, this book presents three extended examples of using CML for systems programming: a parallel software build system, a simple concurrent window manager, and an implementation of distributed tuple spaces."--BOOK JACKET. "This book is aimed at programmers and professional developers who want to use CML, as well as students, faculty, and other researchers."--Jacket.

    Lisp & FunctionalSystems & OSProgramming
    Open LibraryAmazon
    Stats for nerds
    2recommend
    5mentions
    2people
    2015–2023years
    80% recommend20% neutral

    Mentions per year

    201520162017201820192020202120222023

    What Hacker News says

    1. davidgrenierJun 2023
      This looks brutal, for a lot of people John Reppy's book Concurrent Programming in ML (as in SML not Machine Learning) is going to be much more accessible. Pick the CSP-style library in the programming language of your choice.

      Go with goroutines and channels

      Clojure with core.async

      F# with Hopac

      It would be a very interesting project to roll your own in C# using Microsoft Robotics Studio's CCR (Coordination and Concurrency Runtime) (though I speculate those are buffered channels by default).

      thread
    2. davidgrenierNov 2020
      If I may recommend, try to find and read a copy of John Reppy's Concurrent Programming in ML. The book is a little bit of an eye opener if only for that.

      Hopac is a library that offers an excellent delivery of this model of concurrent programming on .NET and has top notch F# primitives.

      thread
    3. davidgrenierJan 2019
      If I may, I'd like to invite you or someone on your team to read a couple of chapters of John Reppy's Concurrent Programming in ML and try Vesa's excellent delivery in https://github.com/Hopac/Hopac.

      I'm not clear if you absolutely have to use TPL but CML is likely just a better model for tackling concurrency and Hopac is orders of magnitude more efficient than F#'s async.

      thread
    4. niccaluimAug 2015
      Agreed, I found this page hopelessly meandering and confused. The way continuations were explained to me is that they are "the rest of the program," which isn't much better, and it took me a while to wrap my head around them. But in the end they really are simple. As you said it's just the stack and the PC register. Calling a continuation jumps back to where the continuation was created, and execution resumes as though the program had been running there all along.

      One neat thing you can do with continuations is use them to implement multitasking—see "Concurrent Programming in ML."

      thread
    5. davidgrenierMay 2023
      Oh another thing, I'm not a fan of the premise:

      "As a general-purpose memory allocator, though, we can't get away with having no free implementation."

      I have a belief that the future of software are short-lived programs that never free memory. Programs allocate and terminate. Short-lived program communicate with each other via blocking CSP-style channels (see Reppy's Concurrent Programming in ML).

      If you could also educate me on why this is a bad idea I would appreciate.

      thread

    Related

    Cover of Parallel And Concurrent Programming In Haskell
    2013–2025

    Parallel And Concurrent Programming In Haskell

    Simon Marlow
    24 recommend · 34
    Cover of Structure and Interpretation of Computer Programs
    2007–2026

    Structure and Interpretation of Computer Programs

    Harold Abelson
    347 recommend · 761
    Cover of The art of the metaobject protocol
    2010–2026

    The art of the metaobject protocol

    Gregor Kiczales
    38 recommend · 92
    Cover of ML for the working programmer
    2009–2025

    ML for the working programmer

    Lawrence C. Paulson
    16 recommend · 38
    Cover of Elements of ML programming
    2015–2023

    Elements of ML programming

    Jeffrey D. Ullman
    6 recommend · 15
    Cover of On LISP
    2007–2026

    On LISP

    Paul Graham
    192 recommend · 533
    Cover of Practical Common Lisp
    2007–2026

    Practical Common Lisp

    Peter Seibel
    218 recommend · 400
    Cover of Programming Clojure
    2009–2026

    Programming Clojure

    Stuart Halloway
    37 recommend · 103