کورال

**CORAL**، مخفف **Computer On-line Real-time Applications Language** (زبان برنامه‌نویسی کاربردهای بلادرنگ آنلاین کامپیوتر)، یک زبان برنامه‌نویسی است که سال ۱۹۶۴ در موسسه سلطنتی رادار (RRE)، مالورن، ووسترشایر، در بریتانیا توسعه یافت. حرف R در ابتدا به معنای "رادار" بود، نه "بلادرنگ". این زبان عمدتاً تحت تأثیر JOVIAL و نتیجتاً **[[الگول]]** بود، اما زیرمجموعه هیچ‌کدام از آنها نیست.

معروف‌ترین نسخه، **CORAL 66**، سپس توسط آی.اف.کوری و ام. گریفیث تحت نظارت *کمیته بین‌موسسه‌ای برنامه‌های کامپیوتری* (IECCA) توسعه یافت. تعریف رسمی آن، که توسط وودوارد، ودرال و گورمن ویرایش شد، برای اولین بار در سال ۱۹۷۰ منتشر شد.

در سال ۱۹۷۱، CORAL توسط وزارت دفاع به عنوان زبان برنامه‌نویسی برای کاربردهای نظامی آینده انتخاب شد و برای حمایت از این امر، برنامه استانداردسازی‌ای معرفی شد تا اطمینان حاصل شود که کامپایلرهای CORAL مشخصات مورد نیاز را برآورده می‌کنند. این فرایند بعداً توسط وزارت دفاع ایالات متحده در هنگام تعریف زبان '''ایدا'''  اتخاذ شد.

## بررسی اجمالی
Coral 66 یک زبان برنامه‌نویسی همه‌منظوره است که بر اساس ALGOL 60 طراحی شده و دارای برخی از ویژگی‌های Coral 64، JOVIAL، و Fortran است. این زبان شامل انواع رکورد ساخت‌یافته (مانند پاسکال) است و از بسته‌بندی داده‌ها در حافظه محدود پشتیبانی می‌کند (همچنین مانند پاسکال). مانند Edinburgh IMP، اجازه استفاده از زبان اسمبلی درون‌خطی (درج‌شده) را می‌دهد و همچنین بررسی زمان اجرا و تشخیص‌های خوبی ارائه می‌دهد. این زبان برای رایانش بلادرنگ و کاربردهای سیستم‌های تعبیه‌شده و برای استفاده در کامپیوترهایی با توان پردازش محدود، از جمله آنهایی که به حساب‌های ثابت محدود هستند یا از تخصیص حافظه پویا پشتیبانی نمی‌کنند، طراحی شده است.

این زبان یک استاندارد میان‌خدمتی برای برنامه‌نویسی نظامی بریتانیا بود و همچنین برای اهداف غیرنظامی در صنعت کنترل و اتوماسیون بریتانیا به‌طور گسترده‌ای مورد استفاده قرار گرفت. از این زبان برای نوشتن نرم‌افزار برای کامپیوترهای **[[فرانتی]]** و '''کامپیوترهای جی‌ئی‌سی''' از سال ۱۹۷۱ به بعد استفاده شد. همچنین پیاده‌سازی‌هایی نیز برای Interdata 8/32، PDP-11 VAX، و پلتفرم‌های Alpha و سرورهای HPE Integrity، برای Honeywell و Computer Technology Limited (CTL، بعدها ITL) Modular-1؛ و نیز برای **[[اسپارک]]** با سیستم عامل '''سولاریس''' و **[[اینتل]]** با سیستم عامل **[[لینوکس]]** وجود دارد.

ملکه الیزابت دوم اولین ایمیل را از سوی یک رئیس کشور از موسسه سیگنال‌ها و رادار سلطنتی از طریق **[[آرپانت]]** در ۲۶ مارس ۱۹۷۶ ارسال کرد. پیام به این مضمون بود: "این پیام به همه کاربران ARPANET اعلام می‌کند که کامپایلر Coral 66 ارائه شده توسط کامپیوتر GEC 4080 در موسسه سیگنال‌ها و رادار سلطنتی، مالورن، انگلستان، در ARPANET در دسترس است... Coral 66 زبان سطح بالای استاندارد بلادرنگی است که توسط وزارت دفاع پذیرفته شده است."

از آنجا که Coral برای کارهای بلادرنگ مختلف و نه پردازش داده‌های عمومی دفتر کار طراحی شده بود، معادل استانداردی برای کتابخانه "stdio" وجود نداشت. IECCA یک بسته ورودی/خروجی (I/O) ابتدایی را توصیه کرد که همراه هر کامپایلری باشد (در سندی با عنوان *ورودی/خروجی داده‌های کاراکتری در برنامه‌های کمکی Coral 66*). بیشتر پیاده‌سازان این مشکل را با تولید رابط‌های Coral برای کتابخانه‌های موجود Fortran و بعداً C برطرف کردند.

مهم‌ترین سهم CORAL در محاسبات ممکن است اجرای کنترل کیفیت در کامپایلرهای تجاری باشد. برای اینکه یک کامپایلر CORAL توسط IECCA تأیید شود و به این ترتیب اجازه داشته باشد به عنوان یک کامپایلر CORAL 66 به بازار عرضه شود، کامپایلر مورد نظر باید یک مجموعه استاندارد شامل ۲۵ برنامه آزمایشی و ۶ برنامه بنچمارک را کامپایل و اجرا کند. این فرایند بخشی از فرایند تأیید استاندارد بریتانیا (BS) 5905 بود. این روش بعداً توسط وزارت دفاع ایالات متحده برای تأیید کامپایلرهای '''ایدا''' مشاهده و اقتباس شد.

کد منبع یک کامپایلر Coral 66 (نوشته شده به زبان BCPL) بازیابی شده و سند *تعریف رسمی Coral 66* توسط اداره چاپ سلطنتی (HMSO) اسکن شده است؛ اداره ثبت اختراعات وزارت دفاع مجوزی به پروژه تاریخچه کامپیوتر ادینبورگ صادر کرده تا به آنها اجازه دهد هر دو کد و مرجع زبان را برای استفاده غیرتجاری به صورت آنلاین قرار دهند.

## گونه‌ها
یک گونه از Coral 66 به نام PO-CORAL در اواخر دهه ۱۹۷۰ تا اوایل دهه ۱۹۸۰ توسط اداره پست عمومی بریتانیا (GPO) به همراه '''جنرال الکتریک کمپانی'''، STC، و Plessey برای استفاده در کامپیوترهای کنترل مراکز تلفن دیجیتال System X توسعه یافت. این زبان بعداً با نام BT-CORAL شناخته شد زمانی که **گروه بی‌تی**از اداره پست جدا شد. ویژگی‌های منحصر به فرد این زبان تمرکز بر اجرای بلادرنگ، پردازش پیام، محدودیت در اجرای دستورها حین انتظار برای ورودی، و ممنوعیت استفاده از بازگشت (recursion) برای حذف نیاز به پشته بود.

## منابع

## پیوند به بیرون
* CORAL 66 test program extracted from the Test Responder report
* CORAL 66 benchmarks
* BS5905 CORAL 66 Standard
* DEF STAN 05-47
* PDP-11 CORAL/ASM interfacing library
* ECCE editor script to translate CORAL 66 into Edinburgh IMP
رده:تاریخ رایانش در بریتانیا
رده:زبان‌های برنامه‌نویسی رویه‌ای
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۶۴ (میلادی)