zoukankan      html  css  js  c++  java
  • 简单的C语言编译器--概述

      在学习了编译原理的相关知识后,逐渐的掌握一个编译器的结构、作用和实现方法。同时,希望自己在不断的努力下写出一个简单的C语言编译器。

    实现步骤

    1. 词法分析器:将C语言测试代码分解成一个一个的词法单元;
    2. 语法分析器:利用LR(1)文法分析算法对词法单元进行归约;
    3. 语义制导翻译:即语义分析,集成在语法分析器中,在每次归约后执行相应的语义动作,产生三地址码;
    4. 代码优化:对三地码进行优化,提高效率;
    5. 汇编代码生成:分配寄存器、由三地址码转化为汇编代码,再由汇编器编译成可执行代码

    由于时间关系和实现难度较大的原因,我只是做到编译器的前端部分,即实现了1-3部,剩下了只好以后努力了。

    主要功能

    • 支持一元运算符(++,--,!,-),其中++和--有前缀和后缀两种功能
    • 支持逻辑运算符:||和&&
    • 支持算术运算符:+,-,*,/,%
    • 支持关系运算符:>,>=,<,<=,==,!=
    • 控制流:for循环,while循环
    • 支持判断语句if
    • 赋值操作及一维数组的部分操作
    • 只有boolint类型,其中的int为无符号整数
  • 相关阅读:
    冲刺 09
    冲刺08
    个人作业-买书
    冲刺07
    冲刺 06
    软件工程 寻找小水王
    冲刺04
    冲刺 03
    冲刺 02
    冲刺3
  • 原文地址:https://www.cnblogs.com/vachester/p/6884341.html
Copyright © 2011-2022 走看看