Momotik.ru

Народный проект

Языки программирования .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.
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-возможностей .
Zonnon 2003 Паскаль, Модула-2 Оберон Юрг Гуткнехт zonnon.ethz.ch
software.unn.ac.ru
Наследник языка Модула-2, расширенный средствами сборки мусора, объектного программирования, параллельного программирования (мультипрограммирования), переопределения операторов и обработки исключений. Изначально создавался для платформы .NET.

См. также

Примечания

  1. Имеется в виду год начала поддержки платформы .NET
  2. Эндрю Троелсен Язык программирования С# 2008 и платформа .NET 3.5 = Pro C# 2008 and the .NET platform / Под редакцией Ю.Н. Артеменко. — 4-е издание. — М.: Вильямс, 2010. — 1344 с. — ISBN 978-5-8459-1589-4
  3. Microsoft готовит язык с ароматом Java  (рус.)
  4. Clarion.Net Highlights  (англ.)
  5. DotLisp - A Lisp Dialect for .NET  (англ.). weblogs.asp.net (29 сентября 2003 года). Проверено 14 декабря 2010.
  6. Introduction  (англ.)
  7. Eiffel for .NET: The power of Eiffel for the Microsoft .NET framework
  8. Eiffel for .NET: An Introduction
  9. History  (англ.)
  10. Io on .NET?  (англ.)
  11. Synrc Io Language CLR. Введение  (рус.)
  12. Билл Ивьен, Джейсон Берес Visual Basic .NET. Библия пользователя = Visual Basic .NET. Bible / Под редакцией А. В. Ковалевского. — М.: Вильямс, 2002. — 1024 с. — ISBN 5-8459-0395-5
  13. APLNow LLC and Cognos Announce Asset Purchase  (англ.)
  14. What is Visual APL?  (англ.)

Ссылки

  • .NET Powered: List of .NET languages  (англ.)
  • .NET Language Sites  (англ.)
  • Programmiersprachen für das .NET Framework  (нем.)
  • Создание компилятора языка для .NET Framework  (рус.)