compiler-construction

    0熱度

    1回答

    digit [0-9] letter [A-Za-z] %{ int count; %} %% /* match identifier */ {letter}({letter}|{digit})* count++; %% int main(void) { yylex(); printf("number of identifiers = %d\n", count);

    2熱度

    1回答

    我正在使用F#語言,經過測試,我發現運行時花費超過90%的時間來比較平等。因爲這種語言太慢而無法使用。在檢測過程中,GetHashCode函數在列表中顯示出相當高的值作爲開銷的來源。發生什麼是在方法調用期間,我正在使用方法體(Expr)以及調用參數作爲字典中的鍵,並觸發對AST段的重複遍歷。 爲了提高性能,我想在AST增加記憶化的節點。 type Expr = | Add of Expr * E

    1熱度

    1回答

    我想 提取物起LLVM IR 他們每個人保存到不同的文件(或只是一個字符串對象) 從文件中讀取保存的功能(或只是一個字符串對象) 重新使用它的框架 不過,我目前的提取方法僅複製部分信息,我不能事後再建功能。我主要有紅外讀者抱怨的問題: error: use of undefined type named 'class.std::allocator' ... error: use of unde

    1熱度

    2回答

    我有一個結構: typedef struct mystruct_s { uint8_t bufferA[1024]; uint8_t bufferB[1024]; } mystruct; mystruct mystructA; mystruct mystructB; for(i = 0 ; i < 1024 ; i++) { mystructA.buff

    0熱度

    3回答

    關於Java,我非常習慣於將所有變量聲明爲私有的,並且生成公有的getter和setter來保持公共約定。 我覺得很奇怪,雖然:關於getter和setter與分配和返回所請求的值以外的任何功能,有沒有調用類似的方法沒有性能損失: String getValue() { return value; } 代替: classInstance.value; 編譯器在這裏做些什麼來幫助

    0熱度

    1回答

    我自配C++和JavaScript來MIPS大會 調用一個或多個功能時,包括遞歸什麼是保存在棧中的全局變量,最好的辦法語言開發編譯器? 在主函數中,全局變量和局部變量位於堆棧中,從$ fp開始,該部分運行良好。 但是,在調用另一個函數時,我使用的方法會保存返回地址$ ra並設置新的$ fp和$ sp。 這意味着我無法再訪問保存全局變量的舊$ fp地址。 如何繼續? 下圖描述了我正在使用的過程。從森

    1熱度

    2回答

    我正在爲分配語言構建一個小型編譯器。 考慮以下規則: var_block : | LPAREN var_decl+ RPAREN { var_scope := var_scope + 1 }; 是當var_block最初識別語義動作觸發,或者它觸發一次生產結束時達到(在這種情況下,RPAREN)?

    0熱度

    1回答

    我想了解創建編譯器的基本概念。我試圖寫一個非常基本的C編譯器,我遇到了一些問題。當我試圖打印變量yylineno發生語法錯誤的地方時,我得到一些行號錯誤。有誰知道爲什麼?我搜索了互聯網,但找不到明確的答案,謝謝。 comp.l文件: %{ #include <stdio.h> #include <stdlib.h> #include <string.h> extern int yyl

    0熱度

    1回答

    我是Linux新手。我被要求安裝玫瑰編譯器。我用 apt-get install libboost-all-dev 裏面裝boost1.58.0安裝的依賴性加速,但現在當我使用 apt-cache search rose 我無法理解這包是從提供的列表玫瑰編譯器。我從github存儲庫https://github.com/rose-compiler/rose下載玫瑰,但我不知道如何安裝它。

    1熱度

    1回答

    的ECMAScript The lexical grammar列出了詞法分析器以下令牌類(詞法分析器): InputElementDiv:: WhiteSpace LineTerminator Comment CommonToken DivPunctuator RightBracePunctuator InputElementRegEx