问题标签 [c-minus-minus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8615 浏览

haskell - LLVM 与 C-- ;对于 Haskell,LLVM 从根本上怎么可能不比 C 更好——?

我一直对LLVM低到可以对任何系统建模感到兴奋,并认为 Apple 正在采用它。但话又说回来,Apple 并没有特别支持Haskell

而且,有些人认为 Haskell 使用C--会更好:

LLVM'ers 没有解决零开销垃圾收集的问题并不令人惊讶。在不知道数据模型的情况下解决这个问题是计算机科学中的一个悬而未决的问题。

-- LHC 不会使用 LLVM。

0 投票
1 回答
9903 浏览

c - C-- 与 LLVM 相比如何?

在了解了 LLVM 的工作原理之后,我对如何生成可移植的低级代码以及如何构建这个“东西”感到非常兴奋。

但是我今天发现了 C 的存在——它似乎与 LLVM 共享一些概念。

所以我正在寻找一些信息来帮助我理解这两个项目之间的主要区别......以及为什么两者都存在。

对我来说,LLVM 看起来有点像编译器基础设施的终极瑞士军刀,而 C 看起来远没有那么先进。

0 投票
1 回答
1439 浏览

compiler-construction - 在 Windows XP 或 Windows 7 上编译 C--

如何在 Windows 7 或 Windows XP 上编译 C-- 代码?我想编译一些示例 C-- 代码,但该语言网站上唯一可用的编译器是用于 Linux 的。

0 投票
2 回答
387 浏览

haskell - 如何扩展 GHC 的线程状态对象

我想向线程状态对象 (TSO) 添加两个额外的StgWord32类型字段。根据我在 GHC-Wiki 上找到的信息和查看源代码,我扩展了结构/includes/rts/storage/TSO.h并更改了创建不同偏移量的程序(创建DerivedConstants.h)。编译器、rts 和一个简单的应用程序重新编译,但在执行结束时(in hs_exit_)垃圾收集器抱怨:

我想它必须与cmm和/或 STG 实现细节有关(由于结构在级别上不可见,因此生成了偏移量cmm,如果我错了,请纠正我)。字段的顺序是否重要?我错过了应该更改的文件吗?

我在 64 位架构上使用编译器和 RTS 的调试版本以及相当过时的ghc 6.12.3 。也欢迎任何对相关文档的提示和关于 ghc 6 和 7 之间关于 TSO 处理的差异的评论。

0 投票
0 回答
430 浏览

haskell - cminusminus x86_64 编译器

我正在做一个涉及对 Haskell 进行程序分析的项目。我认为在 Cminusminus (C--) 级别上实施程序分析是个好主意。我知道,使用 ghc,Haskell 首先编译为核心,然后编译为 stg,然后编译为 cmm。然后将生成的 cmm 转换为可执行文件。

为了正确理解和使用 C--,我需要一个 cminusminus (C--) 编译器。但是,根据我的信息,编译成 C-- 的编译器早已停产,并且不能编译成 x86_64(例如 QuickC--)。我错过了什么吗?是否有编译为 x64 的 C-- 编译器?

顺便说一句,在 2008 年 9 月之后是否有关于 Cminusminus 的进一步工作?有 Cminusminus 社区吗?

编辑1:根据this GHC可以编译非常基本的cmm(cmm是ghc的c--风格,与c--有一些区别,但是根据我项目的需要,我应该更关心cmm)文件。此外,-ddump-cmm 包含许多 ghc 无法解析的项目。

0 投票
2 回答
698 浏览

enums - Bison/Yacc 错误:字段类型不完整

我正在尝试制作一个 Cminus 编译器,并专门尝试为它创建一个 AST。

在我的 step3.fl 文件中

在我的 step3.y 文件中:

在我的 ast.h 文件中

当我尝试使用这些命令进行编译时:

它给了我以下错误:

我在整个互联网上都查看了,找不到可能的解决方法。谁能帮我解决这个问题?

提前致谢。

0 投票
3 回答
1618 浏览

compiler-construction - Flex/Bison:“所述功能”的多重定义

由于我的代码有点太长,如果有人愿意帮助我并需要代码,我认为发布 github 链接会更容易:https ://github.com/Pigums/Cminus-Compiler

在 cygwin 中,我运行以下命令:

然后弹出以下错误:

不知道我做错了什么,尝试查找错误,但我认为我得到的答案不是我正在寻找的答案。这里有什么问题?

0 投票
0 回答
286 浏览

c-minus-minus - 将数组发送到 BACI 中的函数 (C--)

我想将一个数组发送到一个函数,然后打印所有元素。我有一个错误。

.LST 文件是:

BACI 系统:C-- 到 PCODE 编译器,2005 年 10 月 27 日 16:59 源文件:1.cm Fri Nov 01 03:16:20 2019 line pc 1 0
2 0
3 0
4 0 void Print(int a[]) Error '[' 附近,文件 1.cm 的第 4 行:** 语法错误 由于 1 个错误,PCODE 文件将不会执行

Baci 参考是:http: //inside.mines.edu/~tcamp/baci/baci_index.html

C:\badosxe> bacc 1.cm Error near '[', line 4 of file 1.cm: ** syntax error>>由于1个错误,PCODE文件将不会执行Pcode并且表存储在1.pco编译列表中存储在 1.lst