12月2日,经过夜以继日的码📦🝆🈷代码,终於将y件虚拟机的全部代码写完,历时两个月,终於完成⚵了。
接下来的工作就是编🎍🏸🞵写新语言以及配🉣🅼套的编译器🃥,一般来说这两部分是同时进行的,但是到他这里,却是有所不同。
他脑海中🍣已经有全套的新语言架构,甚至可以说,连代码都存在他的脑海中,唯一的工作,就是将脑海🔢中的东西写出来。
他不需要探索新👍语言的架构,也就意味着不需要做重复工作,直🏲🞃接就开始进行编译器的编写,这对後面的语言部分开发很有帮助。🗓🛈🚗
而这两项工作当中,编译器🖮的代码数量并不是特别大,主要功能只有三个:词法分析器、词义⛾☝分析器以及优化器。🞠🕢
这三个部分基本上是所有编译器都会有的,只要有这三个🛍🛊功能模块,基本上就可以满足一款语言的编译工作。
词🚫🖙法分析器主要是将源文件转换为机器需要的格🃥式语言,并🍬且对源文件语法做检查,起到高级编程语言的转换和检查作用。
语义分析器主要的作用是将已经转换成的🐳符合词法规定的一系列的词语按照语言结构的要🛐🛞求转换成一系列的语法结构,并进行结构化分析,形成中间代码。
优化器顾名思义,就是对应用语言的代码进☔⚯行优化,提升代码的效率,🖢🔒将一些不是致命的错误进🝪🎁🎇行优化。
除此之外,高级编程语言,🖮还需要将语义分析器分析的结构X语言,🂂转换为汇编语言和目标代码,这部分一般叫汇编。
高级语言一般都是片段式的,完成一个目标功能的代码,往往存在於多个文件当中,在编译的时候,需要将这些🈵文件整合,这一步叫做链接。
而他需要在编译器当中添加预编译功能,这麽做的目的,就是能够让程序员能够在编写代码的时候,就可以💑👋检查出错🛴☻🄣误。
12月2日,经过夜以继日的码📦🝆🈷代码,终於将y件虚拟机的全部代码写完,历时两个月,终於完成⚵了。
接下来的工作就是编🎍🏸🞵写新语言以及配🉣🅼套的编译器🃥,一般来说这两部分是同时进行的,但是到他这里,却是有所不同。
他脑海中🍣已经有全套的新语言架构,甚至可以说,连代码都存在他的脑海中,唯一的工作,就是将脑海🔢中的东西写出来。
接下来的工作就是编🎍🏸🞵写新语言以及配🉣🅼套的编译器🃥,一般来说这两部分是同时进行的,但是到他这里,却是有所不同。
他脑海中🍣已经有全套的新语言架构,甚至可以说,连代码都存在他的脑海中,唯一的工作,就是将脑海🔢中的东西写出来。
他不需要探索新👍语言的架构,也就意味着不需要做重复工作,直🏲🞃接就开始进行编译器的编写,这对後面的语言部分开发很有帮助。🗓🛈🚗
而这两项工作当中,编译器🖮的代码数量并不是特别大,主要功能只有三个:词法分析器、词义⛾☝分析器以及优化器。🞠🕢
这三个部分基本上是所有编译器都会有的,只要有这三个🛍🛊功能模块,基本上就可以满足一款语言的编译工作。
词🚫🖙法分析器主要是将源文件转换为机器需要的格🃥式语言,并🍬且对源文件语法做检查,起到高级编程语言的转换和检查作用。
语义分析器主要的作用是将已经转换成的🐳符合词法规定的一系列的词语按照语言结构的要🛐🛞求转换成一系列的语法结构,并进行结构化分析,形成中间代码。
优化器顾名思义,就是对应用语言的代码进☔⚯行优化,提升代码的效率,🖢🔒将一些不是致命的错误进🝪🎁🎇行优化。
除此之外,高级编程语言,🖮还需要将语义分析器分析的结构X语言,🂂转换为汇编语言和目标代码,这部分一般叫汇编。
高级语言一般都是片段式的,完成一个目标功能的代码,往往存在於多个文件当中,在编译的时候,需要将这些🈵文件整合,这一步叫做链接。
而他需要在编译器当中添加预编译功能,这麽做的目的,就是能够让程序员能够在编写代码的时候,就可以💑👋检查出错🛴☻🄣误。
12月2日,经过夜以继日的码📦🝆🈷代码,终於将y件虚拟机的全部代码写完,历时两个月,终於完成⚵了。
接下来的工作就是编🎍🏸🞵写新语言以及配🉣🅼套的编译器🃥,一般来说这两部分是同时进行的,但是到他这里,却是有所不同。
他脑海中🍣已经有全套的新语言架构,甚至可以说,连代码都存在他的脑海中,唯一的工作,就是将脑海🔢中的东西写出来。