2010-09-23 68 views
1

正如標題所說,我只是有點好奇......我已經看到一些歐洲的開源項目發佈了源代碼,但它在語法上完全相同。中文或日文或其他更復雜的基於字符的語言如何?.net源(C#,VB.net)在其他(非英語)語言中看起來如何?

更新:這是有點誤導我猜。我問的是C#,VB.net,甚至F#等「傳統」.Net語言。我現在明白,有一些新的.Net語言主要是爲支持非英語書面和口語語言而創建的,他們與用VB.net和C#編寫的類似源代碼很不一樣。

我會盡力爲少數人投票,並將我的預期問題的答案標記爲答案。

+1

'對於モウ= 1〜モ.Count'? – 2010-09-23 19:30:58

+0

另請參閱http://en.wikipedia.org/wiki/Non-English-based_programming_languages – Brian 2010-09-23 19:33:00

+0

可能重複的[你使用另一種語言,而不是英語?](http://stackoverflow.com/questions/250824/do-你用另一種語言,而不是英語) – Brian 2010-09-23 19:34:05

回答

4

關鍵字是英文的,所以大部分的代碼是任何語言相同。有些人使用本地語言來標識名稱,其他人使用英語也使用英語。

下面是一些代碼會是什麼樣子與瑞典標識符的示例:

public class StenSaxPåse { 

    public enum Värde { Papper = 0, Sten = 1, Sax = 2 } 

    private Värde _värde; 

    public StenSaxPåse(Random slump) { 
    _värde = (Värde)slump.Next(3); 
    } 

    public bool SammaSom(StenSaxPåse andra) { 
    return _värde == andra._värde; 
    } 

    public bool Slår(StenSaxPåse andra) { 
    return 
     (_värde == Värde.Papper && andra._värde == Värde.Sten) || 
     (_värde == Värde.Sten && andra._värde == Värde.Sax) || 
     (_värde == Värde.Sax && andra._värde == Värde.Papper); 
    } 

    public override string ToString() { 
    switch (_värde) { 
     case Värde.Papper: return "PAPPER"; 
     case Värde.Sten: return "STEN"; 
     default: return "SAX"; 
    } 
    } 

} 
+0

有趣的是觀看語法colorizer得到所有困惑的變音符號。 – 2010-09-23 19:42:01

+0

同意邁克爾。還有Guffa,我假設你通常會用你的母語寫你的源語言? – fdfrye 2010-09-23 19:43:48

+0

@fdfrye:我通常只使用英文標識符和評論,但瑞典語在這裏和那裏都有一些評論。 – Guffa 2010-09-23 19:50:04

3

句法相同。編程語言在語法上應該是通用的。

+0

這就是說 - 他沒有指定任何具體的語言。我剛剛添加了幾個針對.NET的非常不同的外觀語言的示例以供我回答;) – 2010-09-23 19:32:09

+0

@Reed Copsey - 但這些語言本身都是一種新語言,擁有自己的語法(顯然, )正確嗎? – 2010-09-23 19:42:51

+0

@Justin:但那些仍然用於「.net源碼」...如果你用C#或VB.NET編寫代碼,它當然會使用相同的語法:) – 2010-09-23 19:43:44

4

這當然取決於語言。

單個語言的語法和規則不會改變。例如,無論開發哪種語言,C#仍然會使用相同的字符和關鍵字。但是,變量名稱等允許使用(幾乎)任何Unicode字符,這意味着其他語言的用戶可以使用非英文名稱。這就是說,沒有什麼能夠阻止人們使用本質上不是英語的標識符來製作新的.NET語言 - 例子包括LexicoHindi Programming LanguageFarsi.NET

下面是來自Lexico site一些示例代碼:

incluya "System.Windows.Forms" 
clase ventana derivada_de "System.Windows.Forms.Form" { publicos: mensajes: ventana copie "Este es el título de mi primera ventana" en ventana.text }