background image

3。3 解释一编译方法
  单纯使用传统的解释方法或编译方法都有不可避免的缺点,解释一编译方法是将两种
方法相结合进行数据处理的方法。在开始加工前先开辟一段内存作为缓冲区

(根据具体情况

分配

),接着一次性编译若干程序段,直到缓冲区满。然后,从缓冲区中取出已编译好的程

序段进行加工处理。这里必须 给加工处理完的程序置一标 志,例如,定 义一标志 位
bufflag,初始为 False,程序加工处理完后置为 True,则当所有程序的标志位都为 True 时清
空缓冲区,继续装入下一批编译的程序段。译码缓冲区在译码进程初始化时被开辟,在译码
进程被杀死时释放。在译码缓冲区的生命期间,数据被不断地写入、修改、读出与清除。对于
某一个缓冲区,它不断地接收新的零件程序段,不断地被各子进程轮流处理。这种将大量加
工程序分成若干程序段进行编译加工的方法,可有效减少编译等待时间,增加加工效率。

  

4 适用于制码系统数据处理的新方法

  上述几种数据处理方法都有其不足,如资源重叠流水处理解释方法只是缩短了进程间
的等待时间,其解释阶段不如目标码编译方法效率高,整个译码处理效率不如解释一编译
方法

;目标码编译方法只是优化了编译阶段的数据处理;解释一编译方法结合解释方法和编译

方法,提高了整体数据处理效率,但数据解释送缓冲区阶段不如资源重叠流水处理解释方
法效率高,缓冲区编译阶段又不如目标码编译方法效率高。

  综合分析上述各方法的优缺点,为制码系统研究出一种更优的数据处理方法。主要思想
是:总体运用解释一编译方法,开辟一段内存作为缓冲区,先一次性编译若干代码段存入
缓冲区,直到缓冲区满。然后,从缓冲区中取出已编译好的代码段进行加工处理。而在一次
性编译若干代码段中各条代码时,采用资源重叠流水处理的解释方法进行编译处理。并且在
编译处理时综合采用目标码编译方法,先判断各标志位,如具有相同代码段,就将该段相
同代码编译后的目标码存入

RAM 中,下次处理相同数据时直接调用 RAM 中的目标码即可。

其数据处理过程如下:

  

(1)定义缓冲区数据格式

  根据零件标记码的固定长度分配一定内存空间作为缓冲区,需两个一样大小的缓冲区
一个用来存放若干程序殷

(一个零件的 6 个标记码);另一个用来存放译码结果。缓冲区的数据

结构定义如下: