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 (CIL), an intermediate language that can be executed using an implementation of CLI such as the Common Language Runtime (CLR, a part of the Microsoft .NET Framework), Mono, or Portable.NET. Some of these languages also require the Dynamic Language Runtime (DLR).
As the program is being executed, the CLI 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 shortcut manually and cached at an earlier stage using an "ahead of time" compiler such as Microsoft's ngen.exe and Mono's "-aot" option.
CLI languages [ edit ]
Common CLI Languages
: CLI implementation of A# Ada.
: A Boo statically typed CLI language, inspired by Python.
: Most widely used CLI language, bearing similarities to C# Java, Object Pascal ( Delphi) and C++. Implementations provided by .NET Framework, Portable.NET and Mono.
: A version of C++/CLI C++ including extensions for using Common Language Runtime (CLR) objects. Implementation provided only by .NET Framework. Can produce either CLI-based managed code or mixed-mode code that mixes managed and native code. The compiler is provided by Microsoft.
: A CLI language with Cobra static and dynamic typing, design by contract and built-in unit testing.
: A CLI-compliant Component Pascal Oberon dialect. It is a strongly typed language in the heritage of Pascal and Modula-2 but with powerful object-oriented extensions.
: Purely object-oriented language, focused on software quality, includes integrated Eiffel design by contract and multiple inheritance. CLI compliant.
: A F# multi-paradigm CLI language supporting functional programming and imperative object-oriented programming disciplines. Variant of ML and is largely compatible with OCaml. The compiler is provided by Microsoft. The implementation provided by Microsoft officially targets both .NET and Mono.
: An open-source CLI implementation of IronPython Python, built on the Dynamic Language Runtime (DLR).
: An open-source CLI implementation of IronRuby Ruby, built on the Dynamic Language Runtime (DLR).
: A CLI implementation of IronLisp Lisp. Deprecated in favor of IronScheme.
: A CLI-compliant implementation of J# Java. The compiler is provided by Microsoft. J# has been discontinued. The last version shipped with Visual Studio 2005, and will be supported until 2015.
: A CLI implementation of JScript .NET ECMAScript version 3, compatible with JScript. Contains extensions for static typing. Deprecated in favor of Managed JScript.
: A CLI implementation of Lisp. L#
: A version of Managed Extensions for C++ C++ targeting the Common Language Runtime (CLR). Deprecated in favor of C++/CLI.
: A CLI implementation of Managed JScript JScript built on the Dynamic Language Runtime (DLR). Conforms to ECMAScript version 3.
: A multi-paradigm language similar to C#, OCaml and Lisp. Nemerle
: An Oxygene Object Pascal-based CLI language.
: A CLI implementation of P# Prolog.
: An implementation of Phalanger PHP with extensions for ASP.NET
: A custom CLI language for beginners and intermediate users produced by Phrogram The Phrogram Company
: Can target CLI since version 11.1. PowerBuilder
Synergy DBL .NET: an object oriented CLI compliant implementation of DBL and DIBOL produced by Synergex. [1 ]
: SQLWindows Application Language (SAL) since Team Developer 6.0. Team Developer
( Visual Basic .NET VB.NET): A redesigned dialect of Visual Basic. Implementations provided by .NET Framework and Mono.
: An object-oriented Windows PowerShell command-line shell. 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.
Other CLI languages
Related [ edit ]
See also [ edit ]
References [ edit ]
External links [ edit ]