當一種語言旨在用於人類輸入,其定義是儘可能多的
- 事項添加語法限制,以確保明確且容易解析
- 去除/彎曲的語法,以確保語言感覺直觀,「自然」,以適應預期的人類觀衆。
滿足第二要求是比第一次更難,需要洞察語言
哪種類型的鍵盤/輸入設備的可用的
- 預期使用情況?在允許的字符中是否有一些字符難以製作或在顯示屏上看到?
哪些令牌/表達式會被頻繁使用,哪些只會偶爾需要? 是否用戶經常輸入短,即席代碼片段,或意味着該計劃被重用和修改在長期內
...等 目標受衆的
- 背景/文化
哪些常見的做法/成語從其他常規(和普通的自然語言)語言可以或應該重用,如果可能的話?
應該有人贊成一種簡潔而含蓄的風格,或者更明確,但更冗長的風格?
...等
基本上,這是很難做出一個語言的語法的建議,不使用目的和用戶把握好。
不過,我想建議的日期格式問題如下:
使用日期值完全另一種格式;一個對用戶而言「足夠自然」,但足夠與正規語法描述的區別。
例如,一個使用月份的3個字母縮寫(下行DSL與英語或其他語言聯繫在一起,但也有優勢,對於人類而言,這是對白天和月份的模糊性被刪除)。姑且:
dd-mmm-yyyy (may seem unnatural in cultures where the prevailing date order
starts with the month maybe yyyy-mmm-dd then ?)
mmm-dd-yyyy (better for the above mentioned cultures)
ddmmmyyyy (avoid the dashes, but impose leading zeros)
MnnDnnYyyyy (using "M", "D" and "Y" (or others) as explicit prefixes; now,
this is completely culture neutral, but maybe a bit awkward...)
反正只是想法......適用性將提到,和與語法的其他人/文化因素而有所不同。例如,上述可能意味着變量被明確地標記(這是許多語言使用$前綴的原因之一),以避免與[奇怪但可能的]變量標識符可能的衝突。
簡而言之,這個想法是用一個特殊的字符前綴(它可能會碰撞使用這些字符的數學表達式和其他表達式),通過使12個月的標籤足夠好的判別器來解析器。
來源
2010-03-17 15:05:57
mjv
這取決於你想要做更多的事情,爲不常見的項目留下預先修復,例如,如果日期更常用= 1/2/2010來表示分割。 – Hogan 2010-03-18 19:36:59