前面提过了最近在 分析picoc的源代码,这篇文章先对picoc的初始化流程做一个简要的分析,其中涉及到的知识点做一些简要的解释。
一、关键数据结构Picoc_Struct
Picoc是通过Picoc_Struct数据结构将整个编译过程组织起来的,其定义位于文件“interpreter.h”中。


这个结构比较大,内容也比较多,这里只挑重要的截了两张图。主要需要注意的就是上面图中红框圈出的结构,整个picoc编译器就是依靠这些结构组织起来的,大部分的操作也是围绕着这些结构展开的。初始化流程中会这些结果的功能做介绍,这里先不介绍了。
二、初始化流程
Picoc启动后会对编译器进行初始化,由PicocInitialize()函数实现。由于过程比较清晰,这里就不画流程图了。初始化主要包括以下内容:
(1)平台初始化PlatformInit()
Picoc的平台初始化中只是将断点处理BreakHandler()与系统的程序终止信号SIGINT连接起来,以便使用断点调试功能。
(2)输入输出初始化BasicIOInit()
这个是将编译器的输入、输出和报错与系统的标准输入、输出和报错连接

本文分析了Picoc编译器的初始化流程,包括平台、输入输出、栈、共享字符串表、变量、词法分析、类型、包含文件、库及调试等11个方面的初始化。重点介绍了Picoc如何构建运行环境、初始化数据结构与变量,并与系统连接。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



