理论计算机科学的技术定义是什么?包括哪些子字段?

时间:2010-08-07 07:28:13

标签: programming-languages computer-science theory complexity-theory

理论计算机科学的技术定义是什么? (或者,应该是什么?)

它包含哪些主要子字段,以及将它们与其他计算机科学区分开来的共性是什么?

更具体地说:如果某些特定的研究具有直接的实践动机,目标和结果,但主要涉及非常抽象的方法,那么它是否是理论计算机科学?

要考虑两个例子:

“用于刚性变换混合的双四元数”(动画的旋转和变换的更好的数学表示) https://www.cs.tcd.ie/publications/tech-reports/reports.06/TCD-CS-2006-46.pdf

“基于效果的程序转换的关系语义” 动态分配“(通过指称语义进行编译器优化):http://research.microsoft.com/pubs/67977/ppdprelational.pdf

[维基百科的文章只给出了一个模糊的定义和一长串子字段。应该接受没有比这更好的定义? http://en.wikipedia.org/wiki/Theoretical_computer_science]

编辑:我想这个问题归结为“在计算机科学背景下,'理论'一词的意思是什么?”。看看wiktionary这个词的6个不同含义,我认为它们中的任何一个都不完全适合。我想理论的数学意义适合完全数学领域,但不适合其他领域,而wikipedia:TCS的VLSI,机器学习和计算生物学基本上不适合。

2 个答案:

答案 0 :(得分:1)

我认为将理论与应用区分开来的最简单方法是查看该字段对计算机的定义。如果在现场工作是基于计算机是物理对象或系统的假设,那么它可能是应用程序。另一方面,如果在现场工作是基于计算机是抽象(通常是数学)对象的假设,那么它可能是理论。所以,当你决定是否说你是理论计算机科学家时,我想你只需要问自己,“什么是计算机?”

(对我来说,这绝对是一个抽象的对象)

答案 1 :(得分:0)

这个链接包含一个子字段列表:http://arxiv.org/corr/home,我不会在这里重现它们,因为链接可能会改变,而且这将是多余的。

另外,我提醒某人的引述,不记得是谁,顺着:

  

数学就是其中之一   数学家做了

似乎适用。