学习增量编译设计 [英] Learning incremental compilation design

查看:124
本文介绍了学习增量编译设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有很多关于创建编译器的书籍和文章,它们一次完成所有的编译工作。以及IDE使用的增量编译器/解析器的设计呢?我熟悉第一类编译器,但我从来没有使用第二个编译器。

There are a lot of books and articles about creating compilers which do all the compilation job at a time. And what about design of incremental compilers/parsers, which are used by IDEs? I'm familiar with first class of compilers, but I have never work with the second one.

我试图阅读一些关于Eclipse Java开发工具的文章,但他们描述如何使用完整的基础设施(即API)而不是描述内部设计(即它如何在内部工作)。

I tried to read some articles about Eclipse Java Development Tools, but they describe how to use complete infrastructure(i.e. APIs) instead of describing internal design(i.e. how it works internally).

我的目标是为自己的编程语言实现增量编译器。

My goal is to implement incremental compiler for my own programming language. Which books or articles would you recommend me?

推荐答案

这是值得一看的:建立灵活的增量编译器后端。 (或直接发送到 PDF

This is worth a look: Builing a Flexible Incremental Compiler Back-End. (Or directly to the PDF)

10结论:


本文探讨了
设计的增量
编译的后端系统。而不是
构建一个单一的固定增量
编译器,本文提出了一个
灵活框架,用于根据用户需求构建这样的
系统。

This paper has explored the design of the back-end of an incremental compilation system. Rather than building a single fixed incremental compiler, this paper has presented a flexible framework for constructing such systems in accordance with user needs.

我认为这是您正在寻找...

I think this is what you are looking for...

编辑:

所以你打算创建一个被称为交叉编译器的东西?!

我开始一个新的尝试。到目前为止,我不能提供最终的参考。如果你计划这样一个大项目,我相信你是一个有经验的程序员。因此,有可能,你已经知道这些链接。


So you plan to create something that is known as a "cross compiler"?!
I started a new attempt. Until now, I can't provide the ultimate reference. If you plan such a big project, I'm sure you are an experienced programmer. Therefore it is possible, that you already know these link(s).

Compilers.net

某些编译器的列表,甚至交叉编译器(Translators)。不幸的是有一些断开的链接,但Toba仍然工作,并有一个链接到其源代码。这可能会激励你。

Compilers.net
List of certain compilers, even cross compilers (Translators). Unfortunately with some broken links, but 'Toba' is still working and has a link to its source code. May be that this can inspire you.

clang:C语言家族前端对于LLVM

好​​,它用于 LVVM ,但源位于SVN存储库中,似乎成为编译器(翻译器)的前端。也许这也能激励你。

clang: a C language family frontend for LLVM
Ok, it's for LVVM but source is available in a SVN repository and it seems to be a front end for a compiler (translator). May be that this can inspire you as well.

这篇关于学习增量编译设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