众所周知,C++模板是图灵完备的, CSS也是图灵完备的 (!),而C#重载决策是NP难问题(即使没有泛型)。
但是,C# 4.0(带有协变/逆变、泛型等)是否是编译时图灵完备呢?
众所周知,C++模板是图灵完备的, CSS也是图灵完备的 (!),而C#重载决策是NP难问题(即使没有泛型)。
但是,C# 4.0(带有协变/逆变、泛型等)是否是编译时图灵完备呢?
请参阅MSDN。(在实现层面上,主要区别在于C#泛型类型替换是在运行时执行的,因此泛型类型信息被保留为实例化对象)
http://msdn.microsoft.com/en-us/library/c6cyy67b(v=vs.110).aspx
更新: CLR 通过与编程集关联的元数据执行类型检查(参见Vis-à-vis Jit Compliation),它作为其众多服务之一进行此操作(其他包括内存管理和异常处理)。因此,我推断编译器对状态的理解既可以是进展的状态,也可以是机器内部状态(TC在部分上意味着能够有条件地回顾数据(符号)并评估先前数据(符号)的参考)。 (我犹豫不决地陈述TC的确切定义,因为我自己不确定是否完全掌握了它,因此请随时填写空白并在适用时纠正我。)因此,我会带着一点不安的心情说,是的,它可以。