当前位置:首页 » 编程软件 » 编译原理大作业

编译原理大作业

发布时间: 2023-01-27 12:42:25

① 急求编译原理上机实习项目

我今天才测试完编译大作业,哈哈

② 人大出版社会计学基础第五版答案

答案

③ 编写一个程序,输入一个C语言程序,经词法分析处理,后输出单词记号序列。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _KEY_WORD_END "waiting for your expanding"
typedef struct
{
int typenum;
char * word;
} WORD;
char input[255];
char token[255]="";
int p_input;
int p_token;
char ch;

char* KEY_WORDS[]={"main","int","char","if","else","for","while",_KEY_WORD_END};
WORD* scaner();
void main()
{
int over=1;
WORD* oneword=new WORD;
printf("Enter Your words(end with $):");
scanf("%[^$]s",input);
p_input=0;
printf("Your words:\n%s\n",input);
while(over<1000&&over!=-1){

oneword=scaner();
if(oneword->typenum<1000)
printf("(%d,%s)",oneword->typenum,oneword->word);
over=oneword->typenum;
}
printf("\npress # to exit:");
scanf("%[^#]s",input);
}
char m_getch(){
ch=input[p_input];
p_input=p_input+1;
return (ch);
}
void getbc(){
while(ch==' '||ch==10){
ch=input[p_input];
p_input=p_input+1;
}
}
void concat(){
token[p_token]=ch;
p_token=p_token+1;
token[p_token]='\0';
}
int letter(){
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')return 1;
else return 0;
}
int digit(){
if(ch>='0'&&ch<='9')return 1;
else return 0;
}
int reserve(){
int i=0;
while(strcmp(KEY_WORDS[i],_KEY_WORD_END)){
if(!strcmp(KEY_WORDS[i],token)){
return i+1;
}
i=i+1;
}
return 10;
}
void retract(){
p_input=p_input-1;
}
char* dtb(){
return NULL;
}
WORD* scaner(){
WORD* myword=new WORD;
myword->typenum=10;
myword->word="";
p_token=0;
m_getch();
getbc();
if(letter()){
while(letter()||digit()){
concat();
m_getch();
}
retract();
myword->typenum=reserve();
myword->word=token;
return(myword);
}
else if(digit()){
while(digit()){
concat();
m_getch();
}
retract();
myword->typenum=20;
myword->word=token;
return(myword);
}
else switch(ch){
case '=': m_getch();
if (ch=='='){
myword->typenum=39;
myword->word="==";
return(myword);
}
retract();
myword->typenum=21;
myword->word="=";
return(myword);
break;
case '+': myword->typenum=22;
myword->word="+";
return(myword);
break;
case '-': myword->typenum=23;
myword->word="-";
return(myword);
break;
case '*': myword->typenum=24;
myword->word="*";
return(myword);
break;
case '/': myword->typenum=25;
myword->word="/";
return(myword);
break;
case '(': myword->typenum=26;
myword->word="(";
return(myword);
break;
case ')': myword->typenum=27;
myword->word=")";
return(myword);
break;
case '[': myword->typenum=28;
myword->word="[";
return(myword);
break;
case ']': myword->typenum=29;
myword->word="]";
return(myword);
break;
case '{': myword->typenum=30;
myword->word="{";
return(myword);
break;
case '}': myword->typenum=31;
myword->word="}";
return(myword);
break;
case ',': myword->typenum=32;
myword->word=",";
return(myword);
break;
case ':': myword->typenum=33;
myword->word=":";
return(myword);
break;
case ';': myword->typenum=34;
myword->word=";";
return(myword);
break;
case '>': m_getch();
if (ch=='='){
myword->typenum=37;
myword->word=">=";
return(myword);
}
retract();
myword->typenum=35;
myword->word=">";
return(myword);
break;
case '<': m_getch();
if (ch=='='){
myword->typenum=38;
myword->word="<=";
return(myword);
}
retract();
myword->typenum=36;
myword->word="<";
return(myword);
break;
case '!': m_getch();
if (ch=='='){
myword->typenum=40;
myword->word="!=";
return(myword);
}
retract();
myword->typenum=-1;
myword->word="ERROR";
return(myword);
break;
case '\0': myword->typenum=1000;
myword->word="OVER";
return(myword);
break;
default: myword->typenum=-1;
myword->word="ERROR";
return(myword);
}

}

④ 软件工程是学什么的

为了弄清计算机科学与技术还有软件工程的关系,首先来了解一下这两个专业的概念。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。计算机科学与技术是国家一级学科,下设信息安全、软件工程、计算机软件与理论、计算机系统结构、计算机应用技术、计算机技术等专业。

