پرش به محتوا

IMP ادینبورگ

از ویکی‌پدیا، دانشنامهٔ آزاد
Edinburgh IMP
پارادایم برنامه‌نویسیرویه‌ای, دستوری, ساخت‌یافته
خانوادهالگول
طراحی شده توسطBratley, Whitfield, M. M. Barritt, David Rees, Peter D. Schofield, Roderick McLeod, Hamish Dewar, Peter D. Stephens, Peter Robertson
توسعه‌دهندهدانشگاه ادینبرو
ظهوریافته در۱۹۶۶؛ ۵۸ سال پیش (۱۹۶۶-خطا: زمان نامعتبر}})
ایستا, قوی
دامنهواژگانی
زبان پیاده‌سازی
Atlas Autocode, IMP
بن‌سازه رایانشEnglish Electric KDF9,
ICL System 4, UNIVAC 1108, IBM System/360, DEC PDP-9, DEC PDP-10, DEC PDP-11, DEC PDP-15, CTL Modular One, x86, Interdata 7-16, Interdata 7-32, Data General Nova
سیستم‌عاملBOS/360, DOS, Windows, Linux
پیاده‌سازی‌های بزرگ
Edinburgh IMP
گویش
IMP77, IMP80
متأثر از
ALGOL 60, Atlas Autocode

IMP ادینبورگ یک توسعه از Atlas Autocode است که ابتدا در حدود سال‌های ۱۹۶۶-۱۹۶۹ در دانشگاه ادینبورگ اسکاتلند توسعه یافت. این زبان، یک زبان برنامه‌نویسی عمومی است که به‌طور گسترده‌ای برای برنامه‌نویسی سیستم‌ها استفاده می‌شد.

به‌طور واضح‌تر، IMP بسیار شبیه به ALGOL است و شامل تمام ساختارهای بلوکی به سبک ALGOL، کلمات کلیدی و انواع داده‌ها مانند آرایه‌ها و رکوردها می‌باشد. این زبان به زبان‌های به سبک ALGOL، یک نوع رشته (آرایه‌ای از کاراکترها که اندازه آن‌ها از قبل تعیین شده است) و عملگرهای داخلی برای دستکاری رشته‌ها و پردازش کاراکترها اضافه می‌کند. یک تفاوت مهم این زبان با ALGOL این است که IMP از پارامترهایی که به صورت نام منتقل می‌شوند، پشتیبانی نمی‌کند، اگرچه از پارامترهایی که به صورت مرجعی منتقل می‌شوند، پشتیبانی می‌کند.

IMP علاوه بر دستورهایی برای آدرس‌دهی در بخش‌هایی از کلمات، کنترل قابل توجهی بر نقشه‌برداری حافظه داده‌ها فراهم می‌کند. بیشتر کامپایلرهای IMP به‌طور پیش‌فرض، حتی در کد تولیدی، چک‌های زمان اجرا و یک قابلیت ردیابی پشته (بازگشت به عقب) ایجاد می‌کنند. IMP اجازه می‌دهد دستورهای زبان ماشین اسمبلر داخلی در کد منبع نیز استفاده شود.

پیاده‌سازی IMP توسط ERCC برای سیستم ICL System 4 (که به نام IMP9 شناخته می‌شود) یک قابلیت ماکرو مبتنی بر سینتکس (که توسط آلن فریمن طراحی شده بود) ارائه داد که شبیه به ویژگی‌های کامپایلر-کامپایلر ارائه شده توسط پیش‌ساز IMP، یعنی Atlas Autocode بود.

کامپایلرهای اولیه IMP برای کامپیوترهای English Electric KDF9، ICL System 4، UNIVAC 1108، IBM System/360، DEC PDP-9 ،DEC PDP-15 و CTL Modular One توسعه یافتند. IMP برای پیاده‌سازی سیستم عامل Edinburgh Multiple Access System (EMAS) استفاده شد و یک کامپایلر برای سری ICL 2900 نوشته شد تا امکان انتقال EMAS به آن پلتفرم را فراهم کند. در سال‌های بعد، نسخه‌ای از IMP به نام IMP77 توسط پیتر رابرتسون در دپارتمان علوم کامپیوتر ادینبورگ توسعه یافت که یک کامپایلر قابل حمل بود و IMP را به پلتفرم‌های بیشتری آورد. در سال 2002، زبان IMP77 توسط پروژه تاریخچه کامپیوتر ادینبورگ برای سخت‌افزار Intel x86 که سیستم‌عامل‌های DOS، ویندوز و لینوکس را اجرا می‌کرد، بازسازی شد و دوباره توسط فارغ‌التحصیلان و مهاجران ادینبورگ مورد استفاده قرار گرفت.

IMP و IMP77 که جدا شده بودند، بعدها با معرفی استاندارد IMP80 که توسط پیاده‌سازی‌های مرکز کامپیوتر منطقه‌ای ادینبورگ پشتیبانی می‌شد، به یک زبان واحد تبدیل شدند. IMP80 همچنین به چندین پلتفرم از جمله اینتل منتقل شد و تا دهه ۱۹۹۰ به‌طور فعال مورد استفاده قرار می‌گرفت.

IMP ادینبورگ ارتباطی با زبان برنامه‌نویسی قابل توسعه از لحاظ سینتکس IMP که توسط ادگار تی. آیرونس برای CDC 6600 توسعه داده شده بود ندارد؛ زبانی که توسط آژانس امنیت ملی (NSA) برای سال‌ها مورد استفاده قرار می‌گرفت.

همچنین بخوانید

[ویرایش]

منابع

[ویرایش]

مراجع

[ویرایش]