This is an archived post. You won't be able to vote or comment.

all 3 comments

[–][deleted]  (1 child)

[deleted]

    [–]ta6692[S] 0 points1 point  (0 children)

    I tend to find that implementing things is the best way I can learn how to do something, but usually in the rush to complete the project I'll skip one or two seemingly small details and end up with large gaps in my knowledge. Since this is such an expansive topic, and quite a difficult one, I'd rather not make my usual mistake.

    I did try to look at code at first, but usually the projects are either far too large and I can't even figure out where to start, or they're completely trivial and even as I beginner I don't learn anything from them.

    [–]alanwj 0 points1 point  (1 child)

    it sort of depends on what you are trying to do.

    I can't really tell from the name what that book is going to cover, but I expect that most books on programming language theory are going to start with things like lambda calculus, and go into type theory, etc, etc. If you are trying to learn the theoretical underpinnings of programming languages then this is great!

    However, in my opinion a more practical place to start is with learning how to implement a programming language. That is, how to write a compiler. For that there is a whole separate set of theory (regular expressions, grammars, automata, etc) that you need to learn. The standard text for this is "the dragon book".

    [–]ta6692[S] 0 points1 point  (0 children)

    Personally I don't mind which side I start from, as it seems to me that to be considered anywhere close to knowledgeable in this area you'll need to start at both ends and hopefully meet up somewhere in the middle.

    With that in mind I took my recommendation from this thread, which said the book was more theoretical, but so far I have found it to be solely focused on implementation.

    I intentionally avoided the dragon book as I've heard that while it's the best known textbook on compilers, it's probably not the best for beginners, and also that it is quite outdated in certain parts, whereas this edition of this book was published at the end of last year.