I'm a computer engineer and all the courses we have had about programming and computer languages were an introduction to C/Java and OOP. Now I feel like reading Java language specification to learn a deep understanding on Java language but I understand that there are something like grammar description in the specifications which I have no idea about. What should I study to be able to understand a programming language deeply(Especially specification elements such as grammar)? Have I missed some computer science courses? or I should understand all intuitively?

I was pondering about reading some books about compilers but I thought it'd be better asking it from the experts!

closed as off-topic by Bart van Ingen Schenau, user53019, Kilian Foth, Robert Harvey, Greg Hewgill Dec 5 '13 at 4:25

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Bart van Ingen Schenau, Community, Kilian Foth, Robert Harvey, Greg Hewgill
If this question can be reworded to fit the rules in the help center, please edit the question.


Study a programming language as you would study a spoken language. Grammar is important, and you can learn that from the formal specification of the language, but grammar only goes so far. Vocabulary matters too - actually, more. Every programming language has its collection of "words" - Java's Base Class Library, Lisp's common functions, C's Standard Library, etc. But even practice with vocabulary will only get you so far. Every programming language also has its idioms, and being able to use those well is the mark of a native speaker.

  • Now I think that I don't need to read the specifications and instead of that I'd better dive in JavaEE, learn Haskell & scala and try to involve me in as many serious development projects as I can. – user1892555 Nov 23 '13 at 18:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.