この質問を見た後、盲目のプログラマーが直面するさまざまな課題と、それらのいくつかが目の見えるプログラマーにもどのように適用できるかについて考えるようになりました. 特に、ソースコードを声に出して読む問題は、私を一時停止させます。私はこれまでの人生のほとんどをプログラミングに費やしてきました。また、仲間の学生にプログラミングの指導を頻繁に行っています。ほとんどの場合、C++ または Java を使用しています。
C++ 式の本質的な構文を口頭で伝えようとすることは、非常に腹立たしいことです。話し手は、英語への慣用的な翻訳、または「開き括弧」、「ビットごとの and」などの明示的で遅い用語を使用して、口頭でコードの完全な仕様を提供する必要があります。これらのソリューションはどちらも最適ではありません。
一方では、慣用的な翻訳は、関連するプログラミング コードに逆翻訳できるプログラマーにとってのみ有用です。これは通常、学生を指導する場合には当てはまりません。次に、教育 (または単に誰かをプロジェクトに慣れさせること) は、ソースが読み上げられる最も一般的な状況であり、エラーの余地はほとんどありません。
一方、リテラル仕様は非常に遅くなります。「シャープ、インクルード、左山括弧、iostream、右山括弧、改行」と言うのは、単に入力するよりもはるかに時間がかかります#include <iostream>
。実際、ほとんどの経験豊富な C++ プログラマーは、これを単に「iostream を含める」と読むでしょうが、経験の浅いプログラマーは多く、文字通りの仕様が必要な場合もあります。
そこで、この問題の潜在的な解決策について考えました。
C++ には、有限のキーワード( 63) と演算子(54) のセットがあり、名前付き演算子を無視し、複合代入演算子と前置対後置の自動インクリメントとデクリメントを別個のものとして扱います。数種類のリテラル、同様の数のグループ化記号、およびセミコロンがあります。私が完全に間違っていない限り、それはそれについてです。
それでは、簡潔でユニークな発音をこれらの異なる概念 (必要な場合は空白の発音を含む) のそれぞれに単純に帰し、そこから進むことは実行可能ではないでしょうか? プログラミング言語は自然言語よりもはるかに規則的であるため、発音を標準化することができます。どの言語の話者でもC++ コードを口頭で伝えることができ、言語の規則性と固定性により、音声テキスト変換ソフトウェアを最適化して C++ 音声を高い精度で受け入れることができます。
したがって、私の質問は 2 つあります。まず、私の解決策は実行可能ですか。第二に、他の誰かが他の潜在的な解決策を持っていますか? ここから提案を受け取り、それらを使用して、私のソリューションの実装例を含む正式な論文を作成するつもりです。