compiler-construction

    1热度

    1回答

    我是OCaml的新手,但我试图找出来自Node的相当于__filename,__dirname。也就是说,我需要建立一个路径相对到包含相关代码的文件。 仅供参考,我通过Ghuloum说的IACC工作:http://ell.io/tt$ocameel 我建立我的第一个编译器,我有一个完全简单化的“运行”文件(在C - temporarily)毗邻编译器的源代码。我需要能够将路径传递给此文件,作为参数

    0热度

    1回答

    我对静态链接有一个很基本的疑问。 假设我们有2个对象码A和B.目标代码B包含函数B(),其由A.称为 在第100位置函数B在目标代码甲现在假设()被调用。 现在将函数B()直接放置在位置100上,还是将它放置在最终对象代码文件中的某个其他位置,并在第2遍连接期间解析(如函数B()将放置在位置150在最后的对象代码和函数调用B()将被解析为150)?

    1热度

    1回答

    目前,我正在为Python中一小部分Python编程编译器。我已经设法构建了一个语法树,但是我在编码树遍历(这对于生成代码很重要)中遇到了一些问题。所以我先随你展示我的数据结构: class AbstractSyntaxTree(object): def __init__(self, startSymbol): self.root = Node(startSymbol, va

    1热度

    2回答

    这里冲突的例子是C编译器的一部分: Exp : INTNUMBER { $$ = $1; } | lvalue { $$ = $1; } | REALNUMBER { $$ = $1; } | CHARVALUE { $$ = $1; } | TRUE { $$ = $1; }

    1热度

    1回答

    歧义语法定义为, “歧义语法是一种上下文无关文法,其中存在一个可以具有多于一个最左派生或分析树的字符串。 我的疑问是, 1)如果语法有不止一个最右边的衍生品,这是否使语法歧义? 2)如果语法有多个Right Most Derivatives,那么这是否意味着它会有多个Left Most Derivative? 并且拥有多个Right大部分衍生产品对LL(1),LR(0)解析器,LR(1)解析器等的

    0热度

    1回答

    我想知道是否有任何众所周知的技术来为应用程序声明代码流。在我的情况下,我想用我自己的字节码来执行我为项目写的一个虚拟磁盘。我非常有兴趣试图消除字节码的流动,以了解这种技术。我通过inet进行了搜索,很少或根本没有关于它的信息。 干杯。

    1热度

    1回答

    Context free grammar定义的四个组成部分开始symbol`: 一组非终端(V)的... 一组令牌,称为终端码元(Σ)的... 一组生产(P)的... 其中一个非终端被指定为开始符号(S);从 开始生产。 The EcmaScript specification没有提到开始符号,而是提到了目标符号: 从由单一的杰出 非终结的句子开始,被称为目标符号,给定的上下文无关语法 指定语言,

    20热度

    1回答

    我读过Dan Piponi在The Three Projections of Doctor Futamura上的优秀博客文章。在文章结尾处,他有一个附录,其中有Haskell中Futamura预测的证据。但是,我发现他的文章缺乏有关涉及语言的信息。为了使Futamura预测能够工作,专业人员必须具备哪些源语言,目标语言和对象语言?例如,如果我在Haskell中编写了一个Haskell到LLVM专家

    1热度

    1回答

    我读this article有关将**运营商的规范的EcmaScript定义右键关联在这里笔者状态如下: 幂必须乘前进行评估,更 重要BNF语法必须写成运算符的 右结合性明确定义(不同于 乘法表达式,它是左关联的)。 而且他在语法定义了新的非终端ExponentiationExpression符号为: ExponentiationExpression : UnaryExpression[

    -1热度

    2回答

    有没有在Python一个很好的办法做到:获取匹配件返还元组: 检查字符串一组正则表达式 如果是的匹配。 所以基本上我想要一个简单的方法来进入简单的解析器/扫描器语法,并简单地提取一定的结构都匹配(例如,元组) 因此,假设我们在一个字符串国家代码编码,城市名称和索引。我们想提取这个: input = "123-NEWYORK-[2]" grammar = "<country,[0-9]+>-<ci