我想了很多我读约D。

  • 统一的文档(会 让我的工作容易多了.)
  • 测试能力建的 语言。
  • 调试代码支持在语言。
  • 向声明。(I总是 认为这是愚蠢的声明 同样的功能的两倍。)
  • 建立在功能来代替 预处理器。
  • 模块
  • Typedef用于适当类型的检查 而不是混淆。
  • 嵌套的职能。(咳嗽 PASCAL 咳嗽)
  • 在和输出参数。(怎么显而易见的是,!)
  • 支持低水平编程 嵌入式系统,哦,是啊!

但是:

  • 可以发支持一个嵌入式系统,该系统 不要运行一个操作系统?
  • 不彻底的declearation, 它不支持16位处理器 proclude它完全嵌入 上运行的应用程序这样的机器?有时你不需要一个锤子来解决您的问题。
  • 垃圾收集是伟大的在Windows和Linux,但是,不幸的是嵌入式应用程序的某个时候必须做到明确的存管理。
  • 阵列的边界检查,你喜欢它,你恨它。伟大设计保证,但并不总是允许对表现问题。
  • 有什么影响在一个嵌入式系统不能运行OS,对于多线程的支持?我们有一个顾客,甚至不喜欢中断。多小的操作系统/多线程。
  • 是否有一个D-Lite,用于嵌入式系统?

所以基本上是D适用于嵌入式系统的只有几个兆字节(有时候低于一magabyte),不能运行OS,其中最大存储器的使用必须已知在汇编时(每需求。) 和可能的东西的小于一个32位的处理器?

我非常感兴趣的一些特征,但是我得到的印象是,它的目的在桌面应用程序开发。

什么是具体地说,使它不适用于16位的执行?(假设的16位结构可以处理的足够数量的记忆保持运行时,无论是在快速存储器或RAM。) 32位的价值观仍然可以计算出,尽管速度慢于16位和需要更多的行动、利用图书馆的代码。

有帮助吗?

解决方案

我必须说,这短短的这个问题的答案是"不"。

  • 如果你的机器是16点,你会有很大的问题配合D入吧-这是明确不适用于它。
  • D不是一个光语言在本身,就产生一个很大的运行时间类型的信息,通常被链接到你的应用程序,这也需要类型安全的可变参数(并因此标准格式的功能是火卫一探戈或).这意味着即使是最小的应用程序都令人惊讶的大小尺寸,并可因此取消资格的D从系统低RAM。还D运行时作为共享lib(这可以减轻其中一些问题),已经点测试。
  • 目前所有的D图书馆需要C的标准图书馆下方,因而通常也是一个操作系统,因此,即使工作对使用D。然而,确实存在实验内核D,所以它不是不可能的。那里就不会有任何库,作为今天。

我个人想看到你成功,但无疑问,这将是容易的工作。

其他提示

首先读 larsivi的答案.他曾在D运行时,并且知道什么他是在谈论。

我只是想添加: 一些 什么,你要求对已经是可能的。它不会得到你所有的方式,而是作为良好作为一英里在这里,但是,供参考:

垃圾收集是伟大的Windoze或Linux,但是,不幸的是嵌入式应用程序的某个时候必须做explicite存管理。

你可以把垃圾收集关闭。各种实验D操作系统的出有这样做。看看 std。gc 模块,在特定的 std.gc.disable.还注意到,你不需要分配的记忆 new:你可以使用 mallocfree.甚至阵列可以分配给它,你只是需要附加一个D阵列围绕的分配的存储器的使用一片。

阵列的边界检查,你喜欢它,你恨它。伟大设计保证,但并不总是允许对表现问题。

规范阵列 具体而言,需要编译器,允许用于边界检查可以 关闭 (见"实施情况的注意"). gdc 提供 -fno-bounds-check, ,并在 dmd 使用 -release 应该禁止。

有什么影响在一个嵌入式系统不能运行OS,对于多线程的支持?我们有一个顾客,甚至不喜欢中断。多小的操作系统/多线程。

这个我不太清楚,但鉴于大多数C运行时允许关闭多线程,似乎可能的一个可能获得的 D运行时 禁用它。是否这就是容易或可能现在虽然我不能告诉你。

对这个问题的答案已经过时:

可以发支持一个嵌入式系统,该系统不是运行一个操作系统?

D可以 截编为臂Linux 和对 手臂的皮层-M.一些项目旨在建立库皮层-M架构 像MiniLibD的STM32 或者这个 项目采用一个通用图书馆的STM32.(你能实现你自己简单的操作系统中D手臂上的皮层-M)

不彻底的declearation,它不支持16位处理器proclude它完全嵌入式应用程序运行在这样的机器?有时你不需要一个锤子来解决您的问题。

没有,请参阅以上的答案...(但是我不会指望那个"较小的"体系结构比皮层-M将支持在不久的将来。)

垃圾收集是伟大的在Windows和Linux,但是,不幸的是嵌入式应用程序的某个时候必须做到明确的存管理。

你可以写 垃圾收集免费码.(D基金会似乎旨在"GC免费符合"标准图书馆的火卫一,但是进展中的工作。)

阵列的边界检查,你喜欢它,你恨它。伟大设计保证,但并不总是允许对表现问题。

(正如你所说的这取决于你的"个人"和设计的决定。但我会承担一种可接受的性能开销往的检查由于背景的D编译器的开发商和D的设计目的。)

有什么影响在一个嵌入式系统不能运行OS,对于多线程的支持?我们有一个顾客,甚至不喜欢中断。多小的操作系统/多线程。

(有什么问题吗?一个可以实现mutlithreading使用的语言能力,例如 如解释说这个问题.顺便说一句:如果你想使用中断考虑这个 "你好世界"的项目cm3.)

是否有一个D-Lite,用于嵌入式系统?

SafeD的子集D 目标在内嵌的领域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top