Unicode 使用特殊字符的编程语言

Unicode 使用特殊字符的编程语言,unicode,programming-languages,special-characters,Unicode,Programming Languages,Special Characters,我正在研究一种通用编程语言。除了在字符串和标识符中支持Unicode的现代要求外,我还考虑提供一些运算符的替代拼写,特别是: 关系(≤≥≠用于=!=) 按位和按设置(∩∪用于&|) 逻辑(∧∨,用于和&|!) 箭头(→⇒用于->=>) 我知道这一点,并利用特殊的角色,而前者往往是关于它的笑柄,但这两者都非常适合学术和科学用途。特殊字符在现代非学术语言中有地位吗?在我看来,它们在语言中没有地位,但绝对属于默认的预处理器。不过,您可能会遇到APL键盘问题。(以及可能的视觉模糊性) 作为预处理/后

我正在研究一种通用编程语言。除了在字符串和标识符中支持Unicode的现代要求外,我还考虑提供一些运算符的替代拼写,特别是:

  • 关系(
    用于
    =
    !=

  • 按位和按设置(
    用于
    &
    |

  • 逻辑(
    用于
    和&
    |

  • 箭头(
    用于
    ->
    =>


我知道这一点,并利用特殊的角色,而前者往往是关于它的笑柄,但这两者都非常适合学术和科学用途。特殊字符在现代非学术语言中有地位吗?

在我看来,它们在语言中没有地位,但绝对属于默认的预处理器。不过,您可能会遇到APL键盘问题。(以及可能的视觉模糊性)


作为预处理/后处理的一个有限的例子是cweaved代码。

这是一个有趣的概念,但是您不担心同一事物的多个拼写会使解析代码变得更困难吗,特别是对于IDE?更不用说花额外的时间来教授这些符号对新来的程序员意味着什么了?如果您支持unicode,因此可能支持其他语言(日语中的变量?),那么这些语言会使您变得更加难以理解。此外,您发现它们的逻辑对立面C trigraph()?:-)有多有用

特殊字符在现代非学术语言中有什么地位

是的,但因为在大多数台式机上,对特殊字符的支持仍然很糟糕(糟糕的编辑器、糟糕的字体,随便你怎么说)

  • 你最好提前十年计划
  • 您最好确保有一个好的、可用的、仅使用ASCII字符的替代方案
我从不提倡使用预处理器:存在太多的诱惑和滥用空间,除非非常小心地使用,否则预处理器会使编写好的IDE和静态分析工具变得更加困难


有些人喜欢后处理器,即预打印机,它接受ASCII字符序列并将其作为其他内容呈现。虽然我总是觉得这种风格令人困惑,但它在一些Haskell程序员中非常流行和成功。

我非常喜欢使用正确字符的想法。然而,为了使用它,我真的想要一个有额外标点键的键盘。当我们这样做的时候,像
{}()“?+*
这样的东西也应该有它们自己的键。

不确定通用语言,但它们在DSL中有一个位置,在一个领域中它们是合理的。当然,它可以在一些现代语言中完成。有关Scala中的示例,请参阅。

特殊字符
是Scala中的保留字。
用于引入生成器绑定,而
在函数定义中用于将参数列表与函数体分开

示例:

for {
  word ← List("Hello", "World")
  character ← word
} println(character)

val square = (x: Int) ⇒ x * x

需要注意的是,Scala编译器还允许上述符号的ASCII替代符号(即
)。

我使用的一种依赖于非ASCII字符的语言是,它使用
对于分配,
/
/
用于比较,具有内置常量
π
,a
功能等


在PC上,我怀疑我是否会经常使用非ASCII运算符,因为键入
!=
比查找
要快得多≠

伊莎贝尔(定理证明者)允许LaTeX样式的命令序列作为有效输入。然后,各个前端会采取适当的措施将其转换为特殊字符。这样做的好结果是,它仍然只是普通的ASCII文本,但您可以在了解这些字符的编辑器中使所有漂亮的显示字符看起来与您期望的一样。

使用my cu当前设置,为操作符添加替代拼写是很简单的,编辑人员只需要知道存在替代拼写,而不是同义词。我打算不仅支持非英语变量,还支持关键字(如ChinesePython).我根本不需要三角图,但现在键盘几乎可以保证有C所需的字符。单个符号来自数学,应该更容易记住。例如,我花了一段时间才打破我有阅读障碍的朋友写
=@Jon也许你的朋友是Prolog程序员?@Norman:因为我知道了他写的东西,除了没有别的东西,除了java、C++、VHDL之外,我不知怎么回事,但你永远不知道人们在什么时候没人看的是什么。乔恩:开玩笑。在Prolog中,“小于或等于”拼写为<代码> =预处理器可能只是一张票,尽管我一直避免包括一个赞成的人。更结构化的基于模板的系统。我们需要一个程序员键盘。@GONeale:是的。不久前,我放弃了并改变了我的键盘布局,用符号交换数字,以及其他常用的移位符号和非移位符号。这使我的编码世界更快、更舒适。看起来就像Donald Knuth的WEB&CWEB将是一个另外一个产生特殊字符的后处理例子,不是吗?当然,它们的作用远不止转换
,我想如果我想让编辑器支持做得好,或者根本做不好,我就必须自己做。我目前的想法是,“预处理器”将严格地在交替拼写之间运行