201506110248--编译原理

#include<stdio.h>
#define N 100
int a[100];
int keyWord(char key[100],int num);
/*char guanJianZi[]={"if","int","include","cout","float","else","main","return"};
int guanJianZiNum=8;//记录上面的数组里面有几个关键字方便下面的程序使用
//{"this","include","int","float","if","else","return"};  

char suanFu[]={‘+‘,‘-‘,‘*‘,‘/‘,‘=‘};
int suanFuNum=5;//记录上面的数组里面有几个算符方便下面的程序使用  

char jieFu[]={ ‘;‘ , ‘{‘ , ‘}‘ , ‘[‘ , ‘]‘ };
int jieFuNum=5;//记录上面的数组里面有几个界符方便下面的程序使用  

//记录是不是关键字如果为1就是关键字如果为0的话就不是关键字方便于关键字和标识符做区分
int flag=0;  

void using namepace std();*/
main()
{
    //int i,n;
    printf(".各种单词符号对应的种别码\n:");
    printf("单词符号\t种别码\t\t单词符号\t种别码\t\t\t");
    printf("          begin           1                :              17         \n");
    printf("  if              2                :=             18         \n");
    printf("  then            3                <              20         \n");
    printf("  while           4                <=             21         \n");
    printf("  do              5                <>             22         \n");
    printf("  end             6                >              23         \n");
    printf("  l(l|d)          10               >=             24         \n");
    printf("  dd*             11               =              25         \n");
    printf("  +               13               ;              26         \n");
    printf("  -               14               (              27         \n");
    printf("  *               15               )              28         \n");
    printf("  /               16               #               0         \n\n\n\n");

    printf("请输入一句英文句子\n:");
    printf("for example:Hello!YY.0\n");
    /*do{
        int class;
        int w,c1,c;//w系单词符号,c1系种别码
        printf("请输入你的选择(class)");
        scanf("%d",&c);
        switch(c){
            //for(c1=1;c1<30;c1++)

        case 1:
            if(c1=‘1‘)
                printf("(1,begin)");
            break;
        case 2:
            if(c1=‘2‘)
                printf("(2,if)");
                break;

        }

    }while(0);*/

}
int keyWord(char key[100],int num)
{
    int flag=0;
    char key[100]={"begin","if","then","while","do","end"};
    //String num[22]={‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘};
    for(int i1=0;i1<=key.length;i1++)
    {

    }
}
时间: 2024-10-12 12:50:30

201506110248--编译原理的相关文章

编译原理123

1.编译原理就是什么? 个人理解,编译就是像翻译一样,将一种语言翻译成另一种语言,编译就是将高级语言或汇编语言翻译成电脑能识别的二进制机器语言,编译原理就是讲解这 个编译的过程.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有 利于提高软件人员的素质和能力. 2.学习编译原理有什么好处? 学习编译原

编译原理的理解

编译原理内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成.大一点的应用可以做到一定的技术先进性,从而让你在本行业站稳脚跟:分析和分解用户输入的SQL语句,理解是否有害和是否有SQL注入等.如果不学,对于不是不是本行业的人来说就没损失,如果是本行业的专业人士,不学只会令自己的编译理解更慢.

编译原理

1.编译原理是什么? (1)就是对程序语言进行翻译: (2)介绍编译程序构造的原理和基本方法: (3)从本质上讲是一个算法问题: 2.学习编译原理有什么好处? (1)接触一些新的算法,如,贪心算法,图论算法等: (2)学习一些新的思想,如,有限状态机,递归下降等: (3)多了一项技能: 3.不学有什么损失? (1)将来出社会可能比较难混: (2)不学好这门课程期末可能不及格: (3)有学不一定有用,不学肯定没用: 4.如何学习编译原理? (1)上课跟上老师的步伐,课前预习,课后复习: (2)多从

编译原理第二次作业 编译器任务总结

在学习了编译原理后我开始明白编译的工作原理了,也更了解编译语言的结构.明白了编译器的编写中需要注意的各项问题,更了解了编译器的编译过程为我之后的编程提供了一些必不可少的经验,还是我的改错能力有所提高.因为写编译器使我在编程发生错误后能及时了解程序在编译过程中的原理是什么,这样我就能知道我的程序是何处的问题. 而且在学习编译原理的时候,学到了一些比较难理解的东西,通过实践不断地消化书本上的理论,最终就会有一个雏形出现.而且在编写的过程时候有一些不知道如何解决的问题时,我就会和组员讨论以得出一个可行

编译原理简单介绍

编译原理学习导论 大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容.编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂.我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了.在20世纪50年代,编译器的编写一直被认为是十分困难的事情,第

编译原理基础概念介绍

关于编译原理 语法树 句柄 简单短语 短语 的区分,通过两个例子来理解概念以及方法: 例子1——语法树 S -> a|b|(T)  T -> TdS|S Vt={a,b,d,(,)}.Vn={S,T},S是开始符 句型(Sd(T)db)是S的一个推导,其中___是句柄;____是最左素短语:____是该句型的直接短语,_____是短语.     素短语的概念:它是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语的短语.而一个算

编译原理之扫描器

https://github.com/zzusunjs/Scanner 编译原理实验课要求自己实现一个简单一些的扫描器. 我是用c++实现的.具体的原理的话,完全是按照书上的算法实现的,也没有什么特别难懂的地方,不过想要写的比较完备的话还是有一定难度的. Go ->  preProcess() -> init() -> delete-space() ->  Scanner() -> 首字符 ->.... 代码大致的结构就是上面的那个样子.

python实现算术表达式的词法语法语义分析(编译原理应用)

本学期编译原理的一个大作业,我的选题是算术表达式的词法语法语义分析,当时由于学得比较渣,只用了递归下降的方法进行了分析. 首先,用户输入算术表达式,其中算术表达式可以包含基本运算符,括号,数字,以及用户自定义变量. 词法分析,检查单词变量是否正确:语法分析,检查算术表达式语法是否正确并输出生成语法树:语义分析,输出四元表达式. 最终效果图: 例如输入: 词法分析结果: 语法分析结果: 语义分析结果: 算术表达式的组成语法如下: 无符号整数 = 〈数字〉{〈数字〉} 〈标识符〉= 〈字母〉{〈字母

编译原理的实验报告一

实验一 词法分析程序实验 专业 商软2班   姓名 黄仲浩  学号 201506110166 一. 实验目的      编制一个词法分析程序. 二. 实验内容和要求 输入:源程序字符串 输出:二元组(种别,单词符号本身). 三. 实验方法.步骤及结果测试 源程序名:bianyiyuanli.c 可执行程序名:bianyiyuanli.exe 原理分析及流程图 通过一些for循环和while循环进行一个个的翻译. 源程序如下: #include<stdio.h> #include<stri

软考(编译原理)

软件设计师考试编译原理部分,笔记记录.分享.2016-09-14