compiler-construction

    1热度

    2回答

    我正在构建一个小脚本,使用TypeScript Compiler API扫描所有具有给定类型成员的接口,其中的源可找到here。我检查这些班级的成员,看看他们是如何相互关联的。 我的问题是:我怎么知道何时可以将一个类型赋值给另一个类型?我搜索TypeChecker的方法,但我找不到一个。有没有人有任何机会有任何指针?下面是应该能够得到分析的一些例子: export enum ASTKind {

    1热度

    1回答

    我正在编写一个编译器来从一个随机的简单文本生成一个JSON代码,但我不明白这些类型的编译器。我可以将其视为源到源编译器吗? 源 - 源编译器是一个编译器,需要写入一个编程语言作为其输入的程序的源代码,并且产生的等效源代码中另一种编程语言。 (问题是输入为文本,而不是写在一个编程语言编写的源代码) 还是有另一种类型,这些类型的编译器? 并感谢您

    0热度

    1回答

    将三地址代码或抽象语法树转换为静态单分配形式的算法最简单,并且给出了一个稳定的结果? 在此先感谢。

    0热度

    1回答

    我正在构建一个自定义的小型解释脚本语言,除了范围界定之外,一切正常。 对于实际执行我使用的是访问者模式: 我修改通过变量表的模式: public void visit(ProgrammTree proTree){ VariableTable vt = new VariableTable(); foreach (var t in proTree.getChildren())

    0热度

    1回答

    什么是OOL(行外)代码?我在ION编译器中找到它,但无法理解正在发生的事情。 bool CodeGeneratorShared::generateOutOfLineCode() { for (size_t i = 0; i < outOfLineCode_.length(); i++) { // Add native => bytecode mapping entries f

    0热度

    1回答

    当编译器使用SSA形式表示代码时,对局部变量的更新成为新变量。但是,当变量处于封闭范围内时,这并不总是有效的,例如, (使用JavaScript语法说明,可以在许多语言中出现的情况): function f() { var x = 1; function g() { x++; } ... } 什么是代表这个通常的方法是什么?

    2热度

    2回答

    编辑:对于那些有兴趣/谁想看到我在做什么,我的应用程序的源代码可以找到here。 我正在用C#构建一个代码编辑器应用程序,它提供语法高亮显示。我目前使用ANTLR for C#来解析代码以突出显示它。到目前为止,当用户最初打开文件时,我的应用程序可以非常快速地突出显示代码。不过,当用户开始编辑文本时,我没有编写任何代码来重新突出显示文本。 我希望编辑器能够很好地处理大文件,所以我不希望每次用户输入

    3热度

    2回答

    Scala的定义方法的时候,我发现这个 def method1: Int => Int = (j: Int) => j // works def method2: Int => Int = j => j // works def method3: Int => Int = j: Int => j // error def method4: Int => Int = {j: Int => j}

    0热度

    3回答

    我研究了在不同处理器体系结构上执行Java的地方。如果它使用编译器,那么将会有一些(机器码)指令,这些指令将特定于处理器体系结构,并且Java将取决于平台。 但是由于java使用解释器,它是独立于处理器架构的。 我的问题是如何在Java应用JIT(准时)编译器?处理器的架构不会影响它吗?如果它不影响它,那为什么不影响它呢?

    0热度

    1回答

    我对文件中显示的堆栈大小,缩略图和最大深度有点困惑。这是由ARM链接器生成的。 1.我在哪里可以找到这些信息,这几个字究竟意味着什么? 例如: f_open (Thumb, 450 bytes, Stack size 608 bytes, ff.o(i.f_open)) [Stack] Max Depth = 840 Call Chain = f_open ⇒ dir_register ⇒