Seznam programskih jezikov za CLI
Jeziki skladni s CLI so programski jeziki, ki se uporabljajo za izdelavo knižnic in programov, ki so skladni s specifikacijo Common Language Infrastructure (CLI). Razen nekaterih izjem se ti jeziki običajno najprej prevajajo v Common Intermediate Language (CIL), standardiziran skupni vmesni jezik, ki se lahko izvaja z uporabo katerekoli implementacije CLI, kot na primer Common Language Runtime (CLR, ki je del Microsoftovega ogrodja .NET), okolje Mono ali Portable .NET. Nekateri od teh jezikov zahtevajo tudi Dynamic Language Runtime (DLR) za podporo dinamičnim tipom (primer je IronPython).
Ko se program napisan v takšnem jeziku izvaja, je vmesna koda sproti prevedena ("just-in-time") v strojno kodo platforme, na kateri se program izvaja. Ker to običajno malo zakasni izvajanje, se lahko ta korak izvede predčasno (angleški izraz za takšen prevajalnik je "ahead-of-time compiler") s posebnimi prevajalniki (npr. z Microsoftovim vnaprejšnjim prevajalnikom ngen.exe ali s prevajalnikom ogrodja Mono z ukaznim parametrom "-opt").
Medopravilnost
[uredi | uredi kodo]Jeziki skladni c CLI so medopravilni, kar pomeni, da lahko aplikacijo enostavno sestavimo iz delov, ki so napisani v kateremkoli izmed teh jezikov. Klici funkcij, sklicevanje na tipe in konstante definirane v kakšnem drugem od teh jezikov je neposredno, za to ne potrebujemo posebnih vmesnikov in ni vpliva na zmanjšanje performanc. To daje razvijalcem veliko svobodo, ker lahko v svojih aplikacijah in knjižnicah enostavno uporabijo knjižnice napisane v drugih jezikih skladnih s CLI, hkrati pa lahko svoje knjižnice napišejo v poljubnem od teh jezikov in izbira jezika ne vpliva na uporabnost knjižnice.
Jeziki za CLI
[uredi | uredi kodo]- A#: CLI implementacija programskega jezika Ada.
- Axum
- Boo
- C# je najpogosteje uporalbjan jezik skladen s CLI. Jezik ima nekatere skupne lastnosti z jeziki Java, Object Pascal (Delphi) in C++. Implementacije jezika so na voljo v Microsoftovem ogrodju .NET, Portable.NET in Mono.
- C++/CLI Različica C++, ki vsebuje razširitve za uporabo CLR objektov. Impementacija je na voljo le v ogrodju .NET.
- ClojureCLR
- Cobra
- Component Pascal
- Eiffel
- F#: Večparadigmski programski jezik, ki podpira predvsem funkcijsko progamiranje in imperativno objektno programiranje.V veliki meri je kompatibilen z OCaml. Microsoftov prevajalnik lahko prevaja za platformi .NET in Mono.
- F* - jezik osnovan na F#.
- Fantom - jezik, ki se lahko prevede za .NET in JVM
- GrGen.NET
- IronLisp CLI skladna implementacija jezika Lisp.
- IronPython: Odprtokodna CLI skladna implenmentacija jezika Python, za izgradnjo potrebuje Dynamic Language Runtime (DLR).
- IronRuby: odprtokodna CLI-skladna implementacija jezika Ruby, za izgradnjo potrebuje Dynamic Language Runtime (DLR).
- IronScheme
- J# CLI-skladna implementatacija Jave.
- JScript .NET CLI-skladna implementacija ECMAScript verzije 3
- L#: A CLI implementation of Lisp.
- Lisp#
- Managed Extensions for C++
- Managed JScript CLI-skladna implementacija jezika JScript, za izgradnjo potrebuje Dynamic Language Runtime (DLR).
- Nemerle
- Niecza - CLI-skladna implementacija jezika Perl 6.
- Oxygene: Jezik osnovan na jeziku Object Pascal
- P# CLI-skladna implementacija jezika Prolog.
- C#Prolog CLI-skladna implementacija jezika Prolog.
- Prolog.NET CLI-skladna implementacija jezika Prolog.
- Phalanger: Implementacija jezika PHP z razširitvami za ASP.NET
- Phrogram
- PowerBuilder
- Small Basic
- STARLIMS Scripting Language (SSL)
- Synergy DBL .NET
- Team Developer
- Visual Basic .NET (VB.NET): Dialekt jezika Visual Basic. Implementations je na voljo v .NET in Mono.
- Windows PowerShell: objektno orientirana ukazni vmesnik. PowerShell lahko dinamičo nalaga kodo v .NET, ki je bila napisana v kateremkoli CLI-skladnem jeziku. Sam PowerShell uporablja edinstveno skriptno sintakso z zavitimo oklepaji, podobno sintaksi jezikov, ki so osnovani na C.