用c语言做毕业设计
【篇一:c语言编译器实现毕业设计】
编译原理课程设计
题 目 c语言编译器实现
计算机科学学院计算机科学与技术专业10 级 计本 班
学 号: 姓 名: 指导教师:
完成时间: 2013 年 6 月
目录
c语言编译器实现
一、 原理
1、简介
编译程序的工作过程一般可以分为
五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。每一个阶段在功能上是相对独立的,它一方面从上一个阶段获取分析的结果来进行分析,另一方面由将结果传递给下一个阶段。由编译程序的五个阶段就对应了编译系统的结构。
2、单词符号及种别表示
3、语法结构定义如下:
程序 ::= main()语句块 语句块 ::= ‘{‘语句串’}’ 语句串::=语句{;语句};
语句::=赋值语句|条件语句|循环语句 赋值语句::=id=表达式条件语句::=if条件语句块循环语句::=do 语句块while 条件 条件::=表达式关系运算符表达式 表达式 ::= 项{ +项|-项} 项 ::= 因子{*因子|/因子} 因子 ::=id|num|(表达式) 关系运算符 ::= |=||=|==|!
二、运行环境
windows 系统 visual c++ 6.0
三、 算法设计思想
1、词法分析主要算法
这部分对源文件进行分析,允许/* */注释。从源文件依次读取字符,对字符进行分析,组成字符串、数字、关系符等固定含义的token符,并把它们添加到token链中,如果遇到非法字符报错并退出程序。 2、语法分析主要算法
这部分对token链进行分析,利用自底向上的分析方法,构建slr(1)分析表的过程是手工完成的。语法分析的同时构建语法树,移进时创建叶子,规约时创建节点。 3、语义分析主要算法
这部分对语法树从左到右进行遍历,节点记录了规约式的编号,遍历到节点时就进行相应处理。语义分析主要检查变量、函数是否被定义或重定义,同时产生四元式。
函数一览表
void scanner();
【篇二:c语言编译器设计与实现毕业论文设计】
北京邮电 大 学
毕业设计(论文)任务书
第1页
第2页
第3页
c语言编译器设计与实现
摘 要
随着计算机的广泛应用,计算机程序设计语言也从初期的机器语言发展为汇编语言,以及现在的各种高级程序设计语言。而编译技术是计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支,他集中体现了计算机发展的成果与精华。
其核心思想就是把同样的逻辑结构和思想从一种语言表示的程序转换为另外一种语言表示的程序。从高级语言,甚至运行与虚拟平台的高级语言,到机器语言,最终到硬件执行的物理信号,这一层层的转化,都涉及编译技术的应用。
本系统采用c++为编程语言。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词:编译技术,编程程序,高级语言
c language compiler design and implementation
abstract
with the wide application of the computer, computer programming languages are developed from the early machine language into assembly language , and now a variety of high-level programming language. the compiler technology is the backbone of computer language development, but also the fastest growing in computer science , a branch of the most mature , he epitomizes the essence of the c
omputer and the fruits of development .
the core idea is the same logical structure of the program and ideas expressed in the conversion from one language to another language program represented . from the high-level language , and even running with high-level language virtual platform to machine language , and ultimately to the hardware implementation of the physical signal , the layers of transformation involves application of compiler technology .
key words: compiler technology,programming procedures,high-level programming language
【篇三:毕业设计c语言程序设计】
#includereg52.h
#include12864b.h
#includemath.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
sbit l1 = p2^0;
sbit l2 = p2^1;
sbit l3 = p2^2;
sbit r1 = p2^3;
sbit r2 = p2^4;
sbit r3 = p2^5;
sbit l4 = p2^6;
sbit r4 = p2^7;
sbit tr = p1^3;
sbit ec = p1^4;
char code table[]={0123456789};
char da[10];
uint s=0,time=0,f=0,a=0,j=0,k=0,lv=25,rv=25,n=0,d_t=0,d_t1=0,b=0,a1=0,juli=0; void fuzhi(int m);
void state ();
void delay(int i)
{
char j=0;
for(;i0;i--)
for(j=0;j125;j++);
}
void init()
{
th0=(65536-1000)/256;
tl0=(65536-1000)%256;
th1=0;
tl1=0;
ea=1;
et0=1;
et1=1;
tr0=1;
tmod=0x11;
p1=p10xe7;
}
void fuzhi(int m)
{
da[0]=m/1000;
da[1]=m/100%10;
c语言编译器idea da[2]=m/10%10;
da[3]=m%10;
}
void chao()
{
tr=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); tr=0;
while(!ec);
tr1=1;
while(ec);
tr1=0;
juli=(b*65536+(th1*256+tl1))*0.017;
th1=0;b=0;tl1=0;
}
void jiyu()
{
hanzi_disp(0,0,毕业设计智能小车);
hanzi_disp(1,0,信科一班王峰作品);
hanzi_disp(2,0,lv=);
hanzi_disp(2,4,rv=);
hanzi_disp(3,0,距离:);
hanzi_disp(3,5,(cm));
}
void main()
{
char i=0;
init();
lcd_init();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论