کورال
پارادایم برنامهنویسی | برنامهنویسی رویهای, برنامهنویسی دستوری, برنامهنویسی ساختیافته |
---|---|
خانواده | ALGOL |
طراحی شده توسط | فیلیپ وودوارد, آی.اف.کوری، ام.گریفیث |
توسعهدهنده | Royal Radar Establishment |
ظهوریافته در | ۱۹۶۴ |
Static, strong | |
دامنه | Lexical |
زبان پیادهسازی | BCPL |
بنسازه رایانش | CTL Modular-1, DEC Alpha, GEC, Ferranti, Honeywell, HPE Integrity Servers, Interdata 8/32, PDP-11, SPARC, VAX, x86, Intel 8080, Zilog Z80, Motorola 68000 |
سیستمعامل | OpenVMS,[۱] BSD Unix, Linux, Solaris |
متأثر از | |
ALGOL, JOVIAL, Fortran |
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) برای حذف نیاز به پشته بود.[۹][۱۰]
منابع
[ویرایش]- ↑ "Gain the advantage with CORAL, CORAL+ and Context" (PDF). DXC Technology. September 2017. Archived (PDF) from the original on 2021-01-23. Retrieved 2021-12-29.
- ↑ Gough, Jack (1993). Watching the skies: a history of ground radar for the air defence of the United Kingdom by the Royal Air Force from 1946 to 1975. HMSO. p. 264. ISBN 978-0-11-772723-6.
- ↑ Woodward, Philip M. (1970). Official Definition of CORAL 66. Her Majesty's Stationery Office (HMSO). pp. vii+58. ISBN 0114702217 – via Internet Archive.
- ↑ "Coral 66 - Language Reference Manual - Manual - Computing History". www.computinghistory.org.uk. Archived from the original on 2023-07-31. Retrieved 2023-07-31.
- ↑ Gorman, B (June 1978). The Coral 66 Compiler for Ferranti ARGUS 500 Computer (Report). Royal Signals and Radar Establishment. Technical Note 799. Archived from the original on 17 March 2021. Retrieved 17 January 2018.
- ↑ ۶٫۰ ۶٫۱ "Lucid language may help European computers". New Scientist. 30 November 1972. p. 513. Retrieved 8 April 2019.[پیوند مرده]
- ↑ Metz, Cade (2012-12-25). "How the Queen of England Beat Everyone to the Internet". Wired. ISSN 1059-1028. Retrieved 2020-01-09.
- ↑ Left, Sarah (2002-03-13). "Email timeline". The Guardian (به انگلیسی). ISSN 0261-3077. Retrieved 2020-01-09.
- ↑ Metz, Cade (2012-12-25). "How the Queen of England Beat Everyone to the Internet". Wired. ISSN 1059-1028. Retrieved 2020-01-09.
- ↑ Left, Sarah (2002-03-13). "Email timeline". The Guardian (به انگلیسی). ISSN 0261-3077. Retrieved 2020-01-09.
خطای یادکرد: برچسپ <ref>
که با نام «Ferranti_1968» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
پیوند به بیرون
[ویرایش]- 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