代码之家  ›  专栏  ›  技术社区  ›  Jon Purdy

使用特殊字符的程序设计语言

  •  4
  • Jon Purdy  · 技术社区  · 14 年前

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

    • 关系式( 对于 <= >= != )

    • 按位和按位( 对于 & | )

    • 逻辑的( ¬ 对于 && || ! )

    • 箭头(箭头) 对于 -> => )

    我知道 APL Fortress 利用特殊的人物,前者往往是笑话的笑柄,但这两者都非常适合学术和科学使用。在现代的非学术语言中,特殊人物有地位吗?

    8 回复  |  直到 14 年前
        1
  •  7
  •   Norman Ramsey    14 年前

    在现代的非学术语言中,特殊人物有什么地位?

    对, 但是 因为在大多数桌面上,对特殊字符的支持仍然是 可怕的 (错误的编辑器,错误的字体,你命名它)

    • 你最好提前十年计划。
    • 你最好是 非常 当然有好的, 可用的 也可以只使用ASCII字符。

    我从不提倡预处理器:有太多的诱惑和滥用的空间,而且除非非常仔细地做,否则预处理器就可以做到。 许多的 很难编写好的IDE和静态分析工具。

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

        2
  •  4
  •   vlabrecque    14 年前

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

    作为前/后处理的一个有限示例是cWeaved代码。

        3
  •  3
  •   Gian    14 年前

    Isabelle(定理证明器)允许使用乳胶样式的命令序列作为有效输入。各种前端然后做适当的事情把这些变成特殊的字符。这样做的好结果是,它仍然只是普通的ASCII文本,但是您可以让所有漂亮的显示字符在了解这些字符的编辑器中看起来像您期望的那样。

        4
  •  2
  •   eruciform    14 年前

    这是一个有趣的概念,但您不担心同一事物的多个拼写会使代码解析变得更困难吗,尤其是对于IDE?更不用说教那些符号对新来的程序员意味着什么所花费的额外时间了?如果您支持Unicode,因此可能支持其他语言(日语变量?)这些使另一层不可测性。另外,你发现它们的逻辑相反点,C三角图有多有用?( http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C )?-)

        5
  •  2
  •   missingfaktor Kevin Wright    14 年前

    特殊人物 ← ⇒ 是scala中的保留字。 艾斯 用于引入生成器绑定,而 艾斯 在函数定义中用于将参数列表与函数体分离。

    实例:

    for {
      word ← List("Hello", "World")
      character ← word
    } println(character)
    
    val square = (x: Int) ⇒ x * x
    

    需要注意的是,scala编译器还允许使用上述符号的ASCII替代品(即 <- => )

        6
  •  2
  •   dan04    14 年前

    我使用的一种依赖于非ASCII字符的语言是 TI-BASIC ,它使用 → 赋值, ≤ / ≠/ ≥ 比较而言,有内置常量 π ℯ A √ 功能等。

    在个人电脑上,我怀疑我是否会大量使用非ASCII运算符,仅仅是因为它打字速度快得多。 != 而不是抬头看 阿西 在字符映射中。

        7
  •  0
  •   Coxy    14 年前

    我非常喜欢使用合适的角色。然而,为了使用它,我真的想要一个有额外标点符号键的键盘。当我们在做的时候, { } ( ) " ? + * 都应该有自己的钥匙。

        8
  •  0
  •   Don Roby    14 年前

    不确定通用语言,但是这些语言在DSL中有一个合适的位置。当然也可以用现代语言来完成。有关scala中的示例,请参见 this blog post .