What's the best way to start learning programming language design?
-
I am interested in learning more about programming language related knowledge. I've read several books about parsing and compilers, and have the urge of start implementing my own simple language. Before I start however I'd like to basic some basic knowledge about language design. Are there any recommended books or tutorials? I am not asking about learning a specific language. In fact I am an experienced programmer already. I am asking about learning the concept used in designing a new language.
-
Answer:
I would highly recommend you read this book if you have not already: http://www.amazon.com/Essentials-Programming-Languages-Daniel-Friedman/dp/0262062798 This book will ground you in the field of language design by taking you through the steps of how programming language designers operate when designing a programming language : conceive, model, clarify, implement, optimize It does this by teaching you how to write interpreters for common and not so common language features and ultimately teaches you concepts like correctness preserving transformations that lead you all the way to compiler generation.
Anurag Mendhekar at Quora Visit the source
Other answers
The best way to prepare to design something new is to learn about previous work in the field. There are literally hundreds of programming languages, thousands if you include "little languages". A few dozen of these had something new to say when they were created. Learn about those languages. Especially read the initial papers about them where their designers talked about what they were trying to achieve. You don't need to agree with all of their objectives, nor with their own assessment of success (I often don't), but you need to understand what they are saying. Once you have done the above, you are ready to start thinking about language design in a fundamental way, not merely "syntactic sugar".
Richard I. Polis
I'm an advocate for whatever method you know works best for you. Before paying for any sort of curriculum, or college credit, look into different FREE guides to programming. There are quite a few out there for Java/C++ programming, and other languages too. There are even programming guides and aids aimed for the middle school age group!
S Shane Burgess
I'll just tell you what i have done...If you have ample of time (i began in class 8, am currently in class 11) you can follow the following sequence: First you can learn QBASIC. It is a very basic language and builds a nice base for learning how a program works. I learnt it from http://tedfelix.com/qbasic/. Learn as much as you want. Skip the chapters about graphics and sound as they are not useful. Don't expect yourself to do something great from QBASIC as it is obselete and is just good for being introduced to programming. Then you can start on with C++ no need to learn C. You can learn C++ from books. I learned it from Programming Principles and Practice using c++ by Bjarne Stroustrup. Then you could learn more from Lippman's C++ primer. C++ is a very good and useful language after learning it well. You can easily pick up with some more advanced languages like Python, Java, etc. that are built mostly on C++. Most of the computer systems are built on C++. After all, programming is more about logical thinking. The above are just languages and just provide a way to communicate with the computer and tell it what to do and how to do. But, you need to be able to explain things to computer in an algorithmic manner using any language. And gradually you would learn that computer is the "dumbest" thing you ever encounter.This might not be the best way but it worked for me and I can program pretty well.Hop this helps!!
Abhiraj Tiwari
Hi Friends,I found following Apps, useful to Learn Programming from scratch, which contains free video courses, interview questions, typical programs, discussion corner, challenge quiz's and offline notes many more. Lets try it.Learn Python from PALhttps://play.google.com/store/apps/details?id=com.phoenixapplabs.learnpythonLearn C from PALhttps://play.google.com/store/apps/details?id=com.phoenixapplabs.learncLearn Java from PALhttps://play.google.com/store/apps/details?id=com.phoenixapplabs.learnjavaLearn C# from PALhttps://play.google.com/store/apps/details?id=com.phoenixapplabs.learncsharp
Akash Gupta
Related Q & A:
- What's the best way to get into the Graphic Design industry?Best solution by Yahoo! Answers
- What's the best way to start a small clothing line business?Best solution by Yahoo! Answers
- What is the best way to start up a local IT business?Best solution by Yahoo! Answers
- What's the best way to start a blog?Best solution by Yahoo! Answers
- What is the best way to start a blog?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.