为d足够强大,这些功能?(Is D powerful enough for these featur

2019-09-17 22:58发布

时间最长的,我想设计与效率结婚扩展性的编程语言(和安全性,易于使用等),我最近重新发现d和我想知道如果d 2.0是相当多的,我想使自己的语言。 我最喜欢的就是元编程的潜力; 从理论上讲,可以D的特质系统能够在编译时以下特点?

  1. 运行时反射:是编译时反射特性足以建立一个运行时反射系统,一拉的Java / .NET?

  2. 代码转换:使用元程序,创建C#/ C ++ /等。 您d程序的版本,每次编译(奖金点,如果文档注释可以传播)。

  3. 性状。 我的意思并不是元编程特性内置于d,我的意思是类组成的面向对象的特性 。 广告程序会显示一组特性的组成和元编程将它们组合。

  4. 单位推理引擎:鉴于一些符号来表示任选的指示单元,例如unit(value) ,可以一d元程序检查下面的代码,推断正确的单位,并在最后行发出的错误信息? (我写了这样的事情嘘 ,所以我可以向你保证,这是可能在一般情况下,程序范围内):

     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 

Answer 1:

运行时反射:是编译时反射特性足以建立一个运行时反射系统,一拉的Java / .NET?

是。 您可以使用在编译的时候得到你所需要的所有信息__traits并产生你需要运行时反射的运行时数据结构。

代码转换:使用元程序,创建C#/ C ++ /等。 您d程序的版本,每次编译(奖金点,如果文档注释可以传播)。

不,这简直是不可能的,无论d是多么强大。 有些功能根本就没有调过来。 例如,d具有内嵌汇编,这是100%不可能转换为C#。 没有语言可以无损地转换成其他语言。

性状。 我的意思不是内置到d元编程的特质,我的意思是阶级成分面向对象的特性。 广告程序会显示一组特性的组成和元编程将它们组合。

您可以使用模板混入了这一点,虽然他们不提供方法排除。

单位推理引擎:鉴于一些符号来表示任选的指示单元,例如单元(值),可以一d元程序检查下面的代码,推断正确的单位,并在最后行发出的错误信息? (我写了这样的事情嘘,所以我可以向你保证,这是可能在一般情况下,程序范围内):

是的,这是D.简单有至少一个实现了。



文章来源: Is D powerful enough for these features?