构建IDE /编译器所需的概念

Gur*_*epS 20 ide compiler-construction parsing

在制作IDE(例如SharpDevelop)或编译器/语言解析器时,我需要知道哪些计算机科学主题?我不希望有完整的深度教程列表,只是一个主题列表,这些主题对我有所改进.

我是否正确地认为解析器有一些关于语言的语法/语义的规则,并根据这些规则验证代码?这似乎是一个简单的方法?

谢谢

Pet*_*ham 9

IDE,编译器和调试器是三种不同的动物.

在考虑为模拟语言构建建模工具时,我会发现一些有趣或鼓舞人心的链接的快速且略有随机的选择,这与我到IDE一样接近:

对于帮助阅读和浏览而不是编写代码的模式的链接,以及用户在使用它们时而不是作为单独的循环扩展的系统,存在一些偏见; 如果您需要面向任务的接口或静态插件,可以查看现有IDE(如Eclipse)的项目.


mma*_*tax 6

要实现编译器/语言,您需要基本了解:

  • BNFEBNF - 无上下文语法(语法规则)
  • 词汇分析技巧与工具(Lex/Bison)
  • 解析技术(例如,递归体系,LL,LR)