编译程序为什么有分前端和后端

编译程序为什么有分前端和后端,第1张

随着大家对浏览器页面的视觉和交互要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离。

后端的工程师只负责提氏察供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职,这种分工能够更好地节省时间,使产品的质量更好。

扩展资料:

GCC编译的前端将不同的高级编程语言经过词法分析、语法分析转化为与前端语言无关的统一的中间表示。有了与前端无关的中间表示,GCC的前端将不同的高级编程语言转换成这种中间表示,这就是GCC处理器支卖液持多种编程语言的根本原因。

前端编译的主要作用,是将编写的 .java 文件 编译成 .class 文件,也就是我们常说的字节码文件;字节码 文件,里面包含了我们编写的 .java 代码中的运行逻辑,参数 以及 这歼配茄些参数在内存中的分配。

编译原理中的遍概念

编译阶段也常常划分为两大步骤,分析步骤和综合步骤 分析步骤和综合步骤 分析步骤是指对源程序的分析 -线性分析(词法分析或扫描) -层次分析(语法分析) -语义分析 综合步骤是指后端的工作,为目标程序的生成而进行的综合

你分析过吗?若按照这种组合方式实现编译程序,可以设想,某一编译程序的前端加上相应不同的后 端则可以为不同的机器构成同一羡局圆个源语言的编译程序。也可以设想,不同语言编译的前端生成同一种中间 语言,再使用一个共同的后端,则可为同一机器生成几个语言的编译程序。

一个编译过程可由一遍、两遍或多遍完成。所谓"遍",也称作"趟",是对源程序或其等价的中间语言程 序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成上述一个阶段或多个阶段的工作。例如一遍可 以只完成词法分析工作;一遍完成词法分析和语法分析工作;甚至一遍完成整个编译工作。对于多遍的编 译程序腊告,第一遍的输入是用户书写的源程序,最后一遍的输出是目标语言程序,其余是上一遍的输出为下 一遍的输入。

在实际的编译系统的设计中,编译的几个阶段的工作究竟应该怎样组合,即编译程序究竟分成几遍, 参考的因素主要是源语言和机器(目标机)的特征。比如源语言的结构直接影响编译的遍的兄塌划分;像 PL/1 或 ALGOL 68 那样的语言,允许名字的说明出现在名字的使用之后,那么在看到名字之前是不便为包含该名 字的表达式生成代码的,这种语言的编译程序至少分成两遍才容易生成代码。另外机器的情况,即编译程 序工作的环境也影响编译程序的遍数的划分。遍数多一点,整个编译程序的逻辑结构可能清晰些,但遍数 多即意味着增加读写中间文件的次数,势必消耗较多时间,一般会比一遍的编译要慢。

C语言编译过程分成四个步骤: 

1,由.c文件到.i文件,这陵缓个察汪辩过程叫预处理 

2,由.i文件到败缺.s文件,这个过程叫编译 

3,由.s文件到.o文件,这个过程叫汇编 

4,由.o文件到可执行文件,这个过程叫链接

用gcc查看预处理过程(假设源文件叫hello.c) 

gcc -o hello.i hello.c -E 

然后用 vi hello.i 即可查看生成的预处理文件

按ESC 输入:$ 跳到预处理文件 可看到hello.c源码

宏的本质:预处理阶段的单纯的字符串替换

预处理阶段,不考虑C语法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12475744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存