91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.96MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-18
  • 語言: Java
  • 標簽: Oberon-0??

資源簡介

編譯原理實驗三 一、討論Oberon-0 語言的特點 1、保留字與關鍵字的概念區分 保留字只要是用在程序語言的層次架構用途上,比如說IF,THEN,ELSIF,用在程序 的循環、分支、判斷條件、程序塊等組織上,它是程序語言中預定義的,具某些特殊意 義規范的單詞。保留字側重于強調不能被用戶作為定義的名字。 關鍵字是一個只被用在某一部分的程序編程中,關鍵字在程序語言中同樣有特殊的 意義特征。多用于類型定義,如在Oberon中,integer 便是用來定義變量類型的關鍵 字。還有其他的功能如作為程序語言中的某個特定函數的名稱,如 write,read等(在 Oberon中). 不同的語言的關鍵字和保留字的概念區分是不一樣的。例如在C,JAVA中, if,else, while 這些都是關鍵字的范圍,而在Oberon 中是保留字的范圍。在C 語言風格的程 序語言中,是將程序控制塊的那些保留字也一并歸為關鍵字的。(這些關鍵字不可以作 為變量,函數的名稱,也就是不可以作為程序員使用的標示符)。 2、Oberon與C、Java的差別 a) 在每一一個主要的函數過程procedure 中,Oberon有begin 和end 來標志,而 在C 和java中一般是用花括號來標志。 b) 在定義變量時,Oberon 是在分號之后,也就是最后在給出具體是什么類型的,而 在C、Java中一般是在變量的前面就給出了類型,只是 Oberon會先用var說明 這是一個變量。 c) Oberon中的可用到數據結構主要有數組,類似C 中的結構體,類型選擇比較少。 3 二、文法二義性討論 該文法沒有二義性。在其他的語言中出現的二義性類型中,比如表達式的parsing tree (存在兩顆或以上的parsing trees)的二義性,需要用算符優先關系來確定的和if-else 的 匹配問題導致的二義性問題,都在該文法中的EBNF定義中被消除掉了。 1、對于表達式的二義性處理: simple_expression = ["+" | "-"] term {("+" | "-" | "OR") term} ; term = factor {("*" | "DIV" | "MOD" | "&") factor} ; 從中,可以看出*和 DIV、MOD 這些一定在+-之前就進行運算了。通過將表達式的將 +-和*DIV、MOD 等用不同層次的表達式進行定義,消除了這一二義性。 2、對于if-else匹配出現二義性的處理:

資源截圖

代碼片段和文件信息

public?class?Lexical
{
??/*?terminals?*/
??public?static?final?int?Operator?=?1;
??public?static?final?int?Keyword?=?2; //關鍵字
??public?static?final?int?ReservedWord?=?3;
??public?static?final?int?Identifier?=?4;
??public?static?final?int?Seperator?=?5;
??public?static?final?int?Number?=?6;
??public?static?final?int?Comment?=?7;
??public?static?final?int?WhiteSpace?=?8;

??public?static?final?int?EOF?=?0;
??
??public?static?final?int?legalSymbol?=?-1;
??public?static?final?int?IllegalInteger?=?-2; //no?blank?before?identifier
??public?static?final?int?IllegalItegerRange?=?-3; //more?than?12
??public?static?final?int?IllegalOctal?=?-4;
??public?static?final?int?IllegalIdentifierLength?=?-5;
??public?static?final?int?MismatchedComment?=?-6; //未匹配 ??
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-27?00:24??實驗三\
?????目錄???????????0??2018-06-27?20:17??實驗三\ex1\
?????文件??????235852??2018-06-27?20:16??實驗三\ex1\Oberon-0.pdf
?????文件??????????80??2018-06-27?20:17??實驗三\ex1\readme.txt
?????目錄???????????0??2018-06-27?22:22??實驗三\ex1\testcases\
?????文件?????????352??2018-06-26?23:57??實驗三\ex1\testcases\factorial.obr
?????目錄???????????0??2018-06-27?21:46??實驗三\ex2\
?????目錄???????????0??2018-06-27?00:24??實驗三\ex2\bin\
?????目錄???????????0??2018-06-27?00:24??實驗三\ex2\bin\exceptions\
?????文件?????????669??2018-06-27?21:34??實驗三\ex2\bin\exceptions\IllegalIdentifierLengthException.class
?????文件?????????633??2018-06-27?21:34??實驗三\ex2\bin\exceptions\IllegalIntegerException.class
?????文件?????????653??2018-06-27?21:34??實驗三\ex2\bin\exceptions\IllegalIntegerRangeException.class
?????文件?????????625??2018-06-27?21:34??實驗三\ex2\bin\exceptions\IllegalOctalException.class
?????文件?????????629??2018-06-27?21:34??實驗三\ex2\bin\exceptions\IllegalSymbolException.class
?????文件?????????604??2018-06-27?21:34??實驗三\ex2\bin\exceptions\LexicalException.class
?????文件?????????645??2018-06-27?21:34??實驗三\ex2\bin\exceptions\MismatchedCommentException.class
?????文件?????????374??2018-06-27?21:34??實驗三\ex2\bin\exceptions\MissingLeftParenthesisException.class
?????文件?????????349??2018-06-27?21:34??實驗三\ex2\bin\exceptions\MissingOperandException.class
?????文件?????????352??2018-06-27?21:34??實驗三\ex2\bin\exceptions\MissingOperatorException.class
?????文件?????????377??2018-06-27?21:34??實驗三\ex2\bin\exceptions\MissingRightParenthesisException.class
?????文件?????????597??2018-06-27?21:34??實驗三\ex2\bin\exceptions\OberonException.class
?????文件?????????773??2018-06-27?21:34??實驗三\ex2\bin\exceptions\ParameterMismatchedException.class
?????文件?????????601??2018-06-27?21:34??實驗三\ex2\bin\exceptions\SemanticException.class
?????文件?????????612??2018-06-27?21:34??實驗三\ex2\bin\exceptions\SyntacticException.class
?????文件?????????353??2018-06-27?21:34??實驗三\ex2\bin\exceptions\TypeMismatchedException.class
?????文件?????????735??2018-06-27?21:34??實驗三\ex2\bin\Lexical.class
?????文件????????1745??2018-06-27?21:34??實驗三\ex2\bin\Main.class
?????文件???????13133??2018-06-27?21:34??實驗三\ex2\bin\OberonScanner.class
?????文件?????????190??2018-06-26?19:42??實驗三\ex2\build.bat
?????文件??????????70??2018-06-26?19:39??實驗三\ex2\gen.bat
?????目錄???????????0??2018-06-27?00:24??實驗三\ex2\jflex\
............此處省略144個文件信息

評論

共有 條評論

相關資源