ISO/IEC 23271:2012(E) | |
کوتهنوشت | CLI |
---|---|
وضعیت | منتشر شده |
سال آغاز | ۲۰۰۰ |
انتشار اولیه | ۲۰۰۱ (Ecma) و ۲۰۰۳ (ISO) |
آخرین ویرایش | ویرایش سوم فوریه ۲۰۱۲ |
سازمان | توسعهدهنده: مایکروسافت، هیولت پاکارد، اینتل، و دیگران استانداردساز: Ecma، ایزو |
هیئت | ISO/IEC JTC 1/SC 22 |
دامنه | زبان مشترک (چند سکویی) |
پروانه | RAND |
وبگاه |
زیرساخت[۱] زبان مشترک (به انگلیسی: Common Language Infrastructure) با کوتهنوشت CLI یک مشخصات آزاد (استاندارد فنی) است که توسط مایکروسافت ایجاد و توسط سازمانهای ایزو و ایسیامای[۲][۳] استانداردسازی شدهاست. این استاندارد توصیفکننده «کد قابل اجرا» و نیز «محیط اجرایی» است که به چندین زبان سطح بالا اجازه استفاده در بنسازههای رایانهای مختلف (بدون نیاز به بازنویسی برای معماری خاص) میدهد. این ویژگی یعنی CLI مستقل از سیستم عامل است. چارچوب داتنت، داتنت، و مونو پیادهسازیهای CLI هستند.
از بین سایر موارد، مشخصات CLI این چهار جنبه را توصیف میکند:
سامانه نوع مشترک (Common Type System - CTS)
فراداده (Metadata)
مشخصات زبان مشترک (Common Language Specification - CLS)
سامانه اجرای مجازی (Virtual Execution System - VES)
همه زبانهای سازگار به «زبان میانی مشترک (CIL)» کامپایل میشوند، که این زبان یک زبان میانی است که ویژگی آن این است که از بنسازی سختافزاری انتزاع یافتهاست. موقعی که کد اجرا میشود، VES که برای بنسازه خاصی ساخته شدهاست، زبان CIL را به زبان ماشین کامپایل میکند، که این کار براساس سختافزار و سیستمعامل خاص انجام میشود.
در سال آگوست ۲۰۰۰، شرکتهای مایکروسافت، هیولت پاکارد، اینتل و دیگر شرکتها، یک کار مشترک را شروع کردند تا CLI را استانداردسازی کنند. در دسامبر سال ۲۰۰۱، CLI توسط سازمان ایسیامای به تصویب رسید، سپس در آوریل سال ۲۰۰۳، سازمان ایزو آن را استانداردسازی کرد.
شرکت مایکروسافت و شرکایش، حق امتیاز اختراع CLI را در اختیار دارند. سازمانهای ایسیامای و ایزو، بر خود لازم میبینند که همه امتیازهای اختراع که پیادهسازی میشوند، تحت «شرایط معقول و غیرتبعیضآمیز (RAND)» دردسترس باشند. معمولاً پروانههای RAND باید کمی حق اختراع بپردازند، که به همین دلیل مورد توجه چارچوب مونو بودهاست. در ژانویه ۲۰۱۳، نه شرکت مایکروسافت، و نه سایر شرکایش، هیچ حق اختراعی برای پیادهسازی CLI که منوط به شرایط RAND باشد، تعیین نکرده بودند.
در ژولای ۲۰۰۹،[۴] شرکت مایکروسافت، سیشارپ و CLI را به لیست مشخصاتی اضافه نمود که تعهد انجمن مایکروسافت به آن اعمال میگردید،[۵] بنابراین هرکس میتوانست ویرایشهای مشخص شدهٔ استاندارد را پیادهسازی کند، و ترسی از نقض حقوق اختراعی از مایکروسافت ندارد. پیادهسازی استاندارد CLI نیاز به انطباق و همنوایی با یکی از رخنماهای پشتبانی شده و تعریف شدهٔ استاندارد دارد، که در حالت حداقلی باید رخنمای هسته را برآورده کند. رخنمای هسته در واقع مجموعه بسیار کوچکی از انواع برای پشتیبانی است این موضوع در مقابل کتابخانه هسته نصبهای داتنت پیش فرض مشهور قرار دارد. با این حال، مفاد انطباق با CLI، امکان گسترش رخنمای پشتیبانی شده را (به کمک اضافهکردن شگردها (متدها) و انواع جدید به کلاسها، و همچنین مشتق شدن از فضاهای نام جدید) میدهد. اما اجازه اضافهکردن اعضای جدید به واسطها را نمیدهد. این به این معنا است که ویژگیهای CLI را میتوان استفاده کرد و گسترش داد، و این موضوع مادامی درست است که پیادهسازی رخنمای انطباقی، رفتار برنامهای را که باید روی آن رخنما اجرا شود را تغییر ندهد، اما به «رفتار تعییننشده» از برنامههایی که مخصوصاً برای آن پیادهسازی نوشته شدهاند، امکان وجود میدهد.
در سال ۲۰۱۲، سازمانهای ایسیامای و ایزو یک نسخه جدید از استاندارد CLI را منتشر کردند،[۲][۳] که این استاندارد توسط تعهد انجمن پوشش داده نمیشد.[۵]