HOME

TheInfoList



OR:

CLI languages are computer programming languages that are used to produce libraries and programs that conform to the
Common Language Infrastructure The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by International Organization for Standardization, ISO/International Electrotechnical Commission, IEC (ISO/ ...
(CLI) specifications. With some notable exceptions, most CLI languages compile entirely to the Common Intermediate Language (CIL), an intermediate language that can be executed using the
Common Language Runtime The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instr ...
, implemented by .NET Framework, .NET Core, and Mono. Some of these languages also require the Dynamic Language Runtime (DLR). As the program is being executed, the CIL code is just-in-time compiled (and cached) to the machine code appropriate for the architecture on which the program is running. This step can be omitted manually by caching at an earlier stage using an "ahead of time" compiler such as Microsoft's ngen.exe and Mono's "-aot" option.


Notable CLI languages


Current languages

; Ada for .Net : Ada is a multi-paradigm language, that is strongly focused on code safety, maintainability and correctness. ; Boo : A
statically typed In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
CLI language, inspired by Python. ; C# : Most widely used CLI language, bearing strong similarities to
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and some similarity to
Object Pascal Object Pascal is an extension to the programming language Pascal (programming language), Pascal that provides object-oriented programming (OOP) features such as Class (computer programming), classes and Method (computer programming), methods. T ...
(
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), was an ancient sacred precinct and the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient Classical antiquity, classical world. The A ...
) and C++. Implementations provided by .NET Framework, .NET Core, and Mono. ; C++/CLI : A version of C++ including extensions for using Common Language Runtime (CLR) objects. Provides full support for .NET Framework and library only support for .NET Core. Produces mixed-mode code that produces native code for C++ objects. The compiler is provided by Microsoft. ;ClojureCLR : A port of
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the programming language Lisp (programming language), Lisp on the Java (software platform), Java platfo ...
to the CLI, part of the
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the programming language Lisp (programming language), Lisp on the Java (software platform), Java platfo ...
project. ; Component Pascal : A CLI-compliant
Oberon Oberon () is a king of the fairy, fairies in Middle Ages, medieval and Renaissance literature. He is best known as a character in William Shakespeare's play ''A Midsummer Night's Dream'', in which he is King of the Fairies and spouse of Titania ...
dialect. It is a strongly typed language in the heritage of Pascal and Modula-2 but with powerful object-oriented extensions. ; Eiffel : Purely object-oriented language, focused on software quality, includes integrated design by contract and multiple inheritance. CLI compliant. ; F# : A multi-paradigm CLI language supporting
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
and imperative
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
disciplines. Variant of ML and is largely compatible with
OCaml OCaml ( , formerly Objective Caml) is a General-purpose programming language, general-purpose, High-level programming language, high-level, Comparison of multi-paradigm programming languages, multi-paradigm programming language which extends the ...
. Implementations provided by .NET Framework, .NET Core, and Mono. ; F* : A dependently typed language based on F#. ; Go : via the RemObjects ''Gold'' compiler & multi-platform targeting. ; IronPython : An open-source CLI implementation of Python, built on the Dynamic Language Runtime (DLR). ; IronScheme : A R6RS-compliant Scheme implementation built on the DLR ;
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
: via the RemObjects ''Iodine'' compiler & multi-platform targeting. ; Oxygene : An
Object Pascal Object Pascal is an extension to the programming language Pascal (programming language), Pascal that provides object-oriented programming (OOP) features such as Class (computer programming), classes and Method (computer programming), methods. T ...
-based CLI language. ; PascalABC.NET : An
Object Pascal Object Pascal is an extension to the programming language Pascal (programming language), Pascal that provides object-oriented programming (OOP) features such as Class (computer programming), classes and Method (computer programming), methods. T ...
-based language implemented on the .NET Framework. ; PeachPie : A compiler of PHP to .NET and .NET Core. Successor of Phalanger. ; PowerBuilder : Can target CLI since version 11.1. ;
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
: An object-oriented command-line
shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses Science Biology * Seashell, a hard outer layer of a marine ani ...
. PowerShell can dynamically load .NET assemblies that were written in any CLI language. PowerShell itself uses a unique scripting syntax and uses curly-braces, similar to other C-based languages. ; RemObjects Mercury : A Visual Basic .Net-based CLI language. ;
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
: A research project for an experimental .NET back-end for Rust. ; Silverfrost FTN95 : An implementation of Fortran 95. ; Small Basic : A BASIC-derived programming language created by Microsoft for teaching programming. Supported releases target .NET Framework versions 3.5 and 4.5. ;
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIF ...
: via the RemObjects ''Silver'' compiler & multi-platform targeting. ; Synergy DBL .NET : An object-oriented CLI compliant implementation of DBL and DIBOL produced by Synergex. ; Team Developer : SQLWindows Application Language (SAL) since Team Developer 6.0. ; Visual Basic.NET : A redesigned dialect of Classic Visual Basic. Implementations provided by .NET Framework, .NET Core, and Mono. ;Visual COBOL : An enhanced version of
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural, and, since 2002, object-oriented language. COBOL is primarily ...
ported to the .NET Framework and to the JVM, produced by Micro Focus. ;XSharp : X# is an open source development language for Microsoft .NET, based on the xBase language. It comes in different flavours, such as Core, Visual Objects, Vulcan.NET, xBase++, Harbour, Foxpro, and more.


