很长一段时间以来,我一直想设计一种将可扩展性与效率(以及安全性、易用性等)结合起来的编程语言。我最近重新发现了 D,我想知道 D 2.0 是不是我想自己制作的语言. 我最喜欢的是元编程的潜力;理论上,D 的特征系统可以在编译时启用以下功能吗?
运行时反射:编译时反射特性是否足以构建像 Java/.NET 那样的运行时反射系统?
代码转换:使用元程序,创建 C#/C++/等。每次编译 D 程序时的版本(如果可以传播 doc 注释,则加分)。
性状。我不是指D 中内置的元编程特征,我指的是类组合的面向对象特征。AD 程序将指示要组合的一组特征,而元程序将组合它们。
单元推理引擎:给定一些可选指示单元的符号,例如
unit(value)
,D 元程序是否可以检查以下代码,推断正确的单元,并在最后一行发出错误消息?(我为boo写了这样一个东西,所以我可以向你保证,这通常是可能的,在整个程序范围内):auto mass = kg(2.0); auto accel = 1.0; // units are strictly optional auto force = mass*accel; accel += metresPerSecondSquared(9.81); // units of 'force' and 'accel' are now known force += pounds(3.0); // unit mismatch detected