我是一名C++程序员,考虑将D用于我想要玩的个人项目.我想知道是否有办法完全禁用垃圾收集器,以及这样做的风险是什么.
我知道我可以通过覆盖new和delete来管理我自己的内存以使用malloc和free,但如果我这样做,我宁愿垃圾收集器根本不运行.
我喜欢我读过很多关于D.的内容.
然而:
所以基本上D适用于只有几兆字节(有时小于一兆字节)的嵌入式系统,不运行操作系统,其中必须在编译时知道最大内存使用量(每个要求),并且可能在小于32位的情况下处理器?
我对一些功能非常感兴趣,但我得到的印象是针对桌面应用程序开发人员.
具体是什么使它不适合16位实现?(假设16位架构可以处理足够的内存来保存运行时,无论是在闪存还是RAM中.)仍然可以计算32位值,尽管比16位慢,并且需要使用库代码进行更多操作.
想象一下,你有3个项目:
你有3个选择:
然后,你要求更多的智能程序员:在这个任务中,D能否给我一个显着的优势:模块化,错误修复,团队工作和机器效率?
你在D编程语言中做过或看过的最酷的有点实用的元编程黑客是什么?有点实际意味着排除例如编译时光线跟踪器.
使用D语言进行GUI编程的当前状态是什么?语言开发人员计划是否在标准库中包含GUI?
清单(根据答案编译)
在我看来,功能纯度的强大之处在于深度代码路径可以被验证为无副作用.人们在代码树规模上的经验是什么,可以在纯粹的说明符中,以及代码重用的级别是什么?
我发现的一些事情:
std.algorithm大部分都没有被标记为pure,但可能很大程度上是纯粹的,要么是纯粹的算法需要实例化函数或mixin的纯度,要么纯度说明符本身是静态多态的.
有用的转换器to!string( someInt )目前不是纯粹的.
用户定义的结构似乎有问题(如下所示):
1.嵌套结构上的纯析构函数
2.纯粹的postblit函数,即使在非嵌套结构上也是如此
以下代码目前在DMD 2.052 win 32-bit上给出了多个错误
struct InnerStruct
{
pure this(this) {}
pure ~this() {}
}
struct OuterStruct
{
InnerStruct innerStruct;
pure this(this) {}
pure ~this() {}
}
pure void somePureFunc()
{
OuterStruct s1 = OuterStruct(); // pure nested destructor does not compile
OuterStruct s2 = s1;
InnerStruct is1 = InnerStruct(); // pure non-nested destructor seems to compile
InnerStruct is2 = is1; // pure non-nested postblit does not …Run Code Online (Sandbox Code Playgroud) 如何从头创建/编写一个简单的XML解析器?
我想知道英语中简化的基本步骤,而不是代码示例.
一个好的解析器是如何设计的?我知道正则表达式不应该在解析器中使用,但正则表达式在解析XML中的作用是多少?
建议的数据结构是什么?我应该使用链表来存储和检索节点,属性和值吗?
我想学习如何创建XML解析器,以便我可以用D编程语言编写一个.
我听说D语言具有强大的元编程功能,可以在编译时执行函数.这听起来非常令人兴奋,但我发现很难想到没有它们很难实现的实际例子.
任何人都可以提供一些D的元编程功能非常方便的情况吗?
我最近偶然发现了D编程语言,我非常喜欢它.你可以编程真正的高级别,同时拥有完整的硬件访问,如在C.
来自一个相当功能性的背景(Haskell,scala)我正在寻找D模式匹配的方法,但我在http://www.digitalmars.com/d/上找不到任何东西.在Haskell中,语言本身支持模式匹配.在Scala中,它通过case类或提取器(具有unapply方法的普通对象)实现.
可以在D中执行此操作吗?
std.concurrency中的receive方法用于在actor类式中进行并发,就像在erlang和scala中一样,在这些方法上采用了大量的函数和模式数学.但我认为它不像其他语言那样灵活.你能用卫兵吗?你能在scala中提取Object的内容吗?
所以我有一个用C++编写的git存储库,但是github坚持认为我正在使用D.为什么这样,并且有什么方法可以解决它?