When it comes to making an IDE (e.g. SharpDevelop) or a compiler/language parser, what topics of computer science do I need to know? I don't expect a full list of in depth tutorials but just a list of topics which would benefit me in improving.
Am I right in thinking a parser has some rules about the syntax/semantics of a language, and validates the code based on these rules? That seems like a simple approach?
Thanks
Most IDEs are created by large professional teams (e.g. Microsoft Visual Studio, JetBrains IntelliJ) or by a group of Open Source developers (e.g. Eclipse). Knowing this why would you want to build an IDE? Especially as it has been done so many times before.
An IDE allows developers to start programming new applications quickly because multiple utilities don't need to be manually configured and integrated as part of the setup process.
An IDE must support an array of new and old programming languages. Some IDE makers tailor their tools for a specific programming language or a narrow range of languages. Others support a broader spectrum of languages. The lead developer should pick an IDE that supports their current project's languages.
The main difference between IDE and compiler is that the IDE is a software suite that consists of tools required to develop and test software applications while the compiler is a program that translates the source code written in a high-level programming language into a low-level machine code.
An IDE, a compiler and a debugger are three different beasts.
Here's a quick and slightly random selection of some links that I've found interesting or inspiring when thinking about building modeling tools for simulation languages, which is as close as I get to IDE:
There's somewhat of a bias in those links towards patterns to help reading and browsing rather than writing code, and towards systems the user extends while using them rather than as a separate cycle; if you want a task-oriented interface or static plugins, projects for existing IDEs such as Eclipse are the place to look.
For implementing a compiler / language, you will need a fundamental understanding of:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With