當前位置:首頁 » 編程軟體 » 編譯原理大作業

編譯原理大作業

發布時間: 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語言程序設計、數據結構。授課對象為:網路與通信專業本科生。

《數據結構》課程簡介

數據結構是計算機專業課程的主要基礎課程之一。它旨在使學生了解和掌握數據對象的特性,學會數據組織的方法和把現實世界中的問題在計算機內部的表示方法,以及培養基本的、良好的程序設計技能。本課程詳細闡述和研究了各種數據元素之間存在的關系(數據的邏輯結構)、在計算機中如何表示這種關系的存儲結構以及存儲結構的描述方法、數據的不同的邏輯結構在各種存儲結構上實現的基本運算:查找、插入和刪除的演算法,從時間和空間復雜度的角度綜合比較各種存儲結構的不同特點和適用場合。

本課程的基本授課內容包括線性表、棧和隊列、串、數組和廣義表、二叉樹和樹、圖、動態存儲管理、查找、排序和文件等以及實現這些數據組織的演算法等。

熱點內容
有哪些低配置游戲像王者榮耀 發布:2024-05-03 22:27:11 瀏覽:243
gp資料庫庫 發布:2024-05-03 22:12:43 瀏覽:873
壓縮點點 發布:2024-05-03 22:12:33 瀏覽:380
有哪些編程比賽 發布:2024-05-03 22:03:45 瀏覽:263
怎麼根據配置調整游戲解析度 發布:2024-05-03 22:02:50 瀏覽:77
小鳥醬265g資源密碼多少啊 發布:2024-05-03 21:32:08 瀏覽:653
三國戰紀游戲華為帳號密碼是多少 發布:2024-05-03 21:22:54 瀏覽:950
變頻壓縮機啟動 發布:2024-05-03 21:17:06 瀏覽:436
建立雲存儲 發布:2024-05-03 21:04:03 瀏覽:76
socket編程php 發布:2024-05-03 20:12:50 瀏覽:208