0
自然語言和編程語言在語法中有什麼區別?自然語言和編程語言在語法環境中有什麼區別?
自然語言和編程語言在語法中有什麼區別?自然語言和編程語言在語法環境中有什麼區別?
自然語言相當靈活。
此外,自然語言通常無法通過上下文無關語法完全描述。例如,在英語中,「分別」從句(連同其他一些結構)混淆了語法。當然,neither C# nor Java are context-free either(雖然this article聲稱有早期C#的上下文無關語法),但編程語言更可能有上下文無關文法。
最大的不同在於,自然語言的語法都允許歧義,而編程語言經過精心設計以避免歧義。考慮以下聲明:
凱文看到約翰望遠鏡在公園裏。
誰在使用望遠鏡 - 約翰還是凱文?他們中哪些人在公園裏 - 凱文,約翰還是望遠鏡?一些解釋:
編程語言精心設計,以避免你能寫下這樣的句子。