<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Frontend on rhanqtl's blog</title><link>https://blog.rhanqtl.com/tags/frontend/</link><description>Recent content in Frontend on rhanqtl's blog</description><generator>Hugo</generator><language>zh</language><atom:link href="https://blog.rhanqtl.com/tags/frontend/index.xml" rel="self" type="application/rss+xml"/><item><title>对现有 AST 自动生成机制的研究</title><link>https://blog.rhanqtl.com/posts/astgen-a-survey/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rhanqtl.com/posts/astgen-a-survey/</guid><description>一般而言，在一个产品级别的编译器中，AST 是非常庞大的，这引入了几个问题：（1）除了数据成员外，往往还有很多相应的 getter/setter（所谓的“boiler template code”），人工实现繁琐且容易出错；（2）往往存在需要对大量节点类型进行批量处理的情况，这时如果有成熟的基础框架可以大大提升工作效率。因此，很多产品级的编译器使用了自动生成（部分）AST 定义的方式。本文 Clang 和 Verilator 为例进行研究。</description></item></channel></rss>