共通言語基盤
読み:きょうつうげんごきばん
外語:CLI: Common Language Infrastructure
.NET Framework
用
仮想計算機
の標準仕様。英名を略して「CLI」と呼ばれる。
目次
概要
特徴
標準化
仕様公開
実装
一覧
主要な言語実装
メジャーなもの
マイナーなもの
主な言語一覧
概要
.NET Framework
によって提供される機能のうち、仮想計算機の標準仕様。
Java
でいうところの「
JVM
の仕様」に対応する。
この仕様がMicrosoftにより実装され、提供されているものが「
共通言語ランタイム
」(CLR)である。
ISO/IEC 23271として国際標準化され、その日本規格としてJIS X 3016が制定された。
特徴
標準化
まずECMAにより標準化されECMA-335となり、次いでISO標準となった。
またMicrosoftからも、サンプルの実装としてSSCLI(Shared Source CLI)のソースが2002(平成14)年11月から公開されており、学術用途であれば無料で使用できる。
このSSCLIは、
Windows XP
のほか、
FreeBSD
と
OS X
でも動作する。
仕様公開
CLIは確かにECMA標準であり、ISO標準であり、JIS規格であり、
オープンソース
であるが、かといって、.NET Frameworkがオープンであるかというと、そうではない。
Windowsアプリケーション用クラスライブラリであるWindows Form、WebアプリケーションやXML Webサービスを提供するASP .NET、あるいはデータベース接続を行なうADO .NETなど、
.NET Framework
のうちの実用的な機能は非公開である。
つまり、公開された仕様で作成可能なのはコンソールプログラムくらい、ということになる。
実装
CLIの実装には、次のようなものがある。
Microsoft .NET Framework
‐ Microsoftによるデスクトップ用実装
Microsoft .NET Compact Framework ‐ Microsoftによるモバイル機器用実装
シェアードソースCLI ‐ Microsoftによるサンプルの実装
Mono ‐ Linux用のオープンソース実装の一つ
DotGNU Portable.NET ‐ オープンソース実装の一つ
一覧
主要な言語実装
理論上、どのようなプログラミング言語でも利用することができるが、それを実装として提供する人がいるかどうかが課題である。
現時点では、次のような言語実装が確認されている。
言語名別の一覧は後述
メジャーなもの
C++/CLI
C++ マネージ拡張 (Managed C++)
C#
F#
IronRuby (
Ruby
)
IronPython (
Python
)
J#
JScript
(マネージJScript)
JScript .NET
VBx (Visual Basicの次のバージョン)
Visual Basic .NET
Windows PowerShell
マイナーなもの
#S (
Scheme
)
#Smalltalk (
Smalltalk
)
A# (A# .NET) (
Ada
)
AVR.NET (
RPG
)
Active Oberon (
Oberon
)
APLNext (
APL
)
Boo
Cobra
Common Larceny (Scheme)
Component Pascal
Delphi.NET (
Delphi
)
Delta Forth .NET (
Forth
)
DotLisp (Lisp)
dylan.NET
EiffelEnvision (Eiffel)
Fantom
Fortran .NET
Gardens Point Modula-2/CLR (
Modula-2
)
GrGen.NET
IoNET (Io)
IronLisp (
Lisp
)
IronScheme (Scheme)
Ja.NET (
Java
)
L# (Lisp)
LOLCode.NET (LOLCODE)
Mercury on .NET (Mercury)
Nemerle
NetCOBOL (COBOL)
Net Express (
COBOL
)
Oxygene (Object Pascal)
OxygenScheme (Scheme)
P# (
PROLOG
)
Phalanger (
PHP
)
Phrogram
PL/IL (
PL/I
)
PowerBuilder
sml.net (Standard ML)
Visual COBOL (COBOL)
X#
Zonnon
主な言語一覧
Ada
APL
C++/CLI
C++
C#
COBOL
Eiffel
F#
Forth
Io
Java
JavaScript
Lisp
LOLCODE
Mercury
ML (Standard ML)
Modula-2
Oberon
Pascal
、
Delphi
PHP
PL/I
PROLOG
Python
RPG
Ruby
Scheme
Smalltalk
Visual Basic
再検索