这是一种好奇心:是否存在一种编程语言,它允许使用Unicode而不是ASCII来命名变量,函数和类(当然,除了'+'这样的特殊字符外)?是否有任何流行的语言都支持这个?
此外,与此相关,如果任何公共语言支持Unicode,那么有没有办法将现有的API转换为用户自己选择的语言?似乎让程序员能够用自己的语言学习API是有帮助的。我想下载一个标准的API(例如boost),然后下载标准的翻译映射,然后能够用我的母语编程。
答案 0 :(得分:5)
从其他答案中可以看出,大多数现代语言允许这样做,包括Perl,Python,Go,Ruby,Java,C♯,lisp,Fortess,ADA等等的变种。 C和C ++没有,但那些不是现代的。
关于C♯,来自MSDN:
本节中给出的标识符规则完全符合Unicode标准附件15
的建议
至于将API转换为所选语言 - 这是不可行的。您需要一个能够理解每个方法,变量和类名的细微差别和含义的翻译并正确翻译 - 这与能够在代码中使用所选语言的字符不同。
答案 1 :(得分:3)
Ada(以及其他)允许使用UNICODE的国际化标识符。
但是,我的个人意见是软件应该使用单一的,普遍可理解且足够简单的语言(显然是英语)来编写,以鼓励协作,确保代码的可理解性和可重用性。
答案 2 :(得分:2)
Fortress广泛使用Unicode(可能采用APL方式);有关示例,请参阅http://projectfortress.sun.com/Projects/Community/wiki/FeatherweightJava。
答案 3 :(得分:2)
Delphi自2009版以来就具有该功能
答案 4 :(得分:2)
Javascript具有此功能。
答案 5 :(得分:2)
.Net支持Unicode,我每天都在使用C#Unicode变量。
答案 6 :(得分:2)
我发现上面没有人提到 Python ,所以我添加了它。 Python有一个幻想特征:一切(函数,类,模块,变量,类实例)都是对象,每个对象都可以附加一个文档来描述它。此功能可用于组织代码和交互式执行脚本。例如:
# Python code in interactive mode
>>> def MyFunc():
'''This is self-included document.
It can be write in multi lines.'''
print('foobar')
>>> print(MyFunc.__doc__)
This is self-included document.
It can be write in multi lines.
>>> MyFunc()
foobar
答案 7 :(得分:1)
Java具有此功能。
答案 8 :(得分:1)
常见的lisp的一些实现将允许这样做。 AFAIK语言规范不禁止或要求它(它只需要一个基本的ASCII字符集)。
答案 9 :(得分:1)
Tcl允许您将Unicode字符用于命令和变量名称,但建议将它们用于变量名称,因为此时快捷语法不能处理(即,您必须使用{{1}形式而不是[set Ω]
)。
答案 10 :(得分:1)
Scheme,PLT Racket和Lisp Flavored Erlang都允许使用unicode标识符(由于前缀语法而变得简单)
答案 11 :(得分:0)
Perl和Go都允许使用完整的Unicode标识符。 Perl需要use utf8;
声明,但Go会自动执行此操作。
有关各种问题,请参阅UAX#31: Unicode Identifier and Pattern Syntax。
通常,标识符应与模式^\p{ID_Start}\p{ID_Continue}*$
匹配,尽管语言可以自由添加。例如,Java添加货币符号(\p{Sc}
),包括$
。
答案 12 :(得分:0)