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

标签 parsing compiler-construction ide

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。




Improve this question




在制作 IDE(例如 SharpDevelop)或编译器/语言解析器时,我需要了解哪些计算机科学主题?我不希望有完整的深入教程列表,而只是一个有助于我改进的主题列表。

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

谢谢

最佳答案

IDE、编译器和调试器是三种不同的野兽。

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

  • The High Performance GUI
  • Magic Ink - 可编程信息而不是交互
  • Edward Tufte - 想象一下,如果你的工作生涯都花在了看信息上,这让这一切变得美好。
  • Dynamic IDEs for Dynamic Languages (Bracha 还设计了 Java 的调试镜像接口(interface),IDE 需要的另一件事)
  • Information Design Patterns - GUI 的一般示例
  • Problems with tabbed interfaces (尽管当每一页代码看起来都一样时,图标也没有多大用处;也许像这里生成的图标会起作用)
  • Common Sense Suggestions for Developing Multimodal User Interfaces - 如果表达代码的最佳方式是挥手致意,或者严厉地与错误交谈,那该怎么办。
  • The Pinocchio Problem - 类似于 Bracha 的帖子,关于修补正在运行的框架

  • 这些链接有些偏向于帮助阅读和浏览而不是编写代码的模式,以及用户在使用它们时扩展的系统,而不是作为一个单独的循环;如果您想要一个面向任务的界面或静态插件,那么现有 IDE(例如 Eclipse)的项目就是您可以查看的地方。

    关于parsing - 构建 IDE/编译器所需的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/465873/

    相关文章:

    c++ - C++ 中更宽松的抛出说明符

    c++ - 如何在调试时观察多个变量而不在断点处停止?

    grails - IntelliJ,Grails - 我删除了一个文件,但没有任何效果

    json - 添加对 "manifest.json"的评论

    java - 如何使用dom解析器获取重复节点的唯一值

    javascript - 从 Destiny Api 解析 JQuery 中的 JSON 对象

    regex - 我有一个包含 9 个随机数的列表,如何使用 RegEx 查找重复项?

    java - Joda-Time 中的自由日期/时间解析

    compiler-construction - 用 Ocaml 编写的编译器中的表达式类型

    cocoa - 将源文件添加到不用于编译的 cocoa 项目