对于计算机科学与技术和软件工程两个本科专业都是计算机类下的专业,软件工程相对于计算机科学与技术则更侧重于软件开发。两个专业都可以报考计算机科学与技术一级学科下的研究生,通常计算机科学与技术专业的学生可以报考计算机系统结构、计算机软件理论和计算机应用技术这3个二级学科,而软件工程专业对于计算机系统结构的理解通常会比计算机科学与技术专业的学生弱一些。当然两个专业的学生都可以报考软件工程硕士这一专业硕士研究生。目前这两个专业的就业形势都非常好,其中以软件工程更为好一些,计算机科学与技术专业的学生考研的学生多于软件工程专业的学生。软件工程专业的学生本科就业,只要个人能力强,也会有很好的回报。

⑤ 学习这些计算机基础科目要学习什么数学

一、数学
数学是计算机专业的基础,学好数学是学好计算机专业的关键。高等数学课程主要学习微积分、空间解析几何和微分方程,一般高校通用的教材是同济大学编的《高等数学》,目前已经有了第五版,也可以使用自考教材——西安交通大学陆庆乐编的《高等数学》,可以买一些配套的辅导书和习题解答。
还有两门重要的数学课程是《线性代数》和《概率统计》。可以分别采用高等教育出版社出版、同济大学编写的《线性代数》和浙江大学编写的《概率统计》。注意:自学一定要多做习题,而且最好一门课有一本习题解答和辅导书。

除了上面数学基础课外,在计算机专业中举足轻重的就是《离散数学》,这门课要多花点力气来学。可以采用左孝凌教授等编的《离散数学》,上海科学技术文献出版社。也可以用北大、清华的教材,还可以参考左教授编的自学教材,经济科学出版社。

其他课程还有《复编函数》、《计算方法》等,有余力的朋友可以选学。

二、专业基础课

1.《程序设计》:学习内容一般为C和C++。C语言可以采用谭浩强教授的《C程序设计》,内容比较浅显,C++方面的书推荐钱能编写的《C++程序设计》,清华大学出版社。

2.《数据结构》:这门课程比较难,可以采用严蔚敏教授编写的《数据结构(C语言版)》,有配套习题册。好好做题,有时间多编几个大的程序。

3.《模拟电路》和《数字电路》:这是难度较高的两门课程,选用自考教材相对来说容易些,也可以参考清华大学出版社出版的相关教材。

三、专业课

1.《计算机组成原理》:推荐白中英主编的《计算机组成原理》(第三版),科学出版社;黄爱英主编的《计算机组成原理》(第三版),清华大学出版社。

2.《操作系统》:汤子赢编写的《计算机操作系统》(第三版),西安电子科技大学出版社。还可以参考高教司司长张尧学教授编写的教材,清华大学出版社。

3.《汇编语言》:可以用清华大学出版社出版的教材,也可以用自考教材。

4.《数据库原理》:人民大学教授王珊编的《数据库系统概论》(第三版),高等教育出版社,复旦大学施伯乐老师编写的教材也不错。

5.《编译原理》:国防科技大学陈火旺院士编写的教材十分不错,最新版本是2000年出的,国防工业出版社。

四、选修课

包括计算机网络与通讯、软件工程、图形学、人工智

能、系统结构、图形学等。此类课程的教材可选用全国高等教育自学考试指定教材,或参考各高校所采用的计算机专科和本科教材及配套辅导书。英文基础好的朋友可以用国外着名大学的影印版教材。

我也是学计算机专业的,其最核心的课程是数据结构,这门课程想学好不是很容易,要花大量时间去实践;还有一些重要课程比如:操作系统,C语言,计算机组成原理,汇编语言,数据库,计算机网络,人工智能这些都是专业基础课,还有一些建模课~~~

高中起点计算机本科:

1. 计算机科学与技术专业:C语言程序设计、计算机组成原理、数据结构、操作系统、

微机原理及汇编语言、计算机网络、计算机系统结构、软件工程、面向对象程序设计等。

2. 计算机软件专业:面向对象程序设计、计算机组成原理、操作系统、数据结构、计算

机网络、软件工程、编译原理、分布式系统、软件项目管理、Oracle数据库系统等。

3. 电子商务专业:管理学原理、电子商务、物流管理、计算机网络、供应链管理、电子商务平台及核心技术、国际商务管理、电子商务案例分析、商务网站建设等。

专科起点计算机本科:

