Ascii标点字符以基本的拉丁小写字母映射

时间:2014-06-18 06:48:11

标签: javascript haskell coding-style mapping ascii

像Haskell这样的语言允许您创建自己的运算符。以下答案解释了运算符中允许使用哪些标点字符:https://stackoverflow.com/a/10548541/783743

另一方面,像JavaScript这样的语言不允许您在变量名中使用标点符号($旁边)。 [1]

我正在编写一个编译器,它将Haskell的一个子集编译为JavaScript,我不知道如何将运算符转换为有效的JavaScript标识符。

因此我决定将每个标点符号映射到基本的拉丁文小写字母(即a-z)。例如:

& = a
| = l
@ = q

然而,我不是要为自己决定角色映射,而是首先想知道其他人是否已经做过同样的事情,或者是否有一个标准决定如何映射它们。

我意识到这个问题可能主要基于意见(由于某种原因,StackOverflow严格禁止)。因此,我只是在寻找规范性的答案,这些答案最终明确表示"这是做到这一点的方式" (也许有一个链接)。如果你想观看,那么你可以在评论中这样做。

我希望将19个字符映射到字母:

! # $ % & * + . / < = > ? @ \ ^ | - ~

虽然$是JavaScript中标识符的有效字符,但将其映射到字母表也不错。


[1] 属性名称可以包含特殊字符,但这是一个丑陋的黑客。

1 个答案:

答案 0 :(得分:3)

Ghc使用他们所谓的z编码。例如,>>=编码为zgzgze。见https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/SymbolNames