cost 19 ms
为什么这些语句给出词法错误(不是语法错误)?

在我的编译器设计课程中,我的教授告诉我,这些语句在被词法分析器分析时会产生错误。 在 cout 之后不写运算符: 在 int main() 中“返回”后不写任何状态码: 还有一些像这样的例子。 在我看来,这不是词法分析器的职责。 它只是在代码中查找标记,并且仅在存在无效标记时才生成错误。 ...

2022-01-24 13:11:21 0 22
如何避免 LLVM 优化器移动特定指令?

我知道移动指令可能会让性能更好。 但我想避免 LLVM 优化器为我的研究移动特定指令。 我现在使用的方法是在具体指令后面放一条 IO 指令(可能是打印输出指令)。 我想知道是否有任何“更清洁”的方法可以做到这一点。 也许 LLVM 元数据可以做到这一点? 例如(根据 LLVM IR) ...

2022-01-24 06:40:59 0 5
V8 是否监控优化机器代码的执行?

AFAIK,V8 中大致有两种代码对象。 一种是由 Ignition 解释的 javascript 字节码,另一种是由 Turbofan 编译和优化的机器码。 根据execution/frames.h ,V8 为每种代码对象构造不同的堆栈帧。 这意味着 V8 在执行之前应该知道callee的类型。 ...

2022-01-24 02:51:53 2 54
编译器设计:如果我在其 subProc 中调用 parentProc 会怎样

我的编译器课程中有一个小问题。 我的老师给了我这个代码片段 他问,如果SB语句是“CALL A”,程序会正常运行吗?为什么,如果不能,我们该如何解决? 这个问题在语义分析章节中,是我作业中的最后一个问题。 我认为可能不是因为它创建了一个变量声明的无限循环,导致 stackoverflow 错误。 ...

2022-01-23 14:11:46 0 10
"如何在编译器的类型系统中实现泛型"

因此,我目前正在开发一个编译器作为一个辅助项目,以了解它们如何在内部工作,并且一切顺利,直到我决定将泛型添加到语言的类型系统并且事情开始变得复杂。 由于我在编译器方面没有专业知识,所以现在我被困住了。 任何人都可以帮助我解释“实现细节”的理论以及如何将它们集成到编译器结构中,也许是一些例子左右。 ...

2022-01-23 09:18:30 0 8
如何避免 LLVM 优化器移动我不希望移动该指令的指令?

我知道移动指令可能会让性能更好。 但我想避免 LLVM 优化器为我的研究移动特定指令。 我现在使用的方法是在具体指令后面放一条 IO 指令(可能是打印输出指令)。 我想知道是否有任何“更清洁”的方法可以做到这一点。 也许 LLVM 元数据可以做到这一点? ...

2022-01-22 10:00:11 0 23
逻辑或(C 中的“||”)是左关联还是右关联?

如果传入的字符串是exp(1) || exp(3) || exp(4) exp(1) || exp(3) || exp(4) exp(1) || exp(3) || exp(4) ,因此有 2 个基于运算符 "||" 关联的语法树 在后面的分析中,“||” 运算符将被转换为upper exp ...

2022-01-21 09:32:28 0 16
设计语言功能以允许使用自定义分配器是否值得?

让程序员能够为他们的用例使用不同的分配策略是否有用? 即使没有像默认通用属性或通用别名之类的任何帮助程序,语言当然也可以管理,但是它使创建好的分配器 API 变得不那么方便和值得。 我从 Rust 中汲取了这个想法,其中Vec使用两个通用参数定义,其中第二个参数是分派分配方法的零大小结构。 不过,您 ...

2022-01-17 16:25:26 0 10
(C++) 'std::string fil' 的声明隐藏了一个参数

我正在尝试制作自己的编译器(是),而 c++(cc 的 cpp 版本)给了我一个错误消息:错误:'std::string fil' 的声明会影响参数。 代码: #include <iostream> #include <cstring> #include <strin ...

2022-01-14 18:19:34 1 48
我可以创建python的一个分支吗? 我该怎么做呢?

Python 在语法和逻辑方面通常是一种简单且易于理解的语言。 我正在考虑一个项目,在该项目中我需要一个稍微修改过的 Python 版本,几乎没有逻辑和语法调整。 我有分支 Python 并添加更改、保存并完成的想法。 因此我有两个问题:我可以分支 Python 来添加修改吗? 我该怎么做呢? ...

2022-01-14 07:56:38 1 30
在流程执行过程中,源代码程序的代码段和数据段是如何真正处理和分离的?

考虑下图显示的 RAM,其中存储了一个非常简单的程序,分为指令块和数据块。 该示例与 Charles Petzold 的“代码”一书中的示例非常相似: 如您所见,有一个指令块和一个数据块。 在书中,这个 RAM 被放置在一台基本的计算机中,您必须在其中使用一些开关手动输入数据和指令(就像旧的 ...

2022-01-12 14:57:15 1 45
在 C89 编译器中实现三元组

为了学习,我正在尝试基于C89 标准草案在 C89 中编写一个简单的 C89 --> x86_64 编译器。 到目前为止,我正在实施翻译阶段 1 。 我的理解是,这包括 将代码读入字符串。 替换三字母序列。 我试图用一个程序来实现这一点(请原谅我犯的任何风格错误): 现在,直观 ...

2022-01-12 09:14:33 2 54
如何为界面中的每个属性生成comnent节点?

当我使用 typescript 编译器 api 生成InterfaceDeclaration节点时,我想为每个属性生成注释,我找到了使用ts.addSyntheticLeadingComment解决这个问题的方法,但是写很多代码很麻烦,所以有有什么简单的方法可以做到这一点? const inte ...

2022-01-12 03:33:03 0 6
C# 编译器:检测返回路径时的结构与逻辑

当我遇到这个有趣的场景时,我正在编写一个简单的实用程序函数(参见下面的代码):我没有过多关注我的代码结构,而是编写了我认为可以接受的函数,以确保有效的返回值基于其中的逻辑。 当编译器抱怨“并非所有代码路径都返回值”时,我并不感到惊讶,而事实上,从技术上讲,所有代码路径确实都有正确的返回值。 虽然 m ...

2022-01-10 14:43:42 0 26

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM