2010-09-23 72 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 }