Как выглядит исходный код .net (C #, VB.net) на других (не английских) языках?

Как сказано в названии, мне просто немного любопытно ... Я видел, как некоторые европейские проекты с открытым исходным кодом публикуют исходный код, но все они синтаксически идентичны. А как насчет китайского, японского или других более сложных символьных языков?

ОБНОВЛЕНИЕ: я думаю, это немного вводило в заблуждение. Я спрашивал о «традиционных» языках .Net, таких как C #, VB.net, возможно, даже F # и т. Д. Теперь я понимаю, что существуют новые языки .Net, которые создаются в первую очередь для поддержки письменных и устных языков, отличных от английского, и что они выглядят очень непохожими на аналогичный источник, написанный на VB.net и C #.

Я постараюсь проголосовать за несколько человек и отметить ответ на задуманный мной вопрос как ответ.


person fdfrye    schedule 23.09.2010    source источник
comment
См. Также en.wikipedia.org/wiki/Non-English-based_programming_languages ​​   -  person Brian    schedule 23.09.2010
comment
возможный дубликат Используете ли вы другой язык вместо английского?   -  person Brian    schedule 23.09.2010
comment
См. Также stackoverflow.com/questions/202723/   -  person Brian    schedule 23.09.2010


Ответы (3)


Ключевые слова на английском языке, поэтому большая часть кода одинакова на любом языке. Некоторые люди используют местные языки для имен идентификаторов, другие также сохраняют имена на английском языке.

Вот пример того, как будет выглядеть код со шведскими идентификаторами:

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";
    }
  }

}
person Guffa    schedule 23.09.2010
comment
Интересно наблюдать, как раскраска синтаксиса сбивает с толку диакритические знаки. - person Michael Petrotta; 23.09.2010
comment
Согласился Майкл. Кроме того, Гуффа, я полагаю, вы обычно тоже пишете свои исходные комментарии на своем родном языке? - person fdfrye; 23.09.2010
comment
@fdfrye: Обычно я использую только английские идентификаторы и комментарии, но кое-где есть несколько комментариев на шведском. - person Guffa; 23.09.2010
comment
@Michael Petrotta: Да, я тоже это заметил. Языки .NET немного необычны в том смысле, что они фактически позволяют использовать диакритические знаки в идентификаторах. Многие языки этого не делают, что затрудняет использование местных языков для идентификаторов. - person Guffa; 23.09.2010
comment
Tänk på att nationalitetsord alltid inleds med versal på engelska. T.ex. гетер дет Шведский, инте швед. - person Andreas Rejbrand; 23.09.2010

Это, конечно, зависит от языка.

Синтаксис и правила отдельного языка не изменятся. Например, C # по-прежнему будет использовать те же символы и ключевые слова, независимо от того, какой язык разрабатывается. Однако в именах переменных и т. П. Разрешено использовать (почти) любые символы Юникода, что означает, что люди, говорящие на других языках, могут использовать имена, отличные от английского.

При этом ничто не мешает людям создать новый язык .NET с идентификаторами, которые не являются английскими по своей природе - примеры включают Lexico, язык программирования хинди и Farsi.NET.

Вот пример кода с сайта Lexico:

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 }
person Reed Copsey    schedule 23.09.2010

Синтаксически идентичен. Язык программирования должен быть синтаксически универсальным.

person Justin Niessner    schedule 23.09.2010
comment
При этом он не указывал никакого конкретного языка. Я только что добавил в свой ответ пару примеров очень разных языков, ориентированных на .NET;) - person Reed Copsey; 23.09.2010
comment
@Reed Copsey - Но каждый из них является новым языком сам по себе со своим собственным синтаксисом (который, очевидно, выглядит совсем по-другому), правильно? - person Justin Niessner; 23.09.2010
comment
@Justin: Но они все еще используются для источника .net ... Если вы пишете код на C # или VB.NET, он, конечно же, будет использовать тот же синтаксис :) - person Reed Copsey; 23.09.2010
comment
@ Рид Копси - Да! Я просто перечитал вопрос и увидел ту часть, которую пропустил. Почему-то мне показалось, что я увидел там C #. Но в этом случае не будет ли .NET Source считаться IL (и, в этом случае, будет одинаковым для всех разговорных языков)? - person Justin Niessner; 23.09.2010
comment
Хорошая точка зрения. Хотя в двоичной форме IL на всех языках выглядит тарабарщиной;) - person Reed Copsey; 23.09.2010
comment
@ Рид Копси - Но, по крайней мере, эта тарабарщина постоянна, независимо от того, на каком языке вы говорите. Ха-ха. - person Justin Niessner; 23.09.2010