编译原理 -- 运行时结构及编译过程概述
程序执行的本质就是代码区的指令不断执行,驱使动态数据区产生数据变化。这一过程需要计算机的管控。
过程中需要使用CPU中的三个寄存器:eip、ebp、esp。eip永远指向代码区将要执行的下一条指令,并且支持两种管控方式:一种是“顺序执行”,即程序执行完一条指令后自动指向下一条执行;一种是跳转,就是执行完一条跳转指令后跳转到指定位置。ebp和esp用来管控栈空间,ebp指向栈底,esp指向栈顶。在代码区中,函数的调用和执行伴随着不断压栈和清栈,栈中数据存储和释放的原则是先进后出。
执行函数传参指令时,参数入栈的顺序和代码中传参的书写顺序正好相反。
编译器是将源程序编译为计算机可执行程序的程序。
编译的过程主要分为词法分析、语法分析、中间代码生成、目标代码生成(忽略预处理、语义分析、优化等)。