正如标题所说,我只是有点好奇......我已经看到一些欧洲开源项目发布源代码,但它在语法上完全相同。中文或日文或其他更复杂的基于字符的语言怎么样?
更新:我猜这有点误导。我问的是像C#,VB.net这样的“传统”.Net语言,甚至可能是F#等。我现在明白,有些新的.Net语言正在创建,主要是为了支持非英语书面和口语,而且他们看起来与用VB.net和C#编写的类似来源非常不同。
我会尝试向几个人投票,并将我想要的问题的答案标记为答案。
答案 0 :(得分:4)
当然,这取决于语言。
单个语言的语法和规则不会改变。例如,无论使用何种语言,C#仍将使用相同的字符和关键字。但是,允许变量名等使用(几乎)任何unicode字符,这意味着其他语言的人可以使用非英语命名。
话虽如此,没有什么能阻止人们使用非英语标识符制作新的.NET语言 - 示例包括Lexico,Hindi Programming Language和Farsi.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 }
答案 1 :(得分: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";
}
}
}
答案 2 :(得分:3)
语法完全相同。编程语言应该在语法上是通用的。