您现在的位置是:首页 > 精选问答 >正文

windows编译器有哪些(编译器有哪些)

发布时间:2022-08-31 22:16:20甄颖筠来源:

导读您好,蔡蔡就为大家解答关于windows编译器有哪些,编译器有哪些相信很多小伙伴还不知道,现在让我们一起来看看吧!1、词法/语法分析、程序分...

您好,蔡蔡就为大家解答关于windows编译器有哪些,编译器有哪些相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、词法/语法分析、程序分析与程序变换、代码生成、内存管理、虚拟机、函数式语言的实现与优化。

2、每个话题都能出不止一本书。

3、用到的算法/数据结构多如牛毛:各种树、图为主,其他如栈、队列、散列表、并查集。

4、贪心、回溯、动态规划、遗传算法、矩阵变换。

5、 在一个问题下很难回答好。

6、 先简单介绍一下和图相关的。

7、 1. 和什么图打交道 CFG(Control Flow Graph)控制流图是对程序中分支跳转关系的抽象,描述程序所有可能执行路径节点是语句集合(basic block);每个basic block有唯一入口和出口;如果A到B有边,表示A执行完后可能执行BPDG(Program Dependence Graph)PDG在编译器中用得不多,常见于软件工程/安全相关的应用(程序切片、安全信息流等)SSA(Single Static Assignment)SSA简化了很多数据流分析问题。

8、其他图DJ Graph, Loop Nesting Forest, Program Structure Tree等等。

9、可参考:IR for Program Analysis。

10、下面主要介绍CFG2. CFG初步处理CFG构造dominator树生成在CFG中,如果A是B的dominator,则从程序入口执行到B的任意路径一定经过A控制依赖分析根据dominator和post-dominator分析依赖关系。

11、数据依赖、控制依赖信息在自动并行化中尤其重要(如果循环的每次迭代都没有依赖,那么可以并行处理)控制流图化简在复杂度相同的情况下,CFG的规模影响算法的效果。

12、如果一个CFG仅通过如下变换能化简为一个节点,则它是可化简的:如果节点n有唯一的前驱,那么将其和其前驱合并为一个节点如果节点存在到自身的边,那么将该边删除构造SSASSA可以由CFG构造。

13、3. CFG与数据流分析下面才进入主题。

14、一般的文献介绍DFA(Data flow analysis),都会用几个基础的分析为例:Constant Propagation,Range propagation,Avaliable expressions,Reaching Definition。

15、而Reaching Definition的一个应用,就是大家喜闻乐见的“跳转到定义处”(真要做到“智能”跳转并不简单)这部分涉及东西较多,一些算法也和”图“并不直接相关,不再展开。

16、PS,很多DFA问题可以用graph reachability统一建模,强烈推荐此文:Program analysis via graph reachability。

本文就讲到这里,希望大家会喜欢。

标签:

上一篇
下一篇