HOME

TheInfoList



OR:

CLI languages are computer programming languages that are used to produce libraries and programs that conform to the Common Language Infrastructure (CLI) specifications. With some notable exceptions, most CLI languages compile entirely to the
Common Intermediate Language Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification ...
(CIL), an intermediate language that can be executed using the Common Language Runtime, implemented by .NET Framework, .NET Core, and
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese ...
. Some of these languages also require the
Dynamic Language Runtime The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include: * A dynamic type system, to be shared by all languages usin ...
(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. * C#: Most widely used CLI language, bearing strong similarities to
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, and some similarity to
Object Pascal Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods. The language was originally developed by Apple Computer as ''Clascal'' for the Lisa Worksh ...
(
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The orac ...
) and C++. Implementations provided by .NET Framework, .NET Core, and
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese ...
. * 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 and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
to the CLI, part of the
Clojure Clojure (, like ''closure'') is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
project. *
Component Pascal Component Pascal is a programming language in the tradition of Niklaus Wirth's Pascal, Modula-2, Oberon and Oberon-2. It bears the name of the language Pascal and preserves its heritage, but is incompatible with Pascal. Instead, it is a minor ...
: A CLI-compliant Oberon 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 applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that m ...
and
imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative programming, a programming paradigm in computer science * Imperative logic * ''Imperative'' (film), a 1982 G ...
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
disciplines. Variant of ML and is largely compatible with
OCaml OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Di ...
. Implementations provided by .NET Framework, .NET Core, and
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese ...
. * F*: A dependently typed language based on F#. * Fantom: A language compiling to .NET and to th
JVM
*
IronPython IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2. ...
: An open-source CLI implementation of
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (p ...
, built on the Dynamic Language Runtime (DLR). *
IronScheme IronScheme is an implementation of the Scheme programming language targeting the Microsoft .NET Framework. IronScheme is a complete rewrite of IronLisp, incorporating lessons learnt while developing IronLisp. IronScheme was planning to build upo ...
- a R6RS-compliant Scheme implementation built on the DLR * Limnor Studio: Is a general-purpose codeless and visual programming system. The aim is to enable users to create
computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
software without coding in a textual
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming l ...
. It can be extended by software developers. * Oxygene: An
Object Pascal Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods. The language was originally developed by Apple Computer as ''Clascal'' for the Lisa Worksh ...
-based CLI language. * PascalABC.NET: An
Object Pascal Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods. The language was originally developed by Apple Computer as ''Clascal'' for the Lisa Worksh ...
-based language implemented on the .NET Framework. * PeachPie: A compiler of PHP to .NET and .NET Core. Successor of Phalanger. *
PowerBuilder PowerBuilder is an integrated development environment owned by SAP since the acquisition of Sybase in 2010. On July 5, 2016, SAP and Appeon entered into an agreement whereby Appeon, an independent company, would be responsible for developing, se ...
: Can target CLI since version 11.1. * RemObjects Mercury: An Visual Basic .Net-based CLI language. * Small Basic: A BASIC-derived programming language created by Microsoft for teaching programming. Supported releases target .NET Framework versions 3.5 and 4.5. * Silverfrost FTN95: An implementation of Fortran 95. * Swift 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 (VB.NET): A redesigned dialect of Visual Basic. Implementations provided by .NET Framework, .NET Core, and
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese ...
. *Visual COBOL: An enhanced version of COBOL ported to the .NET Framework and to the JVM, produced by
Micro Focus Micro Focus International plc is a British multinational software and information technology business based in Newbury, Berkshire, England. The firm provides software and consultancy. The company is listed on the London Stock Exchange and is ...
. *
PowerShell PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-sourc ...
: 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 ** Thin-shell structure Science Biology * Seashell, a hard ...
. 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. *
XSharp X#, pronounced X sharp and often written XSharp, is an xBase-compatible programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but the ...
: 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, or Aksum (pronounced: ), 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, a naval and trading power that ruled the whole regi ...
: An
actor model The actor model in computer science is a mathematical model of concurrent computation that treats ''actor'' as the universal primitive of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more ...
concurrent Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to: Law * Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea'' * Concurring opinion (also called a "concurrence"), a ...
programming language. *
Boo Boo is an onomatopoeic word for a loud, startling sound, as an exclamation intended to scare, or as a call of derision (see booing). Boo or BOO may also refer to: Places * Boo (Aller), parish in Asturias, Spain * Boo, standard abbreviation for ...
: A statically typed CLI language, inspired by
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (p ...
. * Cobra: A CLI language with static and dynamic typing, design by contract and built-in unit testing. *
GrGen GrGen.NET is a software development tool that offers programming languages (domain-specific languages) that are optimized for the processing of graph structured data. The core of the languages consists of modular graph rewrite rules, which ...
.NET - a CLI language for
graph rewriting In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering ( software construction and als ...
*
IronRuby IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET Framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynam ...
: An open-source CLI implementation of
Ruby A 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 ...
, built on the Dynamic Language Runtime (DLR). * J#: A CLI-compliant implementation of
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. 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 JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the documenECMA-262 ECMAScript is commonly used for client-side scripting o ...
version 3, compatible with JScript. Contains extensions for static typing. Deprecated in favor of Managed JScript. * Managed JScript: A CLI implementation of JScript built on the Dynamic Language Runtime (DLR). Conforms to
ECMAScript ECMAScript (; ES) is a JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the documenECMA-262 ECMAScript is commonly used for client-side scripting o ...
version 3. * Managed Extensions for C++: A version of C++ targeting the Common Language Runtime (CLR). Deprecated in favor of C++/CLI. * Niecza - A CLI implementation of
Perl 6 Raku is a member of the Perl family of programming languages. Formerly known as Perl 6, it was renamed in October 2019. Raku introduces elements of many modern and historical languages. Compatibility with Perl was not a goal, though a compatibil ...
. *
Nemerle Nemerle is a general-purpose, high-level, statically typed programming language designed for platforms using the Common Language Infrastructure ( .NET/ Mono). It offers functional, object-oriented, aspect-oriented, reflective and imperati ...
: A multi-paradigm language similar to C#, OCaml and Lisp. *
Phalanger ''Phalanger'' (from the Greek ''phalangion'', meaning spider's web, from their webbed (fused) toesChambers English Dictionary) is a genus of possums. Its members are found on New Guinea, the Maluku Islands, other nearby small islands, and Aust ...
: An implementation of PHP with extensions for ASP.NET. Predecessor of PeachPie. * UnityScript:
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, often ...
-like language, specific to the
Unity game engine 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 Mac OS X game engine. The engine has since been gradually extended to support a vari ...
. Deprecated in favor of C#.


Related

* IKVM.NET: 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 describ ...
that can be used to run
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and other JVM languages (e.g., JVM like
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1950s, '60s and '70s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The ...
, 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 ...
* .NET Framework, the original, soon-to-be-deprecated implementation. ** Common Language Infrastructure (CLI), an open specification of the run time environment (virtual machine component) of .NET framework **
Common Intermediate Language Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification ...
(CIL), an intermediate language that can be executed using an implementation of CLI ** Common Language Runtime, the virtual machine component of Microsoft's implementation of the .NET Framework. ** .NET standard libraries ***
Base Class Library The Standard Libraries is a set of libraries included in the Common Language Infrastructure (CLI) in order to encapsulate many common functions, such as file reading and writing, XML document manipulation, exception handling, application global ...
(BCL) *
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese ...
, an open source implementation of .NET Framework, used in many places including
Unity Unity may refer to: Buildings * Unity Building, Oregon, Illinois, US; a historic building * Unity Building (Chicago), Illinois, US; a skyscraper * Unity Buildings, Liverpool, UK; two buildings in England * Unity Chapel, Wyoming, Wisconsin, US; ...
and Xamarin. * .NET Core, the open source cross-platform successor to .NET Framework.


References

{{Common Language Infrastructure Common Language Infrastructure
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 inst ...