Языки программирования .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. |