为什么C和C ++ IDE工具支持可用于托管平台?

时间:2009-10-31 05:29:04

标签: java .net c++ c ide

如果您使用过任何体面的java或.net IDE,您可以看到它们提供的丰富功能,这些功能要么在c / c ++ IDE中不存在,要么以更有限的形式存在。

我正在考虑以下功能:

  • 代码完成
  • 语法错误(以及无需编译的编译错误)
  • 重构
  • 调试(调试器可以向您显示有关对象的信息量)
  • 代码探索和分析(查看类型层次结构,调用此函数等...)

托管语言的主要特点是什么使他们能够在工具中提供这种(大多数人会说)优越的支持?

6 个答案:

答案 0 :(得分:11)

C ++是一种非常难以解析的语言。对于成功处理它的解析器(编译器)来说,它们太慢而且不够灵活,不足以支持IDE样式的代码支持。与编译器不同,在IDE中,解析器必须非常快并且能够处理语法错误的代码。到目前为止,没有人花时间去做,因为有这种技能的人完全专注于实际的编译器。

Visual Studio 2010具有改进的C ++ IntelliSense引擎。他们花了很多年才完成它,但大量改进了。

答案 1 :(得分:5)

C和C ++等语言使得完成和语法修正变得更加困难,因为语法比(比如说)Java更复杂。例如,预处理器使事情变得更加艰难。

重构更难,因为C / C ++较弱的类型系统使得更难以了解重构是否会保留原始代码的含义。

调试更难,因为C / C ++较弱的类型系统意味着很难知道“实际”类型的运行时值实际上是什么。

答案 2 :(得分:4)

我最近嘲笑仍在使用vim的c / c ++编码器,直到他们挑战我找到一个干净地处理大型项目中的条件编译的IDE并链接到多个定义的有条件编译方法的正确实例。没有人接受挑战。

道德:保持设计清洁,vim是你的IDE。

答案 3 :(得分:2)

尽管解析C ++存在困难,但我认为你的前提是过于宽泛,并不一定是托管与非托管的问题。

例如,Visual Studio具有代码完成,编辑和继续(用于32位构建),语法检查(截至2010年发布),广泛的调试功能以及本机C ++项目的代码探索功能。

答案 4 :(得分:1)

如果您需要开源和跨平台,NetBeans C / C ++插件在C / C ++ IDE中具有大部分(如果不是全部)所需的内容。

答案 5 :(得分:-2)

对于不了解自己手艺的程序员来说,IDE只是拐杖。给自己一个好的文本编辑器并学习阅读编译器错误消息。

相关问题