问题标签 [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.
haskell - LLVM 与 C-- ;对于 Haskell,LLVM 从根本上怎么可能不比 C 更好——?
c - C-- 与 LLVM 相比如何?
在了解了 LLVM 的工作原理之后,我对如何生成可移植的低级代码以及如何构建这个“东西”感到非常兴奋。
但是我今天发现了 C 的存在——它似乎与 LLVM 共享一些概念。
所以我正在寻找一些信息来帮助我理解这两个项目之间的主要区别......以及为什么两者都存在。
对我来说,LLVM 看起来有点像编译器基础设施的终极瑞士军刀,而 C 看起来远没有那么先进。
compiler-construction - 在 Windows XP 或 Windows 7 上编译 C--
如何在 Windows 7 或 Windows XP 上编译 C-- 代码?我想编译一些示例 C-- 代码,但该语言网站上唯一可用的编译器是用于 Linux 的。
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 处理的差异的评论。
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 无法解析的项目。
enums - Bison/Yacc 错误:字段类型不完整
我正在尝试制作一个 Cminus 编译器,并专门尝试为它创建一个 AST。
在我的 step3.fl 文件中
在我的 step3.y 文件中:
在我的 ast.h 文件中
当我尝试使用这些命令进行编译时:
它给了我以下错误:
我在整个互联网上都查看了,找不到可能的解决方法。谁能帮我解决这个问题?
提前致谢。
compiler-construction - Flex/Bison:“所述功能”的多重定义
由于我的代码有点太长,如果有人愿意帮助我并需要代码,我认为发布 github 链接会更容易:https ://github.com/Pigums/Cminus-Compiler
在 cygwin 中,我运行以下命令:
然后弹出以下错误:
不知道我做错了什么,尝试查找错误,但我认为我得到的答案不是我正在寻找的答案。这里有什么问题?
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