1

是否有任何(合理)直接的方法来生成注释来解释 C++ 程序的结构?例如,我想将此代码作为输入:

int main(){
cout << "Hello World!";
return 0;
}

并将其作为输出生成:

int main(){
//create a function called main that returns an integer and takes no parameters.
cout << "Hello World!";
//print the string "Hello World" to the standard output.
return 0;
//the function main returns 0
}

如果可以做到这一点,它可能会使(任何 C++ 程序的语法)对初学者来说稍微不那么令人生畏。

如果 C++(使用现有工具)无法做到这一点,那么(任何类似的工具)是否可用于其他编程语言?

4

7 回答 7

2

有解释声明的工具(和http://cdecl.org/cdecl的在线版本)。看一看。

于 2012-06-16T17:30:25.183 回答
1

您的示例非常冗长,只会使任何源代码完全不可读。有一些解决方案不那么冗长但更相关,比如我听说很受欢迎的 www.doxygen.org/。

于 2012-06-16T17:10:13.933 回答
0

您在评论中添加的内容没有多大意义 - 函数返回整数或不带参数的事实通过函数原型是不言自明的。但是,如果您通常指的是解释功能如何工作的自动注释工具,那么有些东西。

我不确定这是否适用于 C++,因为它适用于 C#,但有一个名为 GhostDoc 的 Visual Studio 插件,它根据变量/函数/等名称等生成“人类语言”注释。您可以在这里看到它的实际效果:http ://www.youtube.com/watch?v=4aA4VZoVDQw (视频的第二部分)。

即使它不能完全解决您的问题,也许它会给您提示要查找的内容。

于 2012-06-16T17:05:59.137 回答
0

如果我很好地理解了您的问题,您会想要一个通过在每一行中注入适当的文档来“解释”代码的工具。

据我所知,正如您对初学者所说的那样,并且要在现有代码上运行它,以这种方式编写代码完全没用(这就是您投票失败的原因)。

这些注释只是现有代码的重复,因此完全没用。如果您更改代码而不更改注释会发生什么?最糟糕的是,如果您再次运行您的工具,您是希望它删除旧评论还是同时保留它们?

好的注释应该为代码添加有用的信息(如编码意图,或避免的技巧等),但大声阅读代码只是噪音。

所以要回答你的问题,我认为不,没有工具可以做到这一点。但是,某些 IDE 可能会提供类似的功能,您可以在将鼠标悬停在代码行上时在工具提示上获得此类信息,但绝对不能作为代码中的注释。

于 2012-06-16T17:10:18.100 回答
0

也许您正在寻找的是文学编程?http://www-cs-faculty.stanford.edu/~uno/cweb.html

于 2012-06-16T17:14:03.730 回答
0

注释不应描述代码将做什么。评论应该解释,

  • 意图是什么,必须执行哪个任务
  • 程序员期望什么,为什么要采用特定的分支
  • 为什么程序员以这种方式编写代码
于 2012-06-16T17:30:43.433 回答
0

在我看来,其意图并不是要在程序中实际包含此类评论。只是为了让初学者有办法问“这个语法是什么意思?” 针对特定事物有一些有限的解决方案,例如声明语法的 cdecl.org,但没有通用的解决方案。这不会是微不足道的。也许可以在 Clang 库之上相对容易地(仅相对地)构建一些东西来处理 c++。

于 2012-06-16T20:40:59.080 回答