2012-12-08 74 views
0

所以我最近決定,爲了一個有趣的小寵物編程項目,我會設計我自己的語言並圍繞它編譯工具(編譯器,autodoc,autolint)。到目前爲止,我仍然處在語言設計階段,並且遇到了一個我堅持的話題:關鍵字是否應該放在上面?通過關鍵字,我並不是指構建在類型或函數中,我的意思是像「FOR」,「IF」,「ELSE」等詞語。我使用它的邏輯是,識別代碼要快得多結構和語法,特別是如果語法突出顯示不可用(有些地方仍然不是,例如打印源或網站)。大部分時間都花在閱讀代碼上,所以增加代碼閱讀的效率是有意義的,代價是不得不按照每個關鍵字鎖定兩次大寫字母,或者在輸入時按住Shift鍵。這裏每個人的意見是什麼?語言設計 - 大寫關鍵字

另外,我知道這只是一個愚蠢的寵物項目,但我希望它做得對,我是一個完美主義者。而且我還計劃自己使用它,以便繼續進行優化/開發(當然是學習目的)。所以我不會做出決定,我會後悔或不得不打破我以前的代碼甚至編譯器。

預先感謝您。

編輯:而且,因爲它只用於像這樣的主要關鍵字,它也可以避免閱讀大寫的認知減速,並保持代碼從「吱吱」到很多。

+2

如果你強制所有的關鍵字是大寫的,那麼什麼是阻止你的程序員把所有的變量都設爲大寫字母,從而打敗你想讓關鍵字脫穎而出的願望? –

+0

編譯器不會讓你破壞某些語法規則。它會尖叫「糟糕的程序員」,通過電腦到達,並給你打氣。這有點多,但我認爲它會得到重點! –

+0

其實在使事情突出的方面,沒有太多值得擔心的事情;我們生活在一個語法高亮的世界裏。另外,你的語言應該支持Unicode;你甚至沒有案例概念的來自字母表的信件計劃是什麼? –

回答

2

我個人認爲這是一個錯誤。我不太可能使用一種能讓我在代碼中輸入時懸停在CAPSLOCK鍵上的語言,或者迫使我按住SHIFT鍵的次數超過我的需要。

這可能是我留給編輯或IDE的東西,如果它被認爲是必需的。但是,說實話,有彩色打印機彩色HTML標記標籤,所以我不相信基於你的問題內容的必要性。

+0

+1在Modula-2中進行編程已經有好幾年了,我同意! –

+0

然後解決它!任何其他建議你必須給語法/語法明智? –

+0

是的,要麼是變量名稱是only_lowercase_with_underscores,要麼是MixedCaseWithNoUnderscores - 這應該會減少宗教戰爭:-) – paxdiablo

2

Oberon編程語言以這種方式工作。我發現它是非常可讀的,但手動輸入有點令人不快。令人討厭的是,我爲編輯器中的所有控件結構設置了自動完成模板,但在此之後,我對此感到滿意。

我說去吧,如果你喜歡它的樣子。很多人不會喜歡它,但也許少數人會分享你的愛好並且喜歡它。

BTW,維爾特博士(奧伯倫的創造者,Modula-2的,帕斯卡)對建築物的編譯器相當不錯的偉大的書在他的主頁:

所有的代碼編寫在Oberon,所以你可以用你談論的風格看看語言是什麼樣子的。

0

以下是我能想到的優點。第2點和第3點假定程序員只使用較低或混合大小寫的標識符。

  1. 在閱讀源代碼時,立即清除什麼是關鍵字,什麼不是。

  2. 程序員可以使用任何名稱作爲標識符。

  3. 可以在不破壞現有程序的情況下將新關鍵字添加到語言中。

  4. 當用散文書寫關鍵字時,不需要額外的格式,如粗體或打字機字體。此外,在語言語法中,不需要額外的引號將關鍵字與非終端符號分開。

下面是我能想到的缺點:

  1. 大寫字更難鍵入(它們也是較慢的手工編寫)。

  2. 當小寫關鍵字是標準時,有很多大寫字母的源代碼在這些日子裏可能看起來並不熟悉。

第一個缺點可以部分地通過使用「智能」編輯器來克服,該編輯器在鍵入時將一些小寫字母轉換爲大寫字母。