1. 计算机科学与技术专业:计算机组成原理、数据结构、面向对象程序设计、操作系统、计算机系统结构、软件工程、数据库原理及应用、计算机网络、嵌入式系统与结构等。

2. 计算机软件专业:操作系统、数据结构、面向对象程序设计、计算机原理及系统结构、数据库系统、JAVA程序设计、计算机网络、软件工程、中间件技术、信息系统集成等。

3. 电子商务专业:管理学原理、数据库原理及应用、管理信息系统、金融学、电子商务平台及核心技术、物流管理、计算机网络、人力资源管理、供应链管理等。

开设的主要课程有:高等数学、线性代数、概率与数理统计、普通物理、 离散数学、计算机科学导论、C语言及程序设计、汇编语言、、数字电路与逻辑设计、计算机组成原理、算法与数据结构、操作系统原理、软件工程、计算机网络与通信、计算机专业英语、编译原理、数据库系统原理、面向对象编程技术(如:VB)、CAD技术、图形图象处理技术、软件开发新环境、接口与通讯、人工智能及应用、信息系统工程、企业会计、电子数据交换(EDI)、计算机维修技术、计算机网络工程、计算机系统维护技术、多媒体技术及其应用、算法分析与设计、面向对象技术、、计算机图形学、决策支持系统、网络应用软件设计、网络操作系统、大型数据库系统、单片机应用、计算方法、软件高级工资格认证、高级程

序员水平认证、马克思主义哲学原理、毛泽东思想概论、马列政治经济学原理、邓小平理论、思想道德修养、法律基础、大学语文、大学英语、体育等。

《计算机操作系统》课程简介

本课程是计算机专业的专业课程之一, 着重介绍计算机系统的一个重要系统软件——操作系统。本课程详细阐述了操作系统如何管理计算机系统中的软件和硬件资源、合理组织计算机系统的工作流程、提供用户与计算机系统之间的软件接口等机制。

授课内容包括操作系统的基本内容和概念、进程的概念以及通信和调度的方法、操作系统中各种资源的管理。最后通过实例——Linux操作系统,介绍Linux系统中的存储、设备、文件和进程的管理。

本课程的前导课程为:C语言程序设计。授课对象为:网络与通信专业本科生。

《应用数据库技术》课程简介

本课程为本科计算机与通信专业的专业课程。本课程详细阐述和研究了数据库系统尤其是关系数据库系统的基本概念和基本原理、介绍了数据库国际标准语言——SQL语言以及数据库设计的基本技术和方法,旨在指导数据库应用系统的开发和数据库技术的广泛应用。

授课内容包括:数据库的基本原理和数据的物理组织与存取方法;关系数据库系统的基本概念、关系代数理论、查询语言、规范化理论、查询优化;数据库保护技术;数据库设计的基本技术和方法以及几种现今流行的数据库应用。

本课程的前导课程为:C语言程序设计、数据结构。授课对象为:网络与通信专业本科生。

《数据结构》课程简介

数据结构是计算机专业课程的主要基础课程之一。它旨在使学生了解和掌握数据对象的特性,学会数据组织的方法和把现实世界中的问题在计算机内部的表示方法,以及培养基本的、良好的程序设计技能。本课程详细阐述和研究了各种数据元素之间存在的关系(数据的逻辑结构)、在计算机中如何表示这种关系的存储结构以及存储结构的描述方法、数据的不同的逻辑结构在各种存储结构上实现的基本运算:查找、插入和删除的算法,从时间和空间复杂度的角度综合比较各种存储结构的不同特点和适用场合。

本课程的基本授课内容包括线性表、栈和队列、串、数组和广义表、二叉树和树、图、动态存储管理、查找、排序和文件等以及实现这些数据组织的算法等。

热点内容
linuxsnmp安装 发布:2025-07-02 23:07:08 浏览:649
北理c语言答案 发布:2025-07-02 23:05:57 浏览:304
sql同比 发布:2025-07-02 23:03:39 浏览:835
一个服务器获取多个ip 发布:2025-07-02 23:02:43 浏览:786
三星电脑wifi怎么连接wifi密码 发布:2025-07-02 22:55:00 浏览:712
安卓开发选哪个版本的SDK 发布:2025-07-02 22:19:07 浏览:486
未上传图片 发布:2025-07-02 22:14:01 浏览:599
安卓qq直播怎么分享声音 发布:2025-07-02 22:13:21 浏览:250
安卓系统怎么刷机清除内存 发布:2025-07-02 22:08:19 浏览:697
安卓手机6位数密码有多少组 发布:2025-07-02 21:50:31 浏览:798