C++完美演繹 經(jīng)典算法 如 /* 頭文件:my_Include.h */ #include <stdio.h> /* 展開C語言的內(nèi)建函數(shù)指令 */ #define PI 3.1415926 /* 宏常量,在稍后章節(jié)再詳解 */ #define circle(radius) (PI*radius*radius) /* 宏函數(shù),圓的面積 */ /* 將比較數(shù)值大小的函數(shù)寫在自編include文件內(nèi) */ int show_big_or_small (int a,int b,int c) { int tmp if (a>b) { tmp = a a = b b = tmp } if (b>c) { tmp = b b = c c = tmp } if (a>b) { tmp = a a = b b = tmp } printf("由小至大排序之后的結(jié)果:%d %d %d\n", a, b, c) } 程序執(zhí)行結(jié)果: 由小至大排序之后的結(jié)果:1 2 3 可將內(nèi)建函數(shù)的include文件展開在自編的include文件中 圓圈的面積是=201.0619264
此為編譯原理實驗報告 學(xué)習(xí)消除文法左遞規(guī)算法,了解消除文法左遞規(guī)在語法分析中的作用 內(nèi)含 設(shè)計算法 目的 源碼 等等.... 算法:消除左遞歸算法為: (1)把文法G的所有非終結(jié)符按任一種順序排列成P1,P2,…Pn 按此順序執(zhí)行 (2)FOR i:=1 TO n DO BEGIN FOR j:=1 DO 把形如Pi→Pjγ的規(guī)則改寫成 Pi→δ1γ δ2γ … δkγ。其中Pj→δ1 δ2 … δk是關(guān)于Pj的所有規(guī)則; 消除關(guān)于Pi規(guī)則的直接左遞歸性 END (3)化簡由(2)所得的文法。即去除那些從開始符號出發(fā)永遠(yuǎn)無法到達(dá)的非終結(jié)符的 產(chǎn)生規(guī)則。