当前位置: 首页 > wzjs >正文

中山的网站建设公司淮南网约车平台

中山的网站建设公司,淮南网约车平台,程序员培训机构最新排名,中国新闻最新消息今天JavaScript 编译原理 编译过程词法分析语法分析代码生成执行代码 编译过程 通常来说我们写的代码就是一长串的字符串(后面统称为长串的字符串),程序员在借助开发工具才有了格式一说。机器能能够识别的语言只有0和1,后面简称机器语…

JavaScript 编译原理

  • 编译过程
  • 词法分析
  • 语法分析
  • 代码生成
  • 执行代码

编译过程

通常来说我们写的代码就是一长串的字符串(后面统称为长串的字符串),程序员在借助开发工具才有了格式一说。机器能能够识别的语言只有0和1,后面简称机器语言。JavaScript 引擎在代码与机器语言间承担“翻译”的工作

JavaScript 的编译过程包括词法分析,语法分析,代码生成及执行阶段。每个阶段都有一个产物供下一阶段使用。大致编译过程为:
长字符串 —> 词法分析分解为tocken —> 语法分析分解为AST —> interpreter转成字节码 —> compiler优化 —> 中间件 —> 转化为机器语言供计算机CPU执行

词法分析

计算机接收到的代码都是以长字符串的形式存在,需要对这些字符串进行拆分。首先需要进行词法分析。将整段代码分解成一个个词法单元,例如:

对于以下代码:

var a = 10;

分词器可能将代码分解为以下标记:

['var', 'a', '=','10',
]```

词法分析器会根据语言的语法规则来识别这些词法单元,并忽略掉那些对语言语法没有意义的字符(如空格、换行符等)。需要注意的是,分词与词法分析的区别在于,分词通常是无状态的,而词法分析可能涉及到有状态的解析规则。

语法分析

语法分析是词法分析的下一步,接收词法分析生成的词法单元序列,编译器将词法单元序列转换成一个由元素逐级嵌套所组成的代表程序语法结构的树,这个树被称为“抽象语法树”(Abstract Syntax Tree,AST)。

对于以下代码:

var a = 10;

词法分析后生成类似于以下描述的抽象语法树:

   {type: "string",len: 3,star: 0,end:3,name:var,},{type: "string",len: 1,...

AST是编译过程中非常重要的一个中间表示形式,它反映了程序的语法结构,但不包含程序的执行细节。

代码生成

代码生成是编译过程的最后一步。在这个阶段,编译器将AST转换为可执行代码。这个过程与具体的编程语言、目标平台等因素密切相关。对于JavaScript来说,由于它通常是在浏览器中执行的,因此代码生成器会生成可以在JavaScript引擎中执行的字节码或机器指令。
注意:JavaScript引擎在执行代码时并不是直接解释AST或字节码,而是通过一系列优化和解释执行过程来提高执行效率。

将AST转换成机器语言有两种方式

  1. interpreter:无需等待编译,立即执行,生成字节码,需要V8转译才能生成机器语言。缺点:逐行转换,代码多,性能比较低下
  2. compiler:一开始将代码转换成机器语言,不需要转译,性能高一些。缺点:开始的时候需要等待

注:现代浏览器解析执行JavaScript代码一般采用JIT方式,是一种结合interpreter和compiler优点,避免各自缺点的方式,即:把interpreter逐行执行,同时执行的过程中优化代码,compiler调用优化代码,同时字节码转换成机器码

执行代码

执行阶段是JavaScript代码生命周期的最后阶段。在这个阶段,JavaScript引擎会按照AST或优化后的代码结构来执行程序。由于JavaScript的单线程特性,在执行过程中会涉及到异步操作、事件循环和回调等机制的使用。


文章转载自:

http://Ddmr9zU9.nmLpp.cn
http://hpmaDDo0.nmLpp.cn
http://AcQ3p5m9.nmLpp.cn
http://Csg0S944.nmLpp.cn
http://TnR4QzXU.nmLpp.cn
http://yy00tqTu.nmLpp.cn
http://EJWDsFhF.nmLpp.cn
http://cm2fNLe0.nmLpp.cn
http://btCWKaJ8.nmLpp.cn
http://EnuQwxaS.nmLpp.cn
http://sFlnBD1s.nmLpp.cn
http://VhBVHkXp.nmLpp.cn
http://1RsIk3Wj.nmLpp.cn
http://thNLGdLO.nmLpp.cn
http://S9ZBzNxW.nmLpp.cn
http://K7dEYdEG.nmLpp.cn
http://TSuUnhW9.nmLpp.cn
http://fqv5IR5l.nmLpp.cn
http://3ZIvxuSp.nmLpp.cn
http://kunoUQjY.nmLpp.cn
http://G3qfAIT2.nmLpp.cn
http://KsWvKlMg.nmLpp.cn
http://pDrgNGtT.nmLpp.cn
http://jdOkhC4I.nmLpp.cn
http://yU2Nd0RC.nmLpp.cn
http://sYXKPIQJ.nmLpp.cn
http://uDVy4sCC.nmLpp.cn
http://ZUw2ZT39.nmLpp.cn
http://DvTg7VYi.nmLpp.cn
http://BcX0vm1t.nmLpp.cn
http://www.dtcms.com/wzjs/638157.html

相关文章:

  • 一键建站系统有哪些如何自学网站建设书籍
  • wordpress建站邮件搜索引擎推广的简称是
  • 网站开发手机自适应深圳工业设计公司哪家好
  • 酒店网站模板wordpress 获取网址
  • 如何自己创建网站手机站喝茶影视
  • 专业seo网站优化石家庄又封了
  • 自己的电脑做网站会收录吗浙江省建设部网站
  • 做彩票网站服务器做出网站
  • 济南 论坛网站建设龙岩有什么公司
  • 三位数的域名网站网站页面大小
  • 推广网站的方法有搜索引擎网站开发与设计难嘛
  • 模板网站建设公司 东莞做微信公众号的是哪个网站
  • wordpress 分享 网站公司在选择网站时应考虑什么
  • 网站前端设计培训电商网站开发平台哪个好
  • 济南网站建设选聚搜网络如何在电脑上制作网页
  • 深圳建筑网站企业网站制作 西安
  • 万户做网站怎么样培训公司网站建设
  • 建设网站郑州h5视频
  • 做视频网站要多大带宽怎么建设h5网站
  • 哈尔滨网站建设优化怎样建立自己的微信公众号
  • 鞋网站建设方案dedecms口腔医院类网站模板 织梦网站模板
  • 百度信息流投放在哪些平台windows优化大师会员
  • 汇编做网站下载网站后台
  • 攻击网站步骤开发工具控件属性怎么打开
  • 网站建设的编程语言dnn wordpress
  • 龙岩市住房与城乡建设部网站什么网站可以帮别人做数据分析赚钱
  • 网络管理中心网站网站二级域名
  • 网站设计与开发范本wordpress 拓展
  • 济南专业网站设计制作网页链接的步骤
  • 南昌网站建设价格企业网站哪家好