编译器和编程语言设计(出于好奇)

用户名

这是我最近一直在思考的问题。作为计算机工程专业的学生,​​由于以下事实,我想知道计算机科学或计算机工程的哪些领域特别关注编译器:

我将在其中有一些不同专业的学院学习:

-计算机(CPU体系结构,操作系统,计算机网络,实时系统和其他一些硬件问题,我很喜欢)

-软件(软件体系结构,数据库设计,Web服务,高级编程概念,分布式系统...)

-计算机科学(算法,逻辑,图形,人工智能...我认为所有纯粹的理论知识)

最后一个专业有一个名为“编译器”的主题,所以这是我的问题:编译器是否仅与逻辑,算法和诸如此类的东西专门相关?是否有机会独自学习或从另一个角度去面对涉及编译器的所有知识?还有其他专业化专注于它们吗?

谁能给我关于这个问题的一般看法?

templatetypedef

编译器几乎位于CS所有分支的交叉点。尽管它们大量地取材于一些特定的学科,但是构建一个好的编译器需要对CS的众多分支有很好的了解。

编译器的前端利用了形式语言理论(常规语言,正则表达式,有限自动机,语法,解析等),理论CS(类型系统)和许多其他学科的技术。还有语言设计和实现方面的问题,这些问题通常恰好在系统编程和理论CS的交集处。

代码生成器依赖于对机器实际工作方式的深刻理解。您需要熟悉内存布局,寄存器,汇编指令,处理器流水线等。

编译器优化通常具有强大的理论基础(控制流程图,满足半晶格,传递函数,图形着色等),但受实际问题(并行性,分支预测等)的驱使。

还存在关于语言运行时的担忧,例如垃圾回收,动态优化等。这些需要一些强大的理论保证,但也肯定会挑战系统问题。

甚至出现了一些AI技术:某些全局流分析使用通过机器学习调整的数据结构,而有时使用Markov链蒙特卡洛技术进行超优化。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编译器和编程语言设计(出于好奇)

来自分类Dev

JSP的构造方法(出于好奇而查询)

来自分类Dev

出于好奇,为什么 ConstraintLayout 和 LinearLayout 声明不一致?

来自分类Dev

狗编程语言编译器

来自分类Dev

编程语言的速度取决于编译器吗?

来自分类Dev

定制的编程语言编译器是否基于现有语言?

来自分类Dev

为什么Java不支持结构?(只是出于好奇)

来自分类Dev

出于好奇:为什么python3不使用__dict__作为默认的相等实现?

来自分类Dev

编译器和编译器

来自分类Dev

编译器是否将编程语言转换为机器代码?

来自分类Dev

编译器设计中的内联汇编

来自分类Dev

编译器设计-计算常数

来自分类Dev

编译器是用什么语言编写的?

来自分类Dev

以编程方式调用角度编译器

来自分类Dev

Swift REPL和swiftc编译器如何不同地解释语言?

来自分类Dev

当 x 是 uint8 时 x |= 128 的好奇 gcc 编译器代码

来自分类Dev

编译器还是解释器,还是用解释语言编写编译器仍使它成为编译器?

来自分类Dev

一种用于编译器设计的算法?

来自分类Dev

如何在ANSI C中使用Visual Studio 2015编程(作为编辑器和编译器)?

来自分类Dev

语言编译器是否使用复杂的DFA接受程序?

来自分类Dev

GCC汇编语言编译器错误

来自分类Dev

使用C语言的图形(GCC编译器)

来自分类Dev

指针,转换和不同的编译器

来自分类Dev

constexpr和CRTP:编译器分歧

来自分类Dev

C,编译器错误和指针

来自分类Dev

编译器,If语句和循环

来自分类Dev

在C ++和编译器中内联

来自分类Dev

Coffeescript编译器和观察程序

来自分类Dev

Java编译器和接口转换

Related 相关文章

热门标签

归档