看到这个问题后,我开始思考盲人程序员面临的各种挑战,以及其中一些挑战如何适用于有视力的程序员。特别是,大声阅读源代码的问题让我停下来。我一生大部分时间都在编程,我经常辅导同学编程,最常见的是 C++ 或 Java。
试图用语言表达 C++ 表达式的基本语法是特别令人恼火的。说话者必须将惯用语翻译成英语,或以口头表达的方式完整说明代码,使用明确而缓慢的术语,例如“开括号”、“按位与”等。这些解决方案都不是最优的。
一方面,惯用的翻译只对可以反翻译成相关编程代码的程序员有用——这在辅导学生时通常不是这种情况。反过来,教育(或只是让某人加快项目进度)是大声朗读源代码的最常见情况,并且出错的余地很小。
另一方面,字面规范的速度非常慢。说“磅,包括,左尖括号,iostream,右尖括号,换行符”比简单地输入要花费更长的时间#include <iostream>
。事实上,大多数有经验的 C++ 程序员只会将其理解为“包含 iostream”,但同样,缺乏经验的程序员比比皆是,有时需要文字规范。
所以我有一个想法来解决这个问题。
在 C++ 中,有一组有限的关键字—63 — 和运算符—54,不考虑命名运算符,并将复合赋值运算符和前缀与后缀自动递增和递减视为不同。只有几种类型的文字、相似数量的分组符号和分号。除非我完全弄错了,否则就是这样。
那么,简单地为这些不同的概念中的每一个赋予一个简洁、独特的发音(包括一个用于空格的,在需要的地方)并从那里开始是不可行的吗?编程语言比自然语言更规律,所以发音可以标准化。任何语言的说话者都能够口头传达 C++ 代码,并且由于语言的规律性和固定性,可以优化语音到文本的软件以高度准确地接受 C++ 语音。
所以我的问题是双重的:第一,我的解决方案是否可行;其次,还有其他人有其他潜在的解决方案吗?我打算从这里获取建议并使用它们来制作一份正式的论文,其中包含我的解决方案的示例实现。