background image

一个简单的 语言编译器

  

二.运行方式

  

    在 DOS 环境下运行:

       Cminus.exe <filename> -h

三.概述

     

     

经过一段时间的学习,我们在初步掌握了编译器的基本原理以后,设计了

一个具有基本编译功能的编译器。该编译器接受类 C 语言语法的源代码输入,输

出结果是 PC 机的汇编源代码。在捆绑了宏汇编编译器 Masm 后,即可直接生成
MSDOS 下的二进制可执行文件。为方便起见,以下简称为 C—语言编译器。
      本编译器实现了基本高级语言所必须的语法要素,包括 简单变量声明、函数

的实现、整数和字符串运算、条件判断语句和循环语句及跳转语句、基本代数运算、
赋值等,还支持汇编语言嵌入。本编译器是利用编译器生成器 Parse Generator 和
VC6.0 在 Windows 平台上实现的,并开发了一个基于 Windows 平台的 32 位编译

集成开发环境 CompilerMan  

, 提供了关键字彩色提示、出错同屏提示、出错代码跳

转等较为完善方便的功能。
      由于编译程序本身涉及到词法分析、语法分析、代码生成、错误恢复和优化等

诸多模块,要在实验中做到面面俱到不太可能,所以本编译器不可避免的会存在
各种问题,但作为一个具有基本功能的、可扩充的系统,完全达到了巩固编译原
理的理论知识,并将其运用于实践的目的。
      

四.背景

      编译程序,就是一种具有编撰和翻译功能的程序。人们要用计算机来解决问

题,首先面临的一个问题,就是要告诉计算机解决什么问题,或者告诉计算机如
何解决这个问题。这就涉及到用什么样的语言来描述的问题,人所习惯的自然语
言和计算机认识的机器语言有很大的差别,用机器语言来描述人想解决的问题十
分不便,因而,计算机科学家设计一些人们比较习惯的语言来描述要解决的问题,
称之为高级语言。用语言来描述的问题,统称为程序。然而,用高级语言写的程
序,不能被计算机所直接认识和理解,必须经过等价的转换,变成机器能理解并
执行的机器语言的程序。进行这种等价转换工作的工具,就是编译程序。