75070


JavaScriptなどスプリクト、Ruby、Python、C♯、C++などのプログラミング言語でコードから、コメントのような動作の動きを日本語文章で説明したようになる方法はありますでしょうか？

コメントのないソースコードをコメントか、それに近いような説明か動作の記述をしてくれる機能です。

たとえば以下です。

[code]

    document.close();
    
[/code]

この場合だと

[code]

    // 文書を閉じる
    document.close();
    
[/code]

このようにメソッドの意味を書いてくれる機能です。  
よろしくお願いいたします。


CC BY-SA 4.0
2021-04-03T20:10:36.143
75069
2021-04-05T04:11:45.310
2021-04-03T21:55:40.843
4236
43999
question
プログラミング言語
コメントのような説明を追加してくれるプログラミング言語の方法や機能はありますか？


英語であれば

[code]

    // Close document.
    document.close();
    
[/code]

このような記述を求めているということでしょうか？ そうだとしたらあまりにも不毛な機能です。  
そのような機能を求めるぐらいなら **英語を学ぶことをお勧めします。**

他の選択肢としましては、

  * [日本語プログラミング言語 Ｍｉｎｄ](http://www.scripts-lab.co.jp/mind/whatsmind.html)
  * [ひまわり-日本語プログラミング言語](http://kujirahand.com/himawari/)
  * [なでしこ:日本語プログラミング言語](https://nadesi.com/top/)

などのプログラミング言語を使用される方法もあります。

* * *

> このようにメソッドの意味を書いてくれる機能

例えば[Visual Studio Code](https://code.visualstudio.com/)なら、`close`
にマウスホバーさせると説明がポップアップされます。

![説明のポップアップ](https://i.stack.imgur.com/CQwZp.png)

[Visual Studio
日本語版](https://visualstudio.microsoft.com/ja/vs/)であれば、ポップアップメッセージの一部は日本語化されていたと思います。


CC BY-SA 4.0
2021-04-03T21:54:50.570
75070
2021-04-03T21:54:50.570
4236
75069
answer


### 【概要】

Python ＆ VS Code で, ソースコード作成時にマウス移動すると, メソッドの情報などポップアップされます  
それらの情報は (Pythonでは) Docstring と呼ばれるもので, 以下のように表示可能です

[code]

    >>> import pandas as pd
    >>> print(pd.__doc__)
    
    pandas - a powerful data analysis and manipulation library for Python
    =====================================================================
    (略)
    
    >>> print(pd.DataFrame.__doc__)
    
        Two-dimensional, size-mutable, potentially heterogeneous tabular data.
        Data structure also contains labeled axes (rows and columns).
        Arithmetic operations align on both row and column labels. Can be
    
    (以降 DataFrameの情報, 略)
    
[/code]

もちろん定義側に正しく記述されていないと表示されません。が, 大抵の標準パッケージやメジャーなパッケージには含まれています。

### 【日本語について】

  * 日本語での詳細情報は, 日本語で記されていれば日本語で出るかもしれない, が英語圏には読めないので大抵英語
  * (日本語と英語で Docstringを記述し切り替える … ような仕組みは聞いたことがない, たぶん無いのでは？)
  * 下手に自動翻訳したところで, 意味が捉えづらいことになりかねない

### 【プログラミング言語による違い】

また, Pythonのこのような仕組みは Javaでは Javadoc があります (どちらがより優れてるとかは不明)

  * JavaScript にも, Javadoc のようなものを見かけたことがある
  * (他の言語は知らないが, 大なり小なり存在すると思われ)

### 【実装？】

VS Codeエディターでは, Pythonの場合
[Pylance](https://marketplace.visualstudio.com/items?itemName=ms-
python.vscode-pylance) という language server が担っています。

  * たぶん他のプログラミング言語では, その言語用の language server が同様の機能を提供するのかもしれない (未確認)
  * 別のエディター, (あるいは IDE) で利用するなら, language server protocolが扱えるようにして, (プログラミング言語毎に, 例えば Pythonであれば) Pylance を可動することが出来るなら, (もしかすると)同様に出来るかも？

* * *

(追記)  
参考 URL:

  * 本家の情報 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)
  * ググって見つけたところ [language server protocolについて (前編)](https://qiita.com/atsushieno/items/ce31df9bd88e98eec5c4)


CC BY-SA 4.0
2021-04-04T06:32:35.287
75077
2021-04-05T04:11:45.310
2021-04-05T04:11:45.310
43025
43025
75069
answer