compiler-construction

    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

    -1热度

    1回答

    我需要此语法的算术表达式帮助。 我想通知用户一些错误消息,如果他试图除以零,或者他使用一些VHDL keywords(目标语言)作为变量名称。 但我是新来的ANTLR,我不能弄清楚如何延长这个语法: grammar arithmetic; @header { package generated; } stat : Left = VARIABLE Op = ASSIGM