关键词:
实验一:词法分析
专业:商业软件工程 姓名:陈锐 学号:201506110103
一、 实验目的
编制一个词法分析程序。
二、 实验内容和要求
1.输入:源程序字符串
2.输出:二元组(种别,单词本身)
3.待分析语言的词法规则
4.对字符串表示的源程序从左到右进行扫描和分解
5.根据词法规则识别出一个一个具有独立意义的单词符号以供词法分析之用
6.发现词法错误,则返回出错信息
三、 实验方法、步骤及结果测试
1. 源程序名:cifafenxi.c
可执行程序名:cifafenxi.exe
2. 原理分析及流程图
主要就是利用for循环联合if语句判断来输出二元组
流程图:
3. 主要程序段及其解释:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i;
char a[100];
printf("请输入字符串:");
scanf("%s",&a);
for(i=0;i<100;i++)
{
if(a[i]==‘b‘&&a[i+1]==‘e‘&&a[i+2]==‘g‘&&a[i+3]==‘i‘&&a[i+4]==‘n‘)
printf("<1\tbegin>\n");
else if(a[i]==‘i‘&&a[i+1]==‘f‘)
printf("<2\tif>\n");
else if(a[i]==‘t‘&&a[i+1]==‘h‘&&a[i+2]==‘e‘&&a[i+3]==‘n‘)
printf("<3\tthen>\n");
else if(a[i]==‘w‘&&a[i+1]==‘h‘&&a[i+2]==‘i‘&&a[i+3]==‘l‘&&a[i+4]==‘e‘)
printf("<4\twhile>\n");
else if(a[i]==‘d‘&&a[i+1]==‘o‘)
printf("<5\tdo>\n");
else if(a[i]==‘e‘&&a[i+1]==‘n‘&&a[i+2]==‘d‘)
printf("<6\tend>\n");
else if(a[i]==‘|‘&&a[i+1]==‘(‘&&a[i+2]==‘l‘&&a[i+3]==‘|‘&&a[i+3]==‘d‘&&a[i+3]==‘*‘)
printf("<10\tl(l|d)*>\n");
else if(a[i]==‘d‘&&a[i+1]==‘d‘&&a[i+2]==‘*‘)
printf("<11\tdd*>\n");
else if(a[i]==‘-‘)
printf("<14\t->\n");
else if(a[i]==‘*‘)
printf("<15\t*>\n");
else if(a[i]==‘/‘)
printf("<16\t/>\n");
else if(a[i]==‘:‘&&a[i+1]!=‘=‘)
printf("<17\t:>\n");
else if(a[i]==‘:‘&&a[i+1]==‘=‘)
printf("<18\t:=>\n");
else if(a[i]==‘<‘&&a[i+1]!=‘=‘&&a[i+1]!=‘>‘)
printf("<20\t<>\n");
else if(a[i]==‘<‘&&a[i+1]==‘=‘)
printf("<21\t<=>\n");
else if(a[i]==‘<‘&&a[i+1]==‘>‘)
printf("<22\t<>>\n");
else if(a[i]==‘>‘&&a[i+1]!=‘=‘)
printf("<23\t>>\n");
else if(a[i]==‘>‘&&a[i+1]==‘=‘)
printf("<24\t>=>\n");
else if(a[i]==‘=‘)
printf("<25\t=>\n");
else if(a[i]==‘;‘)
printf("<26\t;>\n");
else if(a[i]==‘(‘)
printf("<27\t(>\n");
else if(a[i]==‘)‘)
printf("<28\t)>\n");
else if(a[i]==‘#‘)
printf("<0\t#>\n");
}}
程序比较简单,基本上没有什么难点,就是把输入的字符串存放到字符数组里面,然后用for循环结合if-else语句使用。
4. 运行结果及分析
四、 实验总结
1.程序做的比较简单,毕竟基础比较差,所以也就没什么大的问题。
2.略微了解了一点词法。
实验报告-词法分析
---恢复内容开始---实验一、词法分析实验专业:商软二班 姓名:黄思慧 学号:201506110189一、 实验目的通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握... 查看详情
词法分析实验报告
实验一、词法分析实验专业商业软件工程 姓名黄施策 学号201506110228一、 实验目的 编制一个词法分析程序。二、 实验内容和要求 &nb... 查看详情
词法分析实验报告
实验一、词法分析实验商务软件工程三班 吴文成 201506110217一、 实验目的调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能... 查看详情
词法分析实验报告1
实验一、词法分析实验商软二班张智恒201506110172一、 实验目的 编制一个词法分析程序 二、 实验内容和要求编写一个词法分析程序,使其能... 查看详情
词法分析实验报告
实验一、词法分析实验专业:商业软件工程 姓名:程嘉明 学号:201506110185一、 实验目的通过编写并上机调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将其分解后各类单词的词法分析方... 查看详情
词法分析实验报告
实验一:词法分析专业:商业软件工程 姓名:陈锐 学号:201506110103一、 实验目的 编制一个词法分析程序。二、 实验内容和要求1.... 查看详情
词法分析实验报告
实验一、词法分析实验专业:商业软件工程 姓名: 陈 瑾学号:201506110101一、 实验目的 编制一个词法分析程序 二、   查看详情
词法分析实验报告
...行距。报告提交和打印输出时请去掉此框。 实验一、词法分析实验专业:商业软件工程 姓名:陈蔓嘉 学号:201506110245一、 实验目的 编制一个词法分析程序。... 查看详情
词法分析实验报告
实验一、词法分析实验商业软件工程 符致伟 201506110157一、 实验目的 编制一个词法分析程序二、 实验内容和要求 输入:源程序字符串 输出:二元... 查看详情
词法分析实验报告
...行距。报告提交和打印输出时请去掉此框。 实验一、词法分析实验 商软二班张智恒201506110172一、 实验目的 编制一个词法分析程序 二、   查看详情
词法分析实验报告
实验一、词法分析器实验专业:商软工程3班 姓名:林美全 学号:201506110220一、 实验目的设计,编制一个简单词法分析程序对输入字符串进行识别并做简单有效输出从而加深对词... 查看详情
实验一词法分析实验报告
实验一、词法分析实验专业:商业软件工程2班 姓名别博文 学号201606110175一、 实验目的 编制一个词法分析程序。 二、 实验内容和要求 对字符串表示的源程序... 查看详情
词法分析实验报告
实验一、词法分析实验专业商业软件3班 姓名林鑫杰学号201506110211一、 实验目的 编制一个词法分析程序。 二、 实验内容和要求输入:源程序字符串输出... 查看详情
实验报告1—’词法分析
实验一、词法分析实验专业:商业软件工程 姓名:钟菲菲 学号:201506110191一、 实验目的 编制一个词法分析程序 二、 实验内容和要求&nb... 查看详情
词法分析实验报告
实验一、词法分析程序实验专业:商业软件 姓名:杨链新 学号:201506110113一、 实验目的 通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解... 查看详情
词法分析程序实验报告
实验一词法分析实验商业软件工程2班 黄铭坤 201506110147一、 实验目的 编制一个词法分析程序。二、 实验内容和 查看详情
词法分析-实验报告
... 实验目的通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。二、 实验内... 查看详情
词法分析程序实验报告
实验一、词法分析实验专业:商业软件工程 姓名王芷玲 学号201606110246一、 实验目的 编制一个词法分析程序。 二、 实验内容和要求 对字符串表示的源程序... 查看详情