基于Unicode的编程语言

时间:2010-10-14 14:18:06

标签: unicode programming-languages

这是一种好奇心:是否存在一种编程语言,它允许使用Unicode而不是ASCII来命名变量,函数和类(当然,除了'+'这样的特殊字符外)?是否有任何流行的语言都支持这个?

此外,与此相关,如果任何公共语言支持Unicode,那么有没有办法将现有的API转换为用户自己选择的语言?似乎让程序员能够用自己的语言学习API是有帮助的。我想下载一个标准的API(例如boost),然后下载标准的翻译映射,然后能够用我的母语编程。

13 个答案:

答案 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)

据我所知,C#,Java,Python3都是基于Unicode的编程。

我发现上面没有人提到 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)

考虑一下Apple于2014年推出的Swift。以下是代码段:

var国="美国"

祝你找到最好的一个好运!