资源简介
华中科技大学 编译原理 面向过程的C语言的编译器设计 功能包括:词法分析和语法分析、语义分析、中间代码生成的 源码
题目:c--语言编译器设计与实现(请为自己的编译器命名) 源语言定义:或采用教材中Decaf语言,或采用C语言(或C++语言或C#语言或JAVA语言)部分关键语法规则。源语言要求至少包含的语言成分如下: 数据类型至少包括char类型、int类型和float类型 基本运算至少包括算术运算、比较运算、自增自减运算和复合赋值运算 控制语句至少包括if语句和while语句 实验内容:完整可运行的自定义语言编译器 实验一:词法语法分析器的设计与实现:建议使用词法语法生成工具如:LEX/FLEX ,YACC/BISON等专业工具完成。 实验二:符号表的设计与属性计算:设计符号表数据结构和关键管理功能。动态展现符号表变化过程。无论语法分析使用工具还是自己设计,都必须对符号表进行设计和管理,属性计算可以语义子程序实现。 实验三:语义分析和中间代码生成:生成抽象语法树,进行语义分析,实现类型检查和控制语句目标地址计算,生成中间代码。中间代码的形式可以采用不同形式,但实验中要求定义自己的中间形式。 实验四:目标代码生成:在前三个实验的基础上实现目标代码生成。也可以使用工具如LLVM来生成目标代码。
题目:c--语言编译器设计与实现(请为自己的编译器命名) 源语言定义:或采用教材中Decaf语言,或采用C语言(或C++语言或C#语言或JAVA语言)部分关键语法规则。源语言要求至少包含的语言成分如下: 数据类型至少包括char类型、int类型和float类型 基本运算至少包括算术运算、比较运算、自增自减运算和复合赋值运算 控制语句至少包括if语句和while语句 实验内容:完整可运行的自定义语言编译器 实验一:词法语法分析器的设计与实现:建议使用词法语法生成工具如:LEX/FLEX ,YACC/BISON等专业工具完成。 实验二:符号表的设计与属性计算:设计符号表数据结构和关键管理功能。动态展现符号表变化过程。无论语法分析使用工具还是自己设计,都必须对符号表进行设计和管理,属性计算可以语义子程序实现。 实验三:语义分析和中间代码生成:生成抽象语法树,进行语义分析,实现类型检查和控制语句目标地址计算,生成中间代码。中间代码的形式可以采用不同形式,但实验中要求定义自己的中间形式。 实验四:目标代码生成:在前三个实验的基础上实现目标代码生成。也可以使用工具如LLVM来生成目标代码。
代码片段和文件信息
/* A Bison parser made by GNU Bison 3.0.4. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984 1989-1990 2000-2015 Free Software Foundation Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation either version 3 of the License or
(at your option) any later version.
This program is distributed in the hope that it will be useful
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not see . */
/* As a special exception you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice so long as that work isn‘t itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively if you modify or redistribute
the parser skeleton itself you may (at your option) remove this
special exception which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* C LALR(1) parser skeleton written by Richard Stallman by
simplifying the original so-called “semantic“ parser. */
/* All symbols defined below should begin with yy or YY to avoid
infringing on user name space. This should be done even for local
variables as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted “INFRINGES ON
USER NAME SPACE“ below. */
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION “3.0.4“
/* Skeleton name. */
#define YYSKELETON_NAME “yacc.c“
/* Pure parsers. */
#define YYPURE 0
/* Push parsers. */
#define YYPUSH 0
/* Pull parsers. */
#define YYPULL 1
/* Copy the first part of user declarations. */
#line 1 “ding.y“ /* yacc.c:339 */
#include
#include
#include“GrammarTree.h“
#include“lex.yy.c“
void yyerror(const char* fmt ...);
#line 74 “ding.tab.c“ /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULLPTR nullptr
# else
# define YY_NULLPTR 0
# endif
# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 1
#endif
/* In a future release of Bison this section will be replaced
by #include “ding.tab.h“. */
#ifndef YY_YY_DING_TAB_H_INCLUDED
# define YY_Y
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-25 09:25 Cmm-Compiler\
文件 66 2018-08-25 09:25 Cmm-Compiler\.gitattributes
文件 1359 2018-08-25 09:25 Cmm-Compiler\README.md
目录 0 2018-08-25 09:25 Cmm-Compiler\lab1\
文件 4789 2018-08-25 09:25 Cmm-Compiler\lab1\GrammarTree.c
文件 1407 2018-08-25 09:25 Cmm-Compiler\lab1\GrammarTree.h
文件 188 2018-08-25 09:25 Cmm-Compiler\lab1\Makefile
文件 242 2018-08-25 09:25 Cmm-Compiler\lab1\change.txt
文件 62424 2018-08-25 09:25 Cmm-Compiler\lab1\ding
文件 13458 2018-08-25 09:25 Cmm-Compiler\lab1\ding.l
文件 63401 2018-08-25 09:25 Cmm-Compiler\lab1\ding.out
文件 100693 2018-08-25 09:25 Cmm-Compiler\lab1\ding.output
文件 90903 2018-08-25 09:25 Cmm-Compiler\lab1\ding.tab.c
文件 3636 2018-08-25 09:25 Cmm-Compiler\lab1\ding.tab.h
文件 12557 2018-08-25 09:25 Cmm-Compiler\lab1\ding.y
文件 67341 2018-08-25 09:25 Cmm-Compiler\lab1\lex.yy.c
文件 427 2018-08-25 09:25 Cmm-Compiler\lab1\test.cmm
目录 0 2018-08-25 09:25 Cmm-Compiler\lab2\
文件 4756 2018-08-25 09:25 Cmm-Compiler\lab2\GrammarTree.c
文件 956 2018-08-25 09:25 Cmm-Compiler\lab2\GrammarTree.h
文件 626 2018-08-25 09:25 Cmm-Compiler\lab2\Makefile
文件 26103 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis (复件).c
文件 26103 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.c
文件 1763 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.h
文件 9552 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.l
文件 98040 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.tab.c
文件 3791 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.tab.h
文件 15591 2018-08-25 09:25 Cmm-Compiler\lab2\SemanticAnalysis.y
文件 19168 2018-08-25 09:25 Cmm-Compiler\lab2\SymbolTable.c
文件 4386 2018-08-25 09:25 Cmm-Compiler\lab2\SymbolTable.h
文件 708 2018-08-25 09:25 Cmm-Compiler\lab2\change.txt
............此处省略92个文件信息
- 上一篇:Android音视频入门书籍
- 下一篇:SVG格式定义的电力图元/电力图符
相关资源
- 山东大学编译原理实验报告含代码
- Compiler_mean3tmp.rar
- 西安交通大学编译原理实验代码及报
- 编译原理第3版[刘铭][实验程序源代码
- 用Java做编译原理正规式转换成NFA.ra
- 编译原理课程设计含报告和可运行源
- 华中科技大学JAVA程序设计实验代码:
- 词法分析器实现java和c++
- 编译原理课程设计(附报告和可运行
- 现代编译原理虎书,包含c版和java版中
- 现代编译器的Java实现.(美)Andrew.W
- 编译原理java实现所需jar包-个人博客文
- 编译原理-虎书-龙书-鲸书
- java编写的LR语法分析器编译原理实验
- JAVA 编译原理 SLR(1)算法模拟器
- java 中间代码生成 编译原理
- 编译原理词法分析器 java版
- java 写的 用优先函数分析 数学表达式
- 符号串的最左和最右推导
- 编译原理词法分析器实现Java带界面源
- 编译原理综合实习 JavaCC实现 可翻译
- 编译原理 王生原 董渊 书后源代码
- 利用Java编写简单的C语言词法分析器
- Java实现PL0词法分析、语法分析、语义
- 语法分析器java实现
- 编译原理 词法分析 语法分析 Java版
- 词法程序设计——DFA模拟程序
- 编译原理 LL1语法分析器(JAVA写的)
- 使用直接分析法编制C语言子集的词法
- MiniC语言编译系统
评论
共有 条评论