wiz*_*rd0 7 turing-complete computation-theory c#-4.0
众所周知,C++模板是图灵完备的,CSS是turing-complete(!),C#重载分辨率是NP-hard(即使没有泛型).
但是C#4.0(具有co/contravariance,泛型等)编译时图灵是否完整?
与 C++ 中的模板不同,C#(和其他 .net 语言)中的泛型是运行时生成的功能。编译器确实会进行一些检查来验证类型的使用,但是实际的替换发生在运行时。如果我没记错的话,Co 和逆变以及预处理器指令也是如此。很多 CLR 魔法。
\n\n\n(在实现级别,主要区别在于 C#\n 泛型类型替换是在运行时执行的,因此为实例化对象保留了泛型类型\n 信息)
\n
参见MSDN
\n\nhttp://msdn.microsoft.com/en-us/library/c6cyy67b(v=vs.110).aspx
\n\n更新: \nCLR 通过存储在与已编译程序集关联的元数据中的信息执行类型检查(Vis-\xc3\xa0-vis Jit Compliation),它将此作为其众多服务之一,(ShuggyCoUk 对此问题的回答解释道详细介绍)(其他包括内存管理和异常处理)。因此,我推断编译器将状态理解为进展,将状态理解为机器内部状态(TC部分意味着能够参考先前的数据(符号),有条件地和有条件地审查数据(符号))评估)(我犹豫是否要说出TC的确切定义,因为我自己也不确定我是否完全掌握了它,所以请随意填写空白并在适用时纠正我)所以我会带着一点惶恐地说,是的,是的,可以。
\n