微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是语言前端?

如何解决什么是语言前端?

我对编程语言和编译器上下文中的前端和后端定义感到困惑。

LLVM编译器基础结构项目是一组编译器和工具链技术,可用于开发任何编程语言的前端和任何指令集体系结构的后端。

当我搜索“编程语言前端”时,我发现的全部是HTML CSS JS,我知道这不是上下文中的含义。谁能向我解释或指导我使用正确的资源?

解决方法

编译器的 前端 是编译器的一部分,它从原始源代码开始,并以对该程序“意味着”的某种内部表示形式结束”以某种格式存储,该格式允许编译器的其余部分了解该结构并开始生成代码。在这里(通常)完成了扫描,解析和语义分析。

编译器的 后端 是编译器的一部分,它采用内部表示形式并将其用于生成某种格式的代码(汇编,机器代码, JVM字节码,LLVM位码等。)通常处理诸如优化,指令选择,寄存器分配等之类的事情。

某些编译器将这两部分分解为逻辑上独立的组件。有时他们交织在一起。 LLVM的主要目的是使其成为一部分,以便您可以为新语言构建前端,然后将其挂接到现有的后端,以便可以设计新语言并获得其他人拥有的所有出色的优化工作。完成,或者为现有的前端构建新的后端,以防您想使用一种新的分析方法来分析以某种现有语言编写的程序。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。