Payamvdn/NorthPersian_fa_wiki huggingface dataset:
JOVIAL یک زبان برنامه نویسی سطح بالا است که بر اساس طراحی شده و برای توسعه سیستم های تعبیه شده تخصیص یافته است (سیستم های کامپیوتری تخصصی که برای انجام یک یا چند وظیفه اختصاصی طراحی شده اند و معمولاً به عنوان بخشی از یک دستگاه بزرگتر و کامل تر که شامل قطعات مکانیکی نیز می شود، تعبیه می شوند). این زبان یک اصلی و مهم در دهه های ۱۹۶۰ و ۱۹۷۰ بود. تاریخچه. JOVIAL به عنوان یک زبان برنامه نویسی "سطح بالا" و جدید از سال ۱۹۵۹ توسط تیمی در (SDC) به سرپرستی برای نوشتن نرم افزارهای الکترونیک هواپیماهای نظامی توسعه یافت. نام "JOVIAL" مخفف عبارت "نسخه خاص جولز" " از زبان بین المللی جبری است؛ زبان بین المللی الگوریتمی" (IAL) نامی بود که در اصل برای پیشنهاد شده بود. طبق گفته شوارتز، این زبان در ابتدا "OVIAL" نامیده می شد، اما این نام به دلایل مختلفی مورد مخالفت قرار گرفت. سپس "JOVIAL" پیشنهاد شد، بدون اینکه معنی خاصی به "J" نسبت داده شود. به طور کمی طنزآمیز، پیشنهاد شد که زبان به نام شوارتز نامگذاری شود، زیرا او رئیس جلسه بود و این نام غیررسمی باقی ماند. در دهه ۱۹۶۰، JOVIAL بخشی از مجموعه "پروژه های نظامی L" ایالات متحده بود
، به ویژه ( (SACCS))، به دلیل نبود زبان های برنامه نویسی محاسبات بلادرنگ موجود. حدود ۹۵ درصد از پروژه SACCS، که توسط شرکت بین المللی تلفن و تلگراف (ITT) مدیریت می شد و نرم افزار آن عمدتاً توسط SDC نوشته شده بود، به زبان JOVIAL توسعه یافته بود. این پروژه نرم افزاری دو سال به طول انجامید و کمتر از ۱۴۰۰ سال-برنامه نویس صرف شد، که کمتر از نصف زمان معادل در پروژه L بود. در اواخر دهه ۱۹۷۰ و اوایل دهه ۱۹۸۰، نیروی هوایی ایالات متحده یک واحد پردازش مرکزی (CPU) استاندارد به نام MIL-STD-1750A را پذیرفت و برنامه های JOVIAL بعدی برای آن پردازنده ساخته شدند. چندین فروشنده تجاری کامپایلرها و ابزارهای برنامه نویسی مرتبط برای ساخت JOVIAL برای پردازنده هایی مانند MIL-STD-1750A را ارائه دادند، از جمله (ACT)، ، Proprietary Software Systems (PSS) و دیگر موارد. JOVIAL در سال ۱۹۷۳ با استاندارد MIL-STD-1589 استاندارد شد و در سال ۱۹۸۴ با استاندارد "MIL-STD-1589C" بازنگری شد. این زبان هنوز برای به روزرسانی و نگهداری نرم افزار در خودروها و هواپیماهای نظامی قدیمی استفاده می شود. سه گویش رایج در این زمینه مورد استفاده هستند: J3، J3B-2، و
J73. از سال ۲۰۱۰، JOVIAL دیگر توسط دفتر برنامه JOVIAL نیروی هوایی ایالات متحده (JPO) نگهداری و توزیع نمی شود. نرم افزاری که قبلاً توسط JPO توزیع می شد، همچنان از طریق منابع تجاری در شرکت Software Engineering Associates, Inc. (SEA) در دسترس است، همچنین ترکیبات دیگر میزبان/پردازنده هدف شامل Windows، Linux ، SPARC، VAX، 1750A، PowerPC، ، ، و ، ، و Mac OS X روی PowerPC نیز موجود است. علاوه بر این، که بخش هایی از Advanced Computer Techniques را به دست آورده است، همچنان کامپایلرها و ابزارهای مرتبط با JOVIAL را تا آوریل ۲۰۲۰ لیست می کند. بیشتر نرم افزارهایی که به زبان JOVIAL پیاده سازی شده اند، هستند و نگهداری آنها به طور فزاینده ای دشوارتر می شود. در دسامبر ۲۰۱۴، گزارش شد که نرم افزاری مشتق شده از کد JOVIAL که در دهه ۱۹۶۰ تولید شده بود، در یک خرابی عمده زیرساخت کنترل ترافیک هوایی بریتانیا نقش داشت و آژانسی که از آن استفاده می کند، یعنی ، مجبور به آموزش کارکنان فناوری اطلاعات خود در زبان JOVIAL بود تا بتوانند این نرم افزار را نگهداری کنند، که قرار نبود تا سال ۲۰۱۶ جایگزین شود. تاثیر. زبان هایی که تحت تأثیر JOVIAL ق
رار گرفته اند شامل "CORAL"، ، "زبان برنامه نویسی فضایی" (SPL)، و تا حدی CMS-2 هستند. همچنین، یک زیرمجموعه از JOVIAL به نام TINT، مشابه ، در دهه ۱۹۶۰ توسعه یافت. ویژگی ها. JOVIAL شامل ویژگی هایی است که در ALGOL استاندارد وجود ندارند، مانند آیتم ها (که اکنون به عنوان ساختارها شناخته می شوند)، آرایه هایی از آیتم ها، متغیرهای وضعیت (که اکنون به عنوان شناخته می شوند) و زبان اسمبلی درون خطی. این زبان همچنین امکاناتی برای داده های "بسته بندی شده" در جداول را فراهم می کرد. بسته بندی جدول به تخصیص آیتم ها در یک ورودی به کلمات ذخیره سازی (بیت ها در یک واحد داده) اشاره دارد. این امر با توجه به حافظه و ذخیره سازی محدود سیستم های محاسباتی دوره JOVIAL اهمیت داشت. مخزن ارتباطی (COMPOOL) در JOVIAL مشابه کتابخانه های فایل های سرآمد (header) در زبان هایی مانند PL/I و C است. کاربردها. سیستم های برجسته ای که از نرم افزار جاسازی شده JOVIAL استفاده می کنند شامل: مثال. مثال زیر از "کتابچه راهنمای برنامه نویسی کامپیوتری برای زبان JOVIAL (J73)" گرفته شده است: این مثال یک رویه به نام codice_1 را تعریف می کند که یک آرگومان ورودی به نام
codice_2 به صورت عدد بدون علامت و یک آرگومان خروجی به نام codice_3 به صورت عدد اعشاری دارد. این رویه در آرایه 1000 عضوی codice_4 جستجو می کند تا ورودی ای پیدا کند که با codice_2 مطابقت داشته باشد، سپس متغیر اعشاری codice_3 را به عنصر codice_7 با شاخص آرایه مشابه تنظیم می کند. اگر عنصر مطابقتی پیدا نشود، مقدار codice_3 به codice_9 تنظیم می شود.
Presto (شامل PrestoDB و PrestoSQL که به Trino تغییر نام داد) یک موتور جستجوی توزیع شده برای داده های بزرگ با استفاده از زبان کوئری SQL است. معماری آن به کاربران اجازه می دهد تا منابع داده مانند Hadoop ، Cassandra ، Kafka ، AWS S3 ، Alluxio ، MySQL ، MongoDB و Teradata را پرس و جو کنند، و امکان استفاده از چندین منبع داده را در یک کوئری فراهم می کند. Presto یک نرم افزار منبع باز جامعه محور است که تحت مجوز آپاچی منتشر شده است. Presto در اصل در Facebook, Inc. (که بعداً به Meta تغییر نام داد) برای تحلیلگران داده طراحی و توسعه داده شد تا کوئری تعاملی را در انبار داده بزرگ خود در Apache Hadoop اجرا کنند. چهار توسعه دهنده اول مارتین تراورسو، داین ساندستروم، دیوید فیلیپس و اریک هوانگ بودند. قبل از Presto، تحلیلگران داده در فیس بوک برای اجرای تجزیه و تحلیل SQL در انبار داده چند پتابایتی خود به Apache Hive متکی بودند. Hive برای مقیاس فیس بوک بسیار کند تلقی می شد و Presto برای پر کردن شکاف برای اجرای سریع کوئری ها اختراع شد. توسعه اولیه در سال 2012 آغاز شد و در اواخر همان سال در فیس بوک مستقر شد. در نوامبر 2013، فیس بوک
انتشار متن باز خود را اعلام کرد. در سال 2014، نتفلیکس فاش کرد که از Presto بر روی 10 پتابایت داده ذخیره شده در سرویس ذخیره سازی ساده آمازون (S3) استفاده کرده است. در نوامبر 2016، آمازون سرویسی به نام Athena را معرفی کرد که بر اساس Presto بود. در سال 2017، Teradata شرکتی به نام Starburst Data را برای حمایت تجاری از Presto ایجاد کرد که شامل کارکنانی بود که در سال 2014 از Hadapt به دست آمده بودند. نرم افزار QueryGrid Teradata به Presto اجازه دسترسی به پایگاه داده رابطه ای Teradata را داد. در سپتامبر 2019، فیسبوک PrestoDB را به بنیاد لینوکس اهدا کرد و بنیاد Presto را تأسیس کرد. نه سازندگان Presto و نه از مشارکت کنندگان و متعهدان برتر، برای پیوستن به این بنیاد دعوت نشدند. تا سال 2020، هر چهار توسعه دهنده اصلی Presto به Starburst پیوستند. در دسامبر 2020، PrestoSQL به Trino تغییر نام داد، زیرا فیس بوک یک علامت تجاری با نام "Presto" (همچنین به بنیاد لینوکس اهدا شده بود) به دست آورده بود. شرکت دیگری به نام Ahana در سال 2020 برای تجاری سازی فورک PrestoDB به عنوان یک سرویس ابری اعلام شد و در سال 2023 توسط IBM خریداری شد
معماری. معماری Presto بسیار شبیه به سایر سیستم های مدیریت پایگاه داده با استفاده از محاسبات خوشه ای است که گاهی اوقات پردازش موازی گسترده (MPP) نامیده می شود. یک هماهنگ کننده، هماهنگ با چندین کارگر کار می کند. کلاینت ها بیانیه های SQL را که تجزیه و برنامه ریزی شده اند، ارسال می کنند و به دنبال آن وظایف موازی برای کارگران برنامه ریزی می شوند. کارگران به طور مشترک ردیف هایی را از منابع داده پردازش می کنند و نتایجی را تولید می کنند که به مشتری بازگردانده می شود. در مقایسه با مدل اصلی اجرای Apache Hive که از مکانیزم Hadoop MapReduce در هر کوئری استفاده می کرد، Presto نتایج میانی را روی دیسک نمی نویسد و در نتیجه سرعت مقدار قابل توجهی بهبود می یابد. Presto به زبان جاوا نوشته شده است. یک کوئری Presto می تواند داده ها را از چندین منبع ترکیب کند. Presto اتصال دهنده هایی را به منابع داده از جمله فایل ها در Alluxio ، سیستم فایل توزیع شده Hadoop (که اغلب به آن دریاچه داده می گویند)، Amazon S3 ، MySQL ، PostgreSQL ، Microsoft SQL Server ، Amazon Redshift ، Apache Kudu ، Apache Phoenix ، Apache Kafka ، Apache Casandra ، ا
رائه می دهد. Accumulo ، MongoDB و Redis . برخلاف سایر ابزارهای توزیع خاص Hadoop، مانند Apache Impala ، Presto می تواند با هر نوع Hadoop یا بدون آن کار کند. Presto از جداسازی محاسبات و ذخیره سازی پشتیبانی می کند و ممکن است در محل یا با استفاده از محاسبات ابری مستقر شود.
حیوان خانگی مجازی (به اسم های حیوان خانگی دیجیتال، حیوان خانگی مصنوعی یا شبیه سازی بزرگ کردن حیوان خانگی نیز شناخته می شود) نوعی همراه (دوست) مصنوعی انسانی هستند. معمولاً برای دوستی یا لذت، نگهداری می شوند، زیرا افراد ممکن است ترجیح دهند به جای یک حیوان خانگی واقعی، حیوان خانگی دیجیتال نگه دارند. حیوان های خانگی دیجیتال هیچ شکل فیزیکی مشخصی ندارند به جز سخت افزاری که بر روی آن اجرا می شوند. تعامل با حیوانات خانگی مجازی ممکن است به دلیل هدفی مشخص باشد یا نباشد. اگر هدف داشته باشد، کاربر باید تا حد ممکن آن را زنده نگه دارد و اغلب به آن کمک کند تا به فرم های برتری رشد کند. نگه داشتن حیوان خانگی زنده و در حال رشد اغلب نیاز به تغذیه، آراستن و بازی با حیوان خانگی دارد. برخی از حیوانات خانگی دیجیتال برای زنده ماندن به بیش از غذا نیاز دارند. تعامل های روزانه به شکل بازی ها، نوازش مجازی، ابراز عشق و توجه می تواند به حفظ خوشحالی و سلامت حیوان خانگی مجازی شما کمک کند. حیوانات خانگی دیجیتال همچنین می تواند شبیه سازی از حیوانات واقعی باشد. مانند سری بازی Petz، یا حیوانات خیالی، مانند سری های Tamagotchi یا Digimon. برخلاف
شبیه سازی های بیولوژیکی، حیوان خانگی معمولاً تولید مثل نمی کند انواع. مبتنی بر وبسایت. سایت های حیوان خانگی مجازی معمولاً برای همه کسانی که ثبت نام می کنند رایگان هستند. این سایت ها از طریق مرورگرهای وب قابل دسترسی هستند و اغلب شامل یک جامعه مجازی می شوند، مانند Neopia در Neopets. در این دنیاها، کاربر می تواند بازی هایی انجام دهد تا پول مجازی کسب کند که معمولاً برای خرید اقلام و غذا برای حیوان خانگی استفاده می شود. یکی از شاخه های بزرگ بازی های حیوان خانگی مجازی، بازی های شبیه سازی اسب است. بعضی از سایت ها حیوان های خانگی به واگذار می کنند تا آن ها را تا آن ها را بر روی یک صفحه وب قرار داده و از آن ها برای ایفای نقش (رول پلی) در یک چت روم استفاده می کنند. این سایت ها اغلب از کاربران می خواهند که یک صفحه آماده برای حیوان خانگی خود داشته باشند. گاهی اوقات این سایت ها یک سیستم برای تولید مثل حیوانات خانگی و سپس واگذاری آنها به دیگران دارند. مبتنی بر نرم افزار. عداد زیادی از بازی های رایانه ای وجو دارد که روی مواظبت کردن، بزرگ کردن، تولید مثل یا شبیه سازی حیوانات خانگی تمرکز دارند. از آنجایی که قدرت محاسباتی بیشت
ر حیوانات خانگی دیجیتال مبتنی بر صفحات وب یا دستگاه ها است. این بازی ها معمولاً قادر به دستیابی به سطح بالاتری از جلوه های بصری و برقراری ارتباط هستند. شبیه سازی های پرورش حیوانات معمولاً فاقد شرایط پیروزی یا چالش هستند و می توان آنها را در دسته اسباب بازی های نرم افزاری طبقه بندی کرد حیوانات خانگی ممکن است قادر به یادگیری انجام انواع وظیفه هایی باشند. «این ویژگی هوش زیاد، حیوانات مصنوعی را از سایر انواع زندگی مصنوعی متمایز می کند، جایی که هر یک دارای قوانین ساده ای هستند اما جمعیت به طور کلی ویژگی های ظهور یافته را توسعه می دهد». برای حیوانات خانگی مصنوعی، رفتارهای آنها معمولاً «برنامه ریزی شده اند و واقعاً ظهور یافته نیستند». یک دوست صفحه (screen mate) یک حیوان خانگی مجازی قابل دانلود است که یک انیمیشن کوچک ایجاد می کند که به صورت غیرقابل پیش بینی در دسکتاپ کامپیوتر و بر روی صفحات باز حرکت می کند. هر حیوان خانگی یک انیمیشن کوچک از یک حیوان (مانند گوسفند یا قورباغه، یا در برخی موارد انسان یا درپوش بطری) است که می توان با کلیک کردن یا کشیدن با آن تعامل داشت، که حیوان را مانند بلند کردن آن، به بالا می برد. اکث
ر دوست های صفحه برای دانلود رایگان هستند و برای سرگرمی استفاده می شوند. تاریخچه. اولین حیوان خانگی مجازی مشهور یک گربه بود که نشانگر صفحه نمایش را دنبال می کرد و اسم آن نکو بود. در آن زمان، به او «حیوان خانگی دسکتاپ» گفته می شد زیرا اصطلاح «حیوان خانگی مجازی» هنوز وجود نداشت. شرکت PF.Magic اولین حیوانات خانگی مجازی که به طور گسترده محبوب شدند را در سال ۱۹۹۵ با Dogz عرضه کرد، و سپس در بهار ۱۹۹۶ با Catz ادامه داد که در نهایت به یک مجموعه به نام Petz تبدیل شد. حیوانات خانگی دیجیتال با معرفی Tamagotchi و Digimon در سال های ۱۹۹۶ و ۱۹۹۷ بیشتر محبوب شدند. حیوان های خانگی مثل تاماگوتچی یا دیگیمون در اواخر دهه ۱۹۹۰ در ژاپن، ایالات متحده و بریتانیا به شدت محبوب بودند. امروزه، حیوانات خانگی دیجیتالی وجود دارند که بدنه های رباتیک و فیزیکی دارند و به عنوان Ludobots یا ربات های سرگرمی شناخته می شوند. اواخر دهه ۱۹۹۰ تا اوایل دهه ۲۰۰۰، حیوانات خانگی مجازی که به عنوان نمادهای رسمی وب سایت های شخصی تخصص داشتند و به نام "حیوانات سایبری" (یا "cyberpets") شناخته می شدند، به ویژه در وب سایت هایی که با GeoCities, Tripod یا Angelfir
e میزبانی می شدند، دیده می شدند. همچنین صفحات وبی وجود داشتند که به کاربران اجازه می دادند حیوانات سایبری را برای وب سایت های خود "به سرپرستی بگیرند ". جنجال ها. محبوبیت زیاد حیوان خانگی در آمریکا و نیاز مداوم به توجه به حیوان خانگی باعث شد، ورود آن ها به سراسر مدارس کشور ممنوع شود. حرکتی که کاهش محبوبیت حیوان خانگی مجازی را سریع تر کرد. جلد مجله Mad شماره ۳۶۲ معمولی، اکتبر ۱۹۹۷، اسلحه ای را نشان می دهد که به سمت حیوان خانگی مجازی با صورت آلفرد ای. نیومن و خط "اگر این مجله را نخرید، این حیوان خانگی مجازی را می کشیم!" تصویرگری شده توسط مارک فردریکسون به وجود آمد. و از جلد شماره ژانویه 1973 National Lampoon را که اسلحه ای را به تصویر می کشید که روی سر یک سگ واقعی نگه داشته شده است و این جمله "اگر این مجله را نخرید، ما این سگ را خواهیم کشت." تقلید کرده بود. ارتباط با حیوانات خانگی دیجیتال. تحقیق هایی در رابطه با ارتباط بین حیوان خانگی دیجیتال و صاحبان آن ها و تأثیر آن ها بر احساسات مردم انجام گرفته برای مثال Furby بر روی طرز فکر مردم دربارهٔ هویت خود آن ها تأثیر گذاشت و بسیاری از کودکان معتقد بودند Furby به صورت
مخصوص خود زنده است ویژگی های مشترک. ویژگی های مشترک زیادی بین حیوانات خانگی دیجیتال مختلف وجود دارد، برخی از آنها برای ایجاد حس واقعی بودن به کاربر (مانند پاسخ دادن حیوان خانگی به "لمس") و برخی برای افزایش قابلیت بازی (مانند آموزش) استفاده می شوند. ارتباطات. با فناوری پیشرفته بازی های ویدیویی، اکثر حیوانات خانگی دیجیتال مدرن برخلاف گذشته با یک جعبه پیام یا نمادی برای نمایش متغیر داخلی، وضعیت سلامت یا احساسات حیوان خانگی مانند نسل های قبلی (مانند تاماگوچی) نشان نمی دهند. درعوض، کاربران فقط می توانند حیوان خانگی را با تفسیر اعمال، زبان بدن، حالات صورت و غیره درک کنند. این امر به طبیعی جلوه دادن رفتار حیوان خانگی و دوری از احساس حساب شده بودن کمک می کند و رابطه احساسی بین کاربر و حیوان دیجیتال را تقویت می کند. احساس واقعی بودن. برای به وجود آوردن حس واقعی بودن به کاربر حیوانات خانگی مجازی دارای مقدار مشخص و خاصی استقلال و غیرمنتظره بودن هست. کاربر می تواند با حیوان خانگی ارتباط برقرار کند و این فرایند باعث شخصی سازی باعث متمایز شدن حیوان می شود شخصی سازی احساس مسئولیت حیوان خانگی را نسبت به کاربر افزایش می دهد.
به عنوان مثال، اگر یک تاماگوچی برای مدت طولانی بدون مراقبت باشد، «می میرد». تعامل. برای افزایش وابستگی شخصی کاربر به حیوان خانگی، حیوان خانگی با کاربر ارتباط برقرار می کند. این تعامل را می توان به دو دسته کوتاه مدت و بلند مدت طبقه بندی کرد. تعامل کوتاه مدت شامل ارتباط مستقیم یا اقدام به واکنش حیوان خانگی است. مثال: «لمس» یک حیوان خانگی با نشانگر ماوس و حیوان خانگی پاسخ مستقیم به «لمس» می دهد. تعامل طولانی مدت شامل اقداماتی است که بر روی رشد، رفتار یا طول عمر حیوان خانگی تأثیر می گذارد. به عنوان مثال، آموزش یک حیوان خانگی ممکن است تأثیر خوبی بر رفتار حیوان خانگی داشته باشد. ارتباط طولانی مدت برای درک واقعیت بسیار مهم است زیرا کاربر فکر می کند که تأثیر پایداری بر حیوان خانگی دارد. هر دو نوع ارتباط اغلب با هم ترکیب می شوند. آموزش (ارتباط بلند مدت) ممکن است از طریق ادامه ارتباط مدت کوتاه اتفاق بیفتد. به طور مشابه، بازی با حیوان خانگی (تعامل کوتاه مدت) ممکن است در صورت ادامه در دراز مدت، حیوان خانگی را خوشبین تر کند.
SQL تعبیه شده یا Embedded SQL راهی برای ترکیب توان رایانشی زبان برنامه نویسی و قابلیت های پایگاه داده SQL است. عبارت های SQL تعبیه شده خطوط SQLی هستند که درون کد منبع برنامه به زبان میزبان نوشته شده اند. خطوط کد توسط پیش پردازنده SQL تعبیه شده تجزیه و با کد فراخوانی از کتابخانه زبان میزبان جایگزین می شوند. سپس خروجی پیش پردازنده با کامپایلر زبان میزبان کامپایل می شود. اینگونه، برنامه نویس ها می توانند دستور های SQL را در هر زبانی مثل ، COBOL و Fortran تعبیه کنند. این روش با زبان های برگرفته از SQL مثل PL/SQL و T-SQL که از پیش پردازنده های جدا استفاده نمی کنند، فرق دارد. کمیته استانداردهای SQL، استاندارد SQL تعبیه شده را در دو مرحله تعریف کرد: یک صورت بندی به نام زبان ماژول تعریف شد، سپس استاندارد SQL جاسازی شده از زبان ماژول مشتق شد. استاندارد SQL، تعبیه SQL را به عنوان SQL تعبیه شده تعریف می کند و زبانی که در آن کوئری های SQL تعبیه می شوند به عنوان زبان میزبان شناخته می شود. C یک زبان میزبان محبوب است. به عنوان مثال زبان C و SQL تعبیه شده در سیستم های مدیریت پایگاه داده Oracle و Sybase به نام Pro*C، در Infor
mix به نام ESQL/C و در سیستم مدیریت پایگاه داده PostgreSQL به نام ECPG نامیده می شود. SQL ممکن است در زبان هایی مانند PHP نیز تعبیه شود. استاندارد SQL:2023 با خرید قابل دسترس است و شامل فصل ۲۱ SQL تعبیه شده و نحوه استفاده از آن می باشد. سیستم های پایگاه داده با پشتیبانی از SQL تعبیه شده. IBM Db2. IBM Db2 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C، C++، Java، COBOL، FORTRAN و REXX پشتیبانی می کند. اگرچه پشتیبانی از REXX و FORTRAN متوقف شده. IBM Informix. IBM Informix ورژن 14.10 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C پشتیبانی می کند. Mimer SQL. Mimer SQL برای لینوکس، مک او اس، اُپن وی ام اس، و ویندوز از SQL تعبیه شده پشتیبانی می کند. SAP Sybase. SAP Sybase ASE 15.7 از SQL تعبیه شده برای C و COBOL به عنوان بخشی از کیت توسعه نرم افزار Sybase پشتیبانی می کند. SAP Sybase SQL Anywhere از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس SQL Anywhere پشتیبانی می کند. SAP Sybase IQ از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس Sybase IQ پشتیبانی می کند.
اسپیس هی شبکهٔ اجتماعی آنلاین به زبان انگلیسی می باشد که توسط شرکت مسئولیت محدود آلمانی تیبوش اداره می شود و دفتر مرکزی آن در فولینگن قرار دارد این وبگاه توسط آنتون روم به عنوان نوعی ادای احترام به اوج رسیدن پلتفرم رسانهٔ اجتماعی مای اسپیس در اواسط دههٔ ۲۰۰۰، در سال ۲۰۲۰ تأسیس شد. اما با این حال به طور رسمی با مای اسپیس همکاری نمی کند.
عنوان صحیح این مقاله C# 2.0 است. جایگزینی علامت # به دلیل محدودیت های فنی انجام شده است. زبان برنامه نویسی کامپیوتر، C#، ویژگی های جدیدی را در نسخه 2.0 معرفی می کند )که با نسخه سوم استاندارد ECMA-334 و فریم ورک .NET 2.0 مطابقت دارد(. این ویژگی ها عبارت اند از: ویژگی های سی شارپ 2.0:. کلاس جزئی:. کلاس های جزئی اجازه می دهند که پیاده سازی یک کلاس در چندین فایل پخش شود، به طوری که هر فایل شامل یک یا چند عضو کلاس باشد. این ویژگی به طور اصلی زمانی مفید است که بخش هایی از یک کلاس به صورت خودکار تولید می شوند. به عنوان مثال، این ویژگی توسط طراحان رابط کاربری کد تولید کننده در Visual Studio به طور فراوان استفاده می شود. file1.cs: public partial class MyClass public void MyMethod1() // Manually written code file2.cs: public partial class MyClass public void MyMethod2() // Automatically generated code ژنریک ها:. ژنریک ها، یا انواع پارامتری یا چندریختی پارامتری، ویژگی ای در .NET 2.0 است که توسط C# و Visual Basic پشتیبانی می شود. برخلاف قالب های C++، انواع پارامتری .NET در زمان اجرا نمونه سازی می شوند و نه توسط کامپایلر؛
بنابراین می توانند چندزبانه باشند در حالی که قالب های C++ نمی توانند. آن ها برخی از ویژگی ها را که به طور مستقیم توسط قالب های C++ پشتیبانی نمی شوند، مانند محدودیت های نوع در پارامترهای ژنریک با استفاده از رابط ها(اینترفیس)، پشتیبانی می کنند. از سوی دیگر، C# پارامترهای ژنریک غیرنوعی را پشتیبانی نمی کند. برخلاف ژنریک ها در جاوا، ژنریک های .NET از تجسم استفاده می کنند تا انواع پارامتری را به عنوان اشیاء کلاس اول در ماشین مجازی CLI قرار دهند، که امکان بهینه سازی و حفظ اطلاعات نوع را فراهم می کند کلاس های استاتیک:. “کلاس های استاتیک، کلاس هایی هستند که نمی توانند با استفاده از کلمه کلیدی new نمونه سازی شوند یا از آن ها به عنوان کلاس های پدر به دست آمده شود و تنها اعضای استاتیک را مجاز می کنند. هدف آن ها مشابه ماژول ها در بسیاری از زبان های رویه ای است. Generator functionality:. با اجازه ی فریم ورک NET 2.0 سیشارپ توانست یک تکرار کننده(iterator) را معرفی کند که قابلیت تولید کنندگی را فراهم میکند، با استفاده از ساختار yield return مشابه yield در پایتون. با yield return، تابع بصورت خودکار وضعیت خود را در طول تکرار ن
گه میدارد // Method that takes an iterable input (possibly an array) // and returns all even numbers. public static IEnumerable&lt;int&gt; GetEven(IEnumerable&lt;int&gt; numbers) foreach (int i in numbers) if (i % 2 == 0) yield return i; همچنین دستور yield break وجود دارد، که کنترل به طور بی شرط به فراخواننده تکرارکننده باز می گردد. در پایان هر تابع تولید کننده نیز یک yield break ضمنی وجود دارد اشاره گر ناشناس:. به عنوان مقدمه ای برای توابع لامبدا معرفی شده در C# 3.0، C# 2.0 اشاره گرهای ناشناس را اضافه کرد. این ها قابلیتی شبیه به closure را به C# ارائه می دهند. کد داخل بدنه یک اشاره گر ناشناس دسترسی کامل به متغیرهای محلی، پارامترهای متد و اعضای کلاس در دامنه اشاره گر دارد، به جز پارامترهای out و ref. به عنوان مثال: int SumOfArrayElements(int[] array) int sum = 0; Array.ForEach(array, delegate(int x) sum += x; ); return sum; &lt;/syntaxhighlight&gt; تبدیل کوواریانت و کونتراواریانت: تبدیل ها از گروه های متدها به انواع دلیل ها به ترتیب در نوع بازگشتی و پارامتری کوواریانت و کونتراواریانت هستند. دسترسی به اموال را
می توان به طور مستقل تنظیم کرد: مثال: string status = string.Empty; public string Status get { return status; } // anyone can get value of this property, protected set { status = value; } // but only derived classes can change it Nullable value types:. انواع مقادیر Nullable (نشان داده شده توسط علامت سوال، به عنوان مثال int؟ i = null؛)که امکان اضافه کردن مقدار null به مجموعه ای از انواع مقادیر برای هر نوع مقدار را فراهم می کند. این باعث بهبود تعامل با پایگاه داده های SQL می شود که می توانند ستون های Nullable با انواعی که با انواع ابتدایی C# مطابقت دارند داشته باشند: یک نوع ستون SQL INTEGER NULL به طور مستقیم به int? در C# ترجمه می شود. انواع مقادیر قابل تهیه دریافت شد. یک بهبود در اواخر ماه اوت 2005، کوتاه قبل از راه اندازی رسمی، برای بهبود ویژگی های جعبه گذاری آن ها صورت گرفت: یک متغیر قابل تهیه که به آن مقدار null اختصاص داده شده است در واقع یک مرجع تهی نیست، بلکه یک نمونه از ساختار Nullable&lt;T&gt; با خصوصیت HasValue برابر با false است. هنگام جعبه گذاری، خود نمونه Nullable جعبه گذاری می شود و نه مقدار ذخی
ره شده در آن، بنابراین مرجع حاصل همواره غیر-تهی خواهد بود، حتی برای مقادیر null. کد زیر نقطه ضعف اصلاح شده را نشان می دهد:. int? i = null; object o = i; if (o == null) System.Console.WriteLine("Correct behaviour - runtime version from September 2005 or later"); else System.Console.WriteLine("Incorrect behaviour - pre-release runtime (from before September 2005)"); وقتی مقادیر از نمونه های قابل تهیه شدن به اشیاء کپی می شوند، نسخه ی رسمی مقادیر را از نمونه های قابل تهیه شدن جعبه گذاری می کند، بنابراین مقادیر null و مراجعه های null به عنوان مساوی در نظر گرفته می شوند. زمان دیر انجام این تصحیح برخی از جدال ها را به دنبال داشت، زیرا نیاز به تغییرات هسته ی CLR داخلی داشت که نه تنها .NET2 را تحت تأثیر قرار داد، بلکه تمام فناوری های وابسته (شامل C#، VB، SQL Server 2005 و Visual Studio 2005) را نیز تحت تأثیر قرار داد. Null-coalescing operator:. اوپراتور ؟؟ ، null coalescing operator خوانده میشودو برای تعریف یک متغیر دیفالت برای متغیر های nullable و رفرنس تایپ استفاده میشود. این عملوند چپ را برمیگردانند اگر خالی نباشد
وگرنه غملوند راست را برمیگردانند object nullObj = null; object obj = new Object(); return nullObj ?? obj; // returns obj استفاده ی اصلی از این اوپراتور، تخصیص به یک نوع غیر قابل تهیه شدن با یک دستور آسان است int? i = null; int j = i ?? 0; // If i is not null, initialize j to i. Else (if i is null), initialize j to 0.
کوکینل (به انگلیسی Coccinelle) که به معنای کفشدوزک در زبان فرانسوی است، یک ابزار متن باز برای مطابقت و تبدیل کد منبع برنامه های نوشته شده به زبان برنامه نویسی C است. کاربرد. این ابزار همچنین می تواند برای یافتن الگوهای برنامه نویسی معیوب در کد (یعنی بخش های کدی که با احتمال بالا اشتباه هستند مانند اشاره گر NULL ممکن است) بدون تبدیل آنها استفاده شود. بنابراین نقش کوکینل به ابزارهای تحلیل ایستای کد نزدیک است. نمونه هایی از این کاربرد توسط ابزار Herodotos که پیگیری هشدارهای تولید شده توسط کوکینل را انجام می دهد، ارائه شده اند. پشتیبانی برای کوکینل توسط IRILL فراهم شده است. تأمین مالی توسعه این ابزار توسط آژانس ملی تحقیقات فرانسه (ANR)، شورای تحقیقات فناوری و علوم تولید دانمارک، و INRIA انجام شده است. کد منبع کوکینل تحت نسخه 2 مجوز عمومی همگانی گنو (GPL) منتشر شده است. مثال. expression lock, flags; expression urb; spin_lock_irqsave(lock, flags); - usb_submit_urb(urb) + usb_submit_urb(urb, GFP_ATOMIC) spin_unlock_irqrestore(lock, flags); expression urb; - usb_submit_urb(urb) + usb_submit_urb(urb, GFP_KERNEL)