非英语编程/脚本语言是如何开发的?

发布于 2024-08-22 23:05:41 字数 1435 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

找个人就嫁了吧 2024-08-29 23:05:41

您需要了解 Unicode 如何工作才能用国际语言构建解析器,是的,您确实需要是计算机科学专业的学生,​​或者具备自学自己编译器设计。

  1. 学习 unicode —— 学习使用 ICU —— 或具有良好 Unicode 支持的语言。
  2. 决定并构建虚拟机(或使用现有虚拟机)。
  3. 编写词法分析器/解析器或使用类似 ANTLR (基于 Java) 的东西。
  4. 决定 AST
  5. 为 VM 生成指令流。

You need to understand how Unicode works to build a parser in an international language, and yes you do need to be a CS major, or possess the ability to self-teach yourself compiler design.

  1. Study unicode -- learn to use ICU -- or a language with GOOD Unicode support.
  2. Decide on and Build a VM (or use an existing one).
  3. Write a lexxer / parser or use something like ANTLR (Java based) .
  4. decide on a AST
  5. Generate the instruction stream for the VM.
孤寂小茶 2024-08-29 23:05:41

查看《编译器设计原理》

check out "Principles of Compiler Design"

素手挽清风 2024-08-29 23:05:41

您使用能够对扩展字符进行编码的字符集,例如 UTF8。 8 位以上的 Unicode 集以 UTF16 的双字节表示法或 UTF32 的四字节表示法编写。出现的问题是关于 dibi(双向表示法),其中使用不同 bidi 表示法的语言可能会以不同的顺序读取字节。双向问题的解决方案是通过在字符编码之前指定字节顺序,但问题仍然是之前关于双向差异的问题。因此,字节顺序是通过 Unicode 字符集的更具体的子集清楚地表述的。 UTF16BE,对于大端字节序,要求字节顺序规范在从右到左的解释中先于字符编码。相反的是 UTF16LE,或小端。

还有 UCS,通用字符集。这一术语仍在使用,但已被弃用,因为它对于上面提到的有关映射占用多个字节的字符的问题不够具体。有关 UCS 和 Unicode 之间差异的信息,请阅读以下内容:http://en.wikipedia.org /wiki/Universal_Character_Set#Differences_ Between_ISO_10646_and_Unicode

一些示例如下:
IRI - RFC 3987 - http://www.ietf.org/rfc/rfc3987.txt - 强制使用 UTF8 编码
邮件标记语言 -
http://mailmarkup.org/ - 强制使用 UTF16BE 编码

You use a character set capable of encoding extended characters, such as UTF8. Unicode sets above the 8 bit are written in double byte notation for UTF16 or quadruple byte notation for UTF32. The problem that arises is with regard to dibi, bidirectional notation, where language using different bidi notations may read the bytes in different orders. The solution to the bidi problem was through specification of the byte order prior to the character encoding, but the problem remains of what is before with regard to differences of bidi. So the byte order is clearly stated through a more specific subset of the Unicode character sets. UTF16BE, for big endian, mandates the byte order specification comes prior to the character encoding in a right to left interpretation. The opposite would be UTF16LE, or little endian.

There is also the UCS, Universal Character Set. This term is still used, but it is deprecated as it is not specific enough in concern for the problem mentioned above about characters whose mapping takes more than one byte. For information about the differences between UCS and Unicode please read this: http://en.wikipedia.org/wiki/Universal_Character_Set#Differences_between_ISO_10646_and_Unicode

Some examples are the following:
IRI - RFC 3987 - http://www.ietf.org/rfc/rfc3987.txt - mandates UTF8 encoding
Mail Markup Language - http://mailmarkup.org/ - mandates UTF16BE encoding

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文