Abandoned or deprecated languages

; A# : CLI implementation of Ada. ;
Axum Axum, also spelled Aksum (), is a town in the Tigray Region of Ethiopia with a population of 66,900 residents (as of 2015). It is the site of the historic capital of the Aksumite Empire. Axum is located in the Central Zone of the Tigray Re ...
: An
actor model The actor model in computer science is a mathematical model of concurrent computation that treats an ''actor'' as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create ...
concurrent programming language. ;
Cobra COBRA or Cobra, often stylized as CoBrA, was a European avant-garde art group active from 1948 to 1951. The name was coined in 1948 by Christian Dotremont from the initials of the members' home countries' capital cities: Copenhagen (Co), Brussels ...
: A CLI language with static and dynamic typing, design by contract and built-in
unit testing Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior. Unit testing describes tests that are run at the unit-level to contrast testing at the Integration ...
. ;
Fantom Fantom is a Swedish velomobile with four wheels, two in the front and two in the rear. It has no front suspension, but has suspension in the rear. Fantom was never sold as a finished product. Instead it was sold as a set of drawings. The drawin ...
: A language compiling to .NET(no longer under active development) and to th
JVM
; GrGen.NET : A CLI language for graph rewriting ; IronRuby : An open-source CLI implementation of
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, built on the Dynamic Language Runtime (DLR). ; J# : A CLI-compliant implementation of
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. The compiler is provided by Microsoft. J# has been discontinued. The last version shipped with Visual Studio 2005, and was supported until 2015. ; JScript .NET : A CLI implementation of
ECMAScript ECMAScript (; ES) is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is stan ...
version 3, compatible with
JScript JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer web browser and HTML Applications, and as a standalone Windows scripting language. JScript is implemented as an Active Scripting eng ...
. Contains extensions for
static typing In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
. Deprecated in favor of Managed JScript. ; Managed Extensions for C++ : A version of C++ targeting the Common Language Runtime (CLR). Deprecated in favor of C++/CLI. ; Managed JScript : A CLI implementation of
JScript JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer web browser and HTML Applications, and as a standalone Windows scripting language. JScript is implemented as an Active Scripting eng ...
built on the Dynamic Language Runtime (DLR). Conforms to
ECMAScript ECMAScript (; ES) is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is stan ...
version 3. ; Nemerle : A multi-paradigm language similar to C#, OCaml and Lisp. ; Niecza : A CLI implementation of Perl 6. ; Phalanger : An implementation of PHP with extensions for ASP.NET. Predecessor of PeachPie. ;
UnityScript Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at Apple Worldwide Developers Conference as a MacOS, Mac OS X game engine. The engine has since been gradually extended to support a ...
:
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
-like language, specific to the Unity game engine. Deprecated in favor of C#.


Related

; IKVM : A
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
that can be used to run
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
and other JVM languages (e.g., JVM like
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The word ...
, Scala) upon CLI implementations.


See also

*
List of JVM languages This list of JVM languages comprises notable computer programming languages that are used to produce computer software that runs on the Java virtual machine (JVM). Some of these languages are interpreted by a Java program, and some are compiled ...
* List of open-source programming languages * .NET Framework, the original, soon-to-be-deprecated implementation. **
Common Language Infrastructure The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by International Organization for Standardization, ISO/International Electrotechnical Commission, IEC (ISO/ ...
(CLI), an open specification of the run time environment (virtual machine component) of .NET framework ** Common Intermediate Language (CIL), an intermediate language that can be executed using an implementation of CLI **
Common Language Runtime The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instr ...
, the virtual machine component of Microsoft's implementation of the .NET Framework. ** .NET standard libraries *** Base Class Library (BCL) * Mono, an open source implementation of .NET Framework, used in many places including Unity and Xamarin. * .NET Core, the open source cross-platform successor to .NET Framework.


References

{{Common Language Infrastructure Common Language Infrastructure CLI