Используется ли C # где-либо кроме программирования .NET? - PullRequest
14 голосов
/ 01 февраля 2010

Насколько я понимаю, C #, хотя и создан Microsoft, является языком программирования, который может использоваться или реализовываться для других целей, помимо программирования .NET. Например, я мог бы создать компилятор для C #, предназначенный для родного x86 или других процессоров или даже JVM. Мое понимание неверно? Кто-нибудь знает, используется ли C # для чего-либо, кроме .NET?

Ответы [ 9 ]

6 голосов
/ 01 февраля 2010

C # используется для экспериментальной операционной системы под названием ' Singularity ', которая записывается на управляемом уровне с нуля.Интересный проект для просмотра!

Редактировать: Спасибо Йорг W Mittag за его комментарий - Гелиос на самом деле является модифицированной формой Singularity для поддержкиЯдра спутников, цитирую статью, которую я сейчас читаю ' Helios - операционная система, предназначенная для упрощения задачи написания, развертывания и настройки приложений для гетерогенных платформ.Helios представляет сателлитные ядра, которые экспортируют единый унифицированный набор абстракций ОС для ЦП с разной архитектурой и характеристиками производительности.Satellite Kernels позволяет разработчику писать приложения на основе знакомых API-интерфейсов и абстракций операционной системы. '... интересно ...

Надеюсь, это поможет, С уважением, Том.

2 голосов
/ 01 февраля 2010

Сам C # - это спецификация, указанная в ECMA , которая «определяет форму и устанавливает интерпретацию программ, написанных на языке программирования C #». как CLR . Самая популярная реализация этого в настоящее время предоставляется Microsoft, которая является C # .net, которую вы знаете. C # и CLR являются открытыми стандартами, что означает, что каждый может реализовать их самостоятельно, что означает формирование mono, компилятора C # для mac / linux. Сравните это с Java, единственная реализация которого обеспечивается Sun. Это не открытый стандарт, поэтому вы не можете создавать свои собственные реализации.

из википедии :

Mono"Кроссплатформенная реализация с открытым исходным кодом, реализация C # и CLR, двоично совместимый с Microsoft.NET"

DotGNU"является частью проекта GNU, целью которого является предоставление бесплатной замены программного обеспечения для Microsoft .NET Framework"

Dot Net Anywhere - это интерпретатор .net CIL для нацеливания на встроенные системы.

2 голосов
/ 01 февраля 2010

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

Я не знаю других применений, кроме Mono, как сказал jrcs3, но, надеюсь, Eric Lippert включится и даст вам точку зрения компилятора на C #

1 голос
/ 08 февраля 2010

Обратите внимание, что Unity 3D также позволяет " C # Scripts " и компилируется для Mac, Windows, Web, Wii и iPhone (и, следовательно, iPad).

1 голос
/ 01 февраля 2010

Еще одна область использования - для разработки приложений для iPhone (и теперь я верю в iPad) с помощью MonoTouch.

Что такое MonoTouch?

MonoTouch позволяет разработчикам создавать приложения на основе C # и .NET, которые работают на устройствах Apple iPhone и Apple iPod Touch, используя API-интерфейсы iPhone и повторно используя как код, так и библиотеки, созданные для .NET, а также существующие навыки.

Грубо говоря, это выглядит так:

MonoTouch -> MonoDevelop / C # -> написать приложение для iPhone -> скомпилировано с собственным кодом -> приложение для iPhone.

Соответствующие ссылки:

1 голос
/ 01 февраля 2010

Насколько мне известно, все существующие в настоящее время реализации C # собираются в CIL и работают в .NET CLR или в совместимой среде, и единственной альтернативой .NET CLR, о которой я знаю, является Mono.

Другими словами, все текущие версии сборки C # для запуска в .NET или Mono.

.NET и Mono используют одни и те же «двоичные файлы», поэтому практически все текущие компиляторы C # имеют только одну цель.

0 голосов
/ 01 февраля 2010

Вы можете использовать его в приложениях iPod, если используете MonoTouch.

0 голосов
/ 01 февраля 2010

Действительно, есть инструменты для преобразования сборки .NET в автономный исполняемый файл или библиотеку, так что вам не нужны ваши клиенты, чтобы иметь .NET Framework. Это также дополнительно защищает ваш код от обратного инжиниринга в некоторой степени - вы не можете использовать Reflector, чтобы увидеть исходный код .NET в собственном двоичном файле.

См., Например, Remotesoft Salamander .NET Protector .

Но это не совсем C # -> native; Salamander конвертирует MSIL в собственный код.

С другой стороны, существует как минимум один академический проект по созданию собственного компилятора C # -> с использованием LLVM, который называется LLVM #.

0 голосов
/ 01 февраля 2010

Вы можете скомпилировать программу на C # на Mono . Но это, вероятно, не считается.

Mono - это альтернативная реализация Common Language Infrastructure (CLI), которая работает в Linux и различных других операционных системах. Как упоминалось в других местах, и C #, и CLI являются стандартами ECMA и могут быть выполнены любым, кто захочет это сделать.

Rotor - еще одна реализация, отличная от .NET.

...