Языки программирования .NET (Языки с поддержкой CLI или CLI-языки) — компьютерные языки программирования, используемые для создания библиотек и программ, удовлетворяющих требованиям Common Language Infrastructure. За исключением некоторых серьёзных оговорок, большинство CLI-языков целиком компилируются в Common Intermediate Language (CIL), промежуточный язык, который может быть оттранслирован непосредственно в машинный код при помощи виртуальной машины Common Language Runtime (CLR), являющуюся частью Microsoft .NET Framework, Mono и Portable.NET.
Во время выполнения программы в среде CLR её CIL-код компилируется и кэшируется на лету в машинный код, соответствующий архитектуре, на которой выполняется программа. Этот последний этап может быть принудительно сокращен, а кэширование может выполняться на предыдущем этапе при помощи «опережающего» (англ. ahead of time) компилятора, такого как например, ngen.exe от Microsoft или ключа «-aot» в Mono.
Содержание |
Представленный ниже список языков упорядочен относительно алфавитного написания названий языков в их латинографическом написании.
Язык | Год[1] | Предок | Разработчик | Сайты | Краткая информация | |
---|---|---|---|---|---|---|
#Smalltalk | 2003 | Smalltalk | Джон Брент Дон Робертс |
www.refactory.com | Компилятор позволяет использовать классы обычных .NET-программ. Фактически, большинство Smalltalk-классов стандарта ANSI, поддерживаемых #Smalltalk, являются лишь обёртками вокруг стандартных .NET-классов. | |
A# | 2005 | Ада | Мартин Карлайл | martincarlisle.com | Свободно распространяется Департаментом Информатики при Военно-воздушной академии США. | |
Active Oberon | Оберон | oberon.ethz.ch | ||||
asm80386 | 2001 | ASP язык ассемблера |
Бьярке Виксое | www.viksoe.dk | При помощи компилятора «ASP.NET: ASM to IL» (ASMIL) компилируется язык ассемблера для Intel 80386 в IL (затем — в ASP.NET). | |
AsmL | Microsoft Research | research.microsoft.com | ||||
AVR (ASNA Visual RPG) | 2001 | RPG/Caviar | ASNA | www.asna.com | AVR for .NET представляет собой, по сути, компилятор языка RPG для .NET-платформы. AVR позволяет обновлять существующие RPG-прриложения, разрабатывать веб-сервисы с поддержкой сервис-ориентированной архитектуры. | |
B# | 2009 | Си, C++, Java | Майкл де Чемплейн | bsharplanguage.org | Сильно урезанная версия языка C# (иногда описывается как гибрид языков C++ и Java), спроектированная специально для встраиваемых программируемых систем. | |
BETA.Net | 2004 | BETA | Кристен Нюгорд Оле Леманн Мадсен Биргер Мёллер-Педерсен Бент Бруун Кристенсен |
daimi.au.dk | Строго типизированный объектно-ориентированный язык с поддержкой функционального и процедурного программирования. Кроме .NET, реализована поддержка JVM. | |
Boo | 2003 | Python, C# | Родриго Б. де Оливейра | boo.codehaus.org | CLI-язык со статической типизацией, унаследовавший идеи языка Python. | |
Brainfuck | Урбан Мюллер | |||||
C++/CLI | 2005 | C++ | Microsoft | Версия языка C++, включающая в себя раширения для поддержки объектов CLR. Реализация существует только для платформы .NET Framework. Код может компилироваться в основанный на CIL управляемый код либо смешанный код, объединяющий как управляемый код, так и естественный код. | ||
C# (ECMA 334)[2] | 2000[3] | C++ | Андерс Хейлсберг | Самый широко используемый CLI-язык, схож с языками Java, Delphi и C++. Реализации языка поддерживаются платформами .NET Framework, Portable.NET и Mono. | ||
Cω | 2005 | C# | Microsoft Research | research.microsoft.com | Модификация C#, основной целью которой было упрощения доступа к хранилищам данных типа баз данных и XML-файлов. Cω повлиял на технологию LINQ. | |
Cat (англ.) | Joy | Кристофер Диггинс | cat-language.com | Стэк-ориентированный язык программирования с минималистичным синтаксисом. | ||
CFML | 2002 | HTML | Джереми Аллер Алан Вильямсон |
newatlanta.com | Поддержка .NET возможна при помощи движка BlueDragon | |
Chrome | Паскаль | RemObjects Software | В ходе своего развития эволюционировал в Oxygene. | |||
CIL/MSIL/IL | 1999 | языки ассемблера | Microsoft | Объектно-ориентированный ассемблер-подобный низкоуровневый промежуточный язык, в который компилируются все программы, написанные на .NET-языках высокого уровня. | ||
Clarion# | 2009 | Clarion | SoftVelocity | softvelocity.com | Язык получил обозначение Clarion#, тогда как IDE для него обозначается как Clarion.NET. Заявлена поддержка WinForms, Web Forms, Compact Forms, возможностей платформы .NET Framework 2.0 с поддержкой 64-битных платформ[4]. | |
Clojure | 2009 | Лисп | Рич Хикки | Clojure.org github.com |
язык программирования общего назначения с поддержкой разработки в интерактивном режиме, поощряющий функциональное программирование, и упрощающий поддержку многопоточности. | |
Кобол | Может компилироваться под .NET при помощи среды разработки Net Express. | |||||
Cobra | Cobra Language LLC | CLI-язык, подерживающий как статическую типизацию, так и динамическую. Есть поддержка контрактного программирования и встроенное модульное тестирование. | ||||
Common Larceny | 2004 | Scheme | Райан Кулпеппер Джо Маршалл Дейл Вейланкурт Маттиас Феллейсен |
larcenists.org | Поддержка стандартов ERR5RS и R6RS. Может взаимдействовать с другими CLR-языками благодаря поддержке т. н. JavaDot-нотации языка JScheme, которая реализуется при помощи «отражения» (reflection), создавая интерфейсы Scheme. | |
cscc | Си | |||||
CULE.NET | Visual Objects/XBase | Род Да Сильва | SoftwarePerspectives | |||
Delphi | Паскаль | CodeGear | Delphi.NET Delphi Prism |
|||
Delta Forth .NET | Форт | Dataman | www.dataman.ro | |||
DotLisp | 2003 | Лисп | Рич Хикки | dotlisp.sourceforge.net | Лисп-подобный язык с глубокой интеграцией в платформу .NET[5] | |
Dyalog for Windows | 1999[6] | АПЛ | Гитте Кристенсен Мортен Кромберг (Dyalog Ltd.) |
www.dyalog.com stores.lulu.com/dyalog |
Язык объединил традиционные синтаксисы как АПЛ, так и стандартный синтаксис .NET-языков. | |
dylan.NET | Дилан Борг dylan.NET Team |
Launchpad.net, Gitorious.org | Язык с поддержкой среды CLR, схожий с MSIL. Работает на платформе .NET, планируется добавить поддержку Mono для обеспечения работы на всех платформах этого проекта. | |||
Eiffel.NET | 12 июля 2000[7] | Eiffel (ECMA TC39-TG4) | Interactive Software Engineering, Microsoft | msdn.microsoft.com | [8] | |
EiffelEnvision | Eiffel (ECMA TC39-TG4) | |||||
eXtensible C# (XC#) | C# | Resolvecorp | ||||
F# | OCaml | Дон Сайм (Microsoft Research) | Мультипарадигмальный CLI-язык, поддерживающий как функциональную, так и императивную парадигмы объектно-ориентированного программирования. Является вариантом языка ML и обладает большой совместимостью с OCaml. Компилятор поддерживается корпорацией Microsoft. | |||
Фантом | Брайан Фрэнк Энди Фрэнк |
Язык, который может компилироваться как для .NET, так и для JVM. | ||||
FOIL | Лисп | |||||
Fortran .NET | Фортран | Lahey Computer Systems, Inc Сэлфорд |
www.lahey.com | |||
Gardens Point Component Pascal (GPCP) | Компонентный Паскаль | QUT Distributed Systems Technology Centre Microsoft |
plas.fit.qut.edu.au | Компилируется под .NET при помощи компилятора gpcp. | ||
Gardens Point Modula (GPM) | Модула-2 | Programming Languages and Systems Group (Квинслендский Технологический Университет в Брисбене) | plas.fit.qut.edu.au | Семейство компиляторов GPM было создано в ходе проекта по созданию единой реализации языка Модула-2, способной работать на различных ОС. | ||
GrGen.NET | 2007[9] | GrGen | Университет Карлсруэ IPD |
www.grgen.net | CLI-язык для перепостроения графов | |
Haskell | VHS | |||||
IKVM.NET | 2002 | Java, C# | Йеройен Фрийтерс (Sumatra Software) | www.ikvm.net | ||
IoNET (Io for .NET) | 2008[10] | Io | Олег Андреев Семён Новиков Олег Смирнов Максим Сохатский |
synrc.com | Прототипный язык программирования, в котором упразднено понятие класса. Все экземпляры создаются в системе механизмом клонирования от первого созданного объекта в системе, который называют прототипом. Прототипы находятся в общесистемной таблице прототипов[11]. | |
IronJS | JavaScript | Фредрик Хольмстрём | ||||
IronLisp | Лисп | Был объявлен устаревшим в пользу IronScheme | ||||
IronPython | Python | ironpython.net | CLI-версия языка, созданная с поддержкой DLR | |||
IronRuby | Ruby | ironruby.net | CLI-версия языка, созданная с поддержкой DLR | |||
IronScheme | Scheme | R6RS-совместимая реализация языка Scheme, построенная на основе DLR. | ||||
J# | Java | Microsoft | Компилятор был разработан корпорацией Microsoft. Она же объявила о прекращении поддержки языка. | |||
Ja.NET | Java | www.janetdev.org | Реализация Java 5 JDK (среда исполнения и инструменты разработки Java) с открытым исходным кодом на .NET. | |||
JNBridge | Java | www.jnbridge.com | ||||
JScript .NET | JavaScript | Microsoft | CLI-реализация стандарта ECMAScript версии 3, совместимая с JScript. Содержит расширения для поддержки статической типизации. Объявлен устаревшим в пользу «Managed JScript». | |||
L# | Лисп | Роб Блакуэлл | lsharp.org | |||
lcc | lcc | |||||
Lego.NET | LEGO Mindstorms | |||||
leXico | ||||||
Лого | ||||||
LOLCode.NET | LOLCODE | code.google.com | ||||
Lua.NET | lua.inf.puc-rio.br | |||||
M# | ||||||
Managed C++ | C++ | Microsoft | Версия языка C++, предназначенная для исполнения в среде CLR. Разработка и поддержка отменены в пользу C++/CLI. | |||
Managed JScript | JavaScript | Microsoft | CLI-реализация языка программирования JScript, построенная на Dynamic Language Runtime. Соответствует ECMAScript третьей версии. | |||
Metaphor | C# | sky.fit.qut.edu.au | ||||
Mercury on .NET | Mercury | cs.mu.oz.au | ||||
MixNet | MIXAL | |||||
Mondrian | ||||||
Multiprocessor C# (MC#) | C# | u.pereslavl.ru | ||||
Nemerle | nemerle.org | Мульти-парадигменный язык программирования, похожий на C#, OCaml и Лисп. | ||||
NetCOBOL | Кобол | Fujitsu | netcobol.com | |||
Ook# | Ook! | bluesorcerer.net | ||||
Oxygene | Object Pascal | RemObjects Software | ||||
OxygenScheme | Scheme | sourceforge.net | ||||
Oz | ||||||
P# | Пролог | Джонатан Дж. Кук | dcs.ed.ac.uk | |||
Pan# | ||||||
Паскаль | TMT | |||||
Perl.NET | Perl | |||||
Perl# | Perl | Джошуа Тауберер | razor.occams.info | |||
Phalanger | PHP | CodePlex | Реализация PHP с расширениями для поддержки ASP.NET. | |||
PHP Sharp | 2003 | PHP | sourceforge.net | |||
PHP4Mono | 2006 | PHP | sourceforge.net | |||
Phrogram | Kids Programming Language (KPL) | phrogram.com | Масштабируемый CLI-язык для новичков и опытных пользователей | |||
PL/IL | PL/I | synrc.com | ||||
Polyphonic C# | C# | Microsoft Research | research.microsoft.com | |||
PowerBuilder | Sybase | Среда разработки и язык программирования, поддерживающий CLI начиная с версии 11.1. | ||||
PowerShell | Shell-команды | Microsoft | Объектно-ориентированная оболочка операционной системы с интерфейсом командной строки. PowerShell может динамически загружать сборки .NET, которые были написаны на любом из CLI-языков. PowerShell использует уникальный скриптовый синтаксис и широко использует фигурные скобки, наподобие языков с C-подобным синтаксисом. | |||
Prolog.NET | Пролог | Али М. Ходрож | prolog.hodroj.net | |||
QuickBasic for .NET | Basic | |||||
RDNZL | Лисп | |||||
Ruby.NET | Ruby | |||||
Ruby/.NET Bridge | Ruby | |||||
RubyCLR | Ruby | |||||
S# | Smalltalk | |||||
Scala | scala-lang.org | |||||
Scheme.NET | Лисп/Scheme | |||||
Script.NET / S# | JavaScript | Петро Процык | protsyk.com | свободный скриптовый язык с JavaScript-подобным синтаксисом, разработанный сотрудником Microsoft Петром Процыком | ||
sharp.scheme (#S) | 2008 | C# Scheme |
archvilledevel | sharpscheme.berlios.de developer.berlios.de |
Порт языка JScheme, разработанного Питером Норвигом, на платформу .NET. Проект закончился неудачей (компилятор так и не был выпущен). | |
Sing# | 2005 | C# | Microsoft Research | research.microsoft.com | Язык программирования с поддержкой параллелизма, является расширением языка программирования Spec#, который, в свою очередь, является расширением языка C#. Был создан для разработки операционной системы Singularity. | |
Smalltalk and .NET | Smalltalk | |||||
sml.net | Standard ML | cl.cam.ac.uk | ||||
Spec# | 2004 | C#, Eiffel | Microsoft Research | research.microsoft.com specsharp.codeplex.com |
Расширение языка C# путем добавления поддержки контрактного программирования, предусловий, постусловий и объектных инвариантов. | |
Tachy | Scheme (R5RS) | Кен Роулингс | kenrawlings.com | |||
TickleSharp | Tcl/Tk | |||||
VB.NET[12] | Visual Basic | Microsoft | Полностью перепроектированная объектно-ориентированная версия Visual Basic. Реализована на .NET Framework и Mono. | |||
VBx | Visual Basic | Microsoft | динамическая версия of Visual Basic .NET, построенная на Dynamic Language Runtime. Предназначена для замены VBScript и VBA. | |||
Visual APL | 2005[13] | АПЛ | APLNow, LLC (APL2000) | www.apl2000.com www.aplnext.com www.visualapl.com |
Изначально разрабатывался под VS2005, впоследствии была выпущена версия для VS2008. Язык унаследовал синтаксис как языка АПЛ, так и заимствовал у ECMA-стандарта языка C#. Поддерживает объектно-ориентированный подход, интерактивную интерпретацию исходного кода, статическую компиляцию, позволяющую создавать динамические библиотеки (dll) и исполнимые файлы (exe), вызываемые из других .NET-языков[14]. | |
Visual COBOL | Кобол | Micro Focus | microfocus.com | |||
Vulcan.NET | Visual Objects/XBase | govulcan.net | ||||
X# | Язык ассемблера | CLI-реализация специального языка ассемблера, разработанного для операционной системы Cosmos. X# также был кодовым именем для XML-возможностей Cω. | ||||
Zonnon | 2003 | Паскаль, Модула-2 Оберон | Юрг Гуткнехт | zonnon.ethz.ch software.unn.ac.ru |
Наследник языка Модула-2, расширенный средствами сборки мусора, объектного программирования, параллельного программирования (мультипрограммирования), переопределения операторов и обработки исключений. Изначально создавался для платформы .NET. |