如果要全新設計一款中文程式語言 編譯器 整合開發環境,大家有沒有什麼好的建議

時間 2021-05-30 10:26:39

1樓:

首先你需要乙個適合輸入中文的鍵盤.如果你開發中文程式語言,卻還用拼音輸入法,那你在白費力氣.

或者你乾脆直接開發一款適合程式設計中輸入中文的輸入法.不會輸入中文符號,能夠與ide互動啟用智慧型感知.

2樓:風君子

如果你的目的是「溝通維護成本」,那這事兒實在想不到搞中文的意義。

且不說中文和英文本身的差別了,如果你的工程是用乙個偏門的小語種來寫的,將直接面臨根本在市場上招聘不到優秀的程式設計師來開發和維護的困境。這個選擇實際上是在人為的無限增大溝通和維護的成本。

比如你用brainf**k來做工程,1年下來乙個程式設計師都招不到。畢竟對於乙個大學生來講,幾年時間的學習,是學c艹和python好找工作呢,還是學你這個偏門語言好找工作呢?對於乙個企業來講,一輩子不跟其他企業合作呢,還是永遠不考慮國際市場?

為啥go語言也是新語言,全世界那麼多人用呢?因為人家有乙個全球第一的爹在背書,你兒子的爹是你跟是王健林,能一樣麼?

另外,母語跟程式語言之間的關係根本不在普通人是否能看得懂的優勢,別看 if for function 什麼的是英文,但實際上在程式設計中他們跟英語半毛錢關係都沒有。

一方面任何乙個程式語言英文關鍵字的數量也就幾十個,這個量還不如乙個考4級的大學生一天要背的單詞量多。

另一方面,美中國人英中國人都是英文母語,他們是不是人人都是程式設計師了?他們是不是更容易成為好的程式設計師了?美國的普通人是不是就可以跟程式設計師談笑風生了?

實際上,很多優秀的語言發明者和大拿根本不是英語母語者。

結論就是中文不中文跟程式設計這事兒半毛錢關係都沒有,瞎折騰啥。熟話說:入門到精通一門程式語言只需要21天,背幾個英文關鍵字只需要1小時,比起21天這麼長的時間,1小時的事兒轉不轉中文實在無關緊要呀(手動狗頭

3樓:韓樸宇

首先不能侷限於"中文化",應該考慮國際化"i18n",原生的支援所有自然語言.

本質上中文和其他語言一樣對於計算機來說都是Unicode字串而已.

4樓:dc lin

這個問題我考慮過,主要有幾個問題:

中文輸入和程式設計是相矛盾的,最重要的還不是漢字輸入,而是標點符號,當輸入中文的時候,不自覺就輸入了中文的,。;「等,這些符號在語言設計中是否也要設計成是中文的符號?還是中英文符號都支援?

現有所有支援自動補全的IDE,基本都不支援非英文本母開頭的識別符號的自動補全,比如有個變數:student_name,你在絕大部分IDE裡,只需要打入stu,一般就會自動彈出後面的內容了,這就大大減少了鍵入的時間,而且更重要的,是可以避免不小心輸入錯誤,但是就算支援utf-8的IDE,如果你用中文來做變數名,一般都不支援只打入前幾個漢字就自動補全。

以visual studio code 為例:

可以看到,只用打"n"就會彈出提示,直接按空格就可以輸入了,不需要輸入完全的變數名。

但是如果用中文做變數名,就不可以:

大家可以看到,中文名不會觸發自動補全。

有鑑於此,個人認為乙個比較合理的改善方式是在幾個關鍵內容前面加上字首,可以用字母,也可以用特俗符號,比如下面的方案:

變數和常量,建議用<>來包括起來,這樣,在IDE中,一旦輸入<,就可以把之前定義的變數和常量名提公升出來自動補全;

函式用( )來包括起來,邏輯如上,語法是:(函式名: 參數列);

關鍵字用[ ]來包起來,語法:[關鍵字: 操作]

IDE和編譯器都能識別和接受中英文的標點符號,包括amp39;,./:"<>?和amp

下面是以上面的原則改造的類python中文程式語言:

【匯入:標準輸入輸出庫

-》標輸】

#匯入標準輸入輸出庫設定別名:標輸

【定義函式:求階乘

()】

【如果:

==1

】【返回:1

】【否則】【返回:

(求階乘

:<

n>-1)

*=標輸

.(輸入:

<提示>=

"輸入n:"

)#這裡""會自動計算n的值,再嵌入字串中,相當於python的f-string標輸.

(輸出:"!=<(求階乘: =)>")

5樓:「已登出」

為什麼都2023年了還有人覺得(中文)語言是阻礙中中國人計算機教育的?如果乙個人英語連int double while for都不認識你指望他能學會演算法,設計原理,軟體工程論?

6樓:

把Python的關鍵字保留字都改成中文,變數名支援中文就差不多了,說穿了也就是易語言的意思。因為本來那些玩意就是虛的,不是英文,弄成中文更沒有意義。

7樓:winddxr

我覺得關鍵字沒什麼大必要,只要「」():;,支援中文就足夠了!開個玩笑。抱怨下混雜中文注釋時符號切換的問題。

這個東西很容易。兩個版本。

1。找乙個你喜歡的語言,翻譯成中文,甚至接近自然語言的中文,做個編譯器,編譯回原始語言。之後使用這個語言的編譯器。

2。LLVM或者方舟,你可以自己設計一門復合自己PL哲學的優雅或者說自嗨的語言。之後做乙個前端,編譯為IR。之後交給他們的後端。

雖然看起來都不高大上,但確實可行。不要試圖個人完成編譯器的後端優化,那不是乙個天才能完成的,也不是一兩個大神能完成的。除非就是個玩具。

實際方法1我覺得有很多的想想空間,更清晰易學且輸入快捷的中文語法,是PL的大神們不削的領域,但這對中文世界才有實際意義不是麼。而且你可以用很多個人能完成的先進技術和想法,讓他去逼近流程的自然語言。而這個被人輕視的過程,你依然能學會非常多的東西。

而輕視你的人,還在搬最低階的磚頭。

當你完成了方法1,你會發現目標語言的侷限不能滿足你對一門語言的理解和野望了(對,造新語言就是野望)。但通過簡陋的方法1你可能有了使用者粉絲和乙個志同道合的小團隊,你就可以用方法2完善你的語言了,雖然我覺得說1是套殼不公平,但你可擺脫鍵盤俠套殼的辱罵了。這個時候大概方舟也開源完了,你有兩個選擇了,多好。

這一路也許不高大上,但能走下來,追求鍵盤俠們的高大上,空降核聚變的話,人類還在石器時代呢。

實際中文程式設計不可笑,高階語言,高階語言,英文程式設計的語言對母語中文的人來說,始終需要浪費乙個時鐘週期。

假如設計一款基於中文識別符號的程式語言,各種術語應當如何命名呢?

大師兄 無論什麼程式語言都是設計者想用什麼就用什麼,沒有什麼統一的必要。什麼術語 概念都是有人創造出來,其他人覺得好就繼續用,覺得不好就創造新的。 我只有乙個想法 賦值跟 foreach 形式基本統一,賦值用某某以為某某,foreach 就用某某 乙個集合 依次以為某某。 Scheme族 defin...

能否設計一款程式設計字型,將單詞內字母渲染為非等寬,而整個單詞是等寬的?

rkko fira code 字型了解下,我一直在用。一些符號組合可以合成乙個字。比如 兩個字元,變成乙個數學式大於等於符號 某人 要解決這個問題,需要的不是字型,而是字型的渲染程式。你改了渲染程式,讓字串按空格等符號進行分隔,判斷為乙個整體的字串之間直接按字母縮減左右邊距就行。這樣一來,不管什麼字...

如果要你自己設計一款手機,你會怎麼設計?定價是多少?

日暮途遠 螢幕尺寸為5.99英吋,解析度FHD,配備845處理器,記憶體方面有6 64 6 128 8 256GB三個版本,3299元起售。 駿杰 Fh v7mini配置 螢幕 4,7英吋4K曲面屏 相機 前置雙2600萬美顏徠卡雙攝後置3600 2400 2000萬徠卡三攝 處理器 驍龍835平台...