Looking for extra-basic reference on PL theory

Hello,

I'm new here and this is my first post. :-)

I'm a software engineer, mostly with background in C, C++, Java, and PHP, but I have a strong interest in expanding my knowledge and learning other programming language paradigms. I've already looked through the "Getting Started" thread here, as well as wikipedia on topics like functional programming, monads, closures, haskell, lambda calculus, etc. However, I'm still having trouble understanding all the concepts. I get some things like erlang, scheme, half of lisp ;-), but others escape me completely.

So what I'm after is a extra-basic reference to such things. What exactly is the concept, why is it important, what benefit does it provide, an example of a real-world situation where it's helpful, etc. All boiled down to basic terminology and explanations. Is there such explanations online? Is there a "Programming language paradigms for Dummies" out there anywhere? :-)

Thanks,
- Jeremiah

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Books?

Have you worked through any of the books mentioned in the Getting Started thread? Top candidates would be SICP, CTM, EOPL, HtDP. After at least one of those, TaPL might be a good starting point for some of the more formal material. However, there are a lot of other good books mentioned in that thread.

So what I'm after is a extra-basic reference to such things. What exactly is the concept, why is it important, what benefit does it provide, an example of a real-world situation where it's helpful, etc. All boiled down to basic terminology and explanations.

It can be difficult to grok PL theory a concept at a time, because most of the concepts are part of a broader theory, and don't make as much sense out of context. You need to study some of the books which introduce you to the theories, not just a collection of concepts.

Speaking of books

Ran across programmingbooks.org for those that like to select their books based on the democratic method - though the number of votes at this point is a tad underwhelming (the presentation is fairly nice).

User names

I'd like to remind everyone about the LtU policy on user names. Please try to adhere to it.

Whoops

Didn't read that before I signed up. Changed my username to "Jeremiah". :-)

- Jeremiah

Thanks!

Thanks!

Concepts in Programming Languages

"Concepts in Programming Languages" by John C. Mitchell
ISBN: 0521780985

is a decent book to get your PL vocabulary up and running.
Its easy on the maths, but provides thorough explanations of a wide range of PL paradigms and concepts which you can refine later by reading more advanced books.

If it's theory you want, I

If it's theory you want, I think you will have to dig into the books mentioned above, and continue from there. If you are more interested in the way different "paradigms" approach the problems of programming, there are several nive introductory papers, written by proponents of different paradigms that are worth checking out. A couple examples:

For FP, check out Why Functional Programming Matters.

For OOP (in the C++ sense), check out What is Object Oriented Programming by Stroustrup.

For Logic Programming, check out Apt on The Logic Programming Paradigm and Prolog.

I am sure some here will want to argue with my suggestion to read Stroustrup on OOP, but I think this paper is a useful introduction - even though I don't agree with all of it.

another book

To the already mentioned books of the ‘concepts and constructs’ kind, I would like to add “Programming Language Pragmatics” (check at the publisher or at Amazon). It is informative, reads smoothly, and is well balanced: today's widely used languages and major trends are paid due attention, but important historical and non-mainstream languages and concepts, such as e.g. PL/I, Algol 68, CLU, Icon, occam, SR, and Dijkstra's guarded commands are also discussed. It is perhaps my current favourite of this kind of textbooks.

Thanks for the suggestions!

Thanks everyone. I'm reading SICP online now, and I will definitely look into the other book recommendations too. :]

Thanks!
- Jeremiah