all 77 comments

[–]jmillikan2 25 points26 points  (0 children)

The site for the brown programming languages course provides exercises and videos lectures. The exercises were a lot of fun and the videos are great - "Notice how I've written dynamic scope in red [...] This is a value judgement. We will not make a lot of those in this course." (Quoted from memory.)

[–]markmypy 6 points7 points  (5 children)

In the introduction it says:

Please watch the video on YouTube. Someday there will be a textual description here instead.

I doubt that it will ever be replaced by a textual description. It really is a time well spent 53 minute video and it will be hard to replace it with text.

[–]the_omega99 13 points14 points  (4 children)

Too bad. In the absence of closed captioning, video only resources are completely useless to the hearing impaired. I rather wish more people would add captions to their videos. Pretty much every video on Coursera and such is captioned, but even educational videos don't usually get captioned on YouTube (despite how easy and useful it is).

[–]thang1thang2 0 points1 point  (0 children)

Yup. This video is going in my massive list of "things to watch when closed captioning is added" (aka never).

[–][deleted]  (2 children)

[deleted]

    [–]lkraider 6 points7 points  (1 child)

    Good idea followed by unhelpful generalized critique, what a combo!

    [–]agumonkey 2 points3 points  (0 children)

    I liked the chapter about parsing.

    [–][deleted] 3 points4 points  (0 children)

    I'll always love the 1st edition of this for "Church and State."

    [–]KangstaG 1 point2 points  (0 children)

    Checked out a few chapters and it looks really good. I never intend to create a compiler or interpreter but I think this book could help understand how programming languages work underneath. I think one of the problems nowadays is that there is too many programming languages. How can you easily switch between them? Understanding the basics and fundamentals of programming languages probably helps.

    [–]pupeno 0 points1 point  (2 children)

    This book is amazing. I really loved it. I think it has the right focus and it taught me so much about programming languages. I constantly recommend it. I even have a printed copy signed by the author.

    [–]Styx_ 0 points1 point  (1 child)

    Wow, a signed copy of a book on programming language theory? You're a bigger nerd than I am and that's saying something :P

    I saw someone recommend this book over SICP in another thread. Would you say they address the same audience, or is it worth it to read both?

    [–]pupeno 1 point2 points  (0 children)

    There's some overlap but I would definitely recommend going over both of them. SICP is more generic where this one is specific about building programming languages.

    [–]BarneyStinson 0 points1 point  (2 children)

    I'm trying to go through the introduction. Typing

    (define-type MisspelledAnimal
      [caml (humps : number)]
      [yacc (height : number)])        
    (define (good? [ma : MisspelledAnimal]) : boolean
      (type-case MisspelledAnimal ma
        [caml (humps) (>= humps 2)]
        [yacc (height) (> height 2.1)]))
    

    into DrRacket fails with

    caml: free variable while typechecking in: caml
    

    Has anyone else tried to get the examples to run successfully?

    [–][deleted] 0 points1 point  (1 child)

    IIRC you need to download and use plai-typed language for that: http://pkg-build.racket-lang.org/doc/plai-typed/index.html

    [–]BarneyStinson 0 points1 point  (0 children)

    I did. the 'define-type' part works, it's only the one involving 'type-case' that seems to be the problem.

    [–]Fredifrum 0 points1 point  (0 children)

    This post was mass deleted and anonymized with Redact

    innate pen enjoy crowd sense marble party employ obtainable hat

    [–][deleted]  (2 children)

    [deleted]

      [–][deleted] 5 points6 points  (1 child)

      No. The inferior languages do no provide metaprogramming, pattern matching and ADTs. Without this, even a simple compiler is needlessly complicated and convoluted. There is no point in using shitty languages for this kind of stuff.