2010-02-24 89 views
0

如何開發非英語編程/腳本語言?如何開發非英語編程/腳本語言?

你需要成爲一名計算機科學家嗎?

+1

你能舉出你提到的語言的例子嗎?也比「他們如何發展」更具體一些?你想聽到什麼? – 2010-02-24 11:30:37

+1

就像'支持不同的語言'或像'tue {schreibe'Hallo Welt!'; } solange($ i <1);'? – Boldewyn 2010-02-24 11:49:51

回答

3

您需要了解Unicode如何在國際語言中構建解析器,並且您需要成爲CS專業人員,或者擁有編譯器設計能力。

  1. 學習unicode - 學會使用ICU - 或具有良好Unicode支持的語言。
  2. 決定並構建虛擬機(或使用existing one)。
  3. 編寫一個lexxer /解析器或使用類似ANTLR (Java based)的東西。
  4. 決定一個AST
  5. 生成虛擬機的指令流。
2

退房「編譯器設計原理」

+0

已經提供了鏈接:D – 2010-02-24 11:36:49

1

您使用的字符集能夠編碼擴展字符,如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應按編碼