武漢大學編譯原理第一次作業

2021-07-05 07:40:06 字數 1333 閱讀 3049

/*

* 計科3 halfopen

* 第一次作業,老師不要求做思考題

* 問題二:xl語言分析器的結合次序和優先順序, 用retsuff.exe對輸入表示式: "1 + 2 + 3;",

先進行 1 + 2 的運算, 還是先進行 2 + 3 的運算.

輸入"1+2*3;",先算"2*3",還是先算"1+2".

答: please input an infix expression and ending with ";"

1+2*3;

t0 = 1

t1 = 2

t2 = 3

t1 *= t2

t0 += t1

the affix expression is + 1 * 2 3

輸出結果如上,所以是先算2*3

**//* retinf.c axl分析器 */

#include #include #include #include "lex.h"

char err_id = "error";

char * midexp;

extern char * yytext;

struct yylval ;

typedef struct yylval yylval;

yylval *factor ( void );

yylval *term ( void );

yylval *expression ( void );

char *newname( void ); /* 在name.c中定義 */

char *getvar(void);

extern void freename( char *name );

void statements ( void )

else

fprintf( stderr, "%d: inserting missing semicolon\n", yylineno );

}}/**test

*/void print_var(yylval *t)

yylval *expression(void)

else if(match(num_or_id))

else

advance();

return temp;

}yylval *term(void)

elseelse if(temp2->last_op!=1)else

}else

} return temp;

}yylval* factor(void)

編譯原理第一次作業

一.編譯原理是什麼?原理我們的計算機系的一門課程,它在我們的科學發展中起到了很重要的作用,也可以說是計算機系統的核心部分之一。它運用編譯器 編譯系統將我們的語言和計算機的語言進行轉換等。內容包括語言和文法 詞法分析 語法分析 語法制導翻譯 中間 生成 儲存管理 優化和目標 生成。二.學習編譯原理有什...

第一次作業 了解編譯原理

1.簡述編譯程式與翻譯程式 匯程式設計序的聯絡與區別。編譯程式是把高階語言程式編譯成低階語言程式,一種由高階語言變為低階語言的程式 而匯程式設計序是乙個翻譯程式,他把組合語言翻譯成機器語言程式。2.編譯過程包括哪幾個主要階段及每個階段的主要功能。3.簡述解釋程式與編譯程式的區別。編譯程式是一種語言處...

第一次作業 編譯原理概述

1 簡述編譯程式與翻譯程式 匯程式設計序的聯絡與區別。編譯程式就是把高階語言變成計算機可以識別的2進製語言,是對整個寫好的程式進行翻譯。最終形成目標檔案。解釋程式,是一句一句翻譯的,最終不形成目標檔案。彙編就是把組合語言 翻譯成目標機器指令的過程。2 編譯過程包括哪幾個主要階段及每個階段的主要功能。...