ایدا (زبان برنامهنویسی)
پارادایم برنامهنویسی | چندالگویی: ساختیافته، دستوری، شیءگرا |
---|---|
طراحی شده توسط |
|
ظهوریافته در | فوریه ۱۹۸۰ |
انتشار پایدار | Ada 2012 TC1
/ ۱ فوریه ۲۰۱۶ |
انتشار آزمایشی | Ada 2012 TC1
/ آوریل ۲۰۱۵ |
ایستا، نیرومند، ایمن، نامی | |
سیستمعامل | چندسکویی |
.adb .ads | |
وبگاه | |
پیادهسازیهای بزرگ | |
AdaCore GNAT (free download: http://libre.adacore.com/download),{{ Green Hills Software Optimising Ada 95 compiler, PTC, Inc. PTC ApexAda and PTC ObjectAda , DDC-I Score | |
گویش | |
SPARK، Ravenscar profile | |
متأثر از | |
الگول۶۸، پاسکال (زبان برنامهنویسی)، سی پلاسپلاس (Ada 95), اسمالتاک (Ada 95), جاوا (زبان برنامهنویسی) (Ada 2005), ایفل (زبان برنامهنویسی) (Ada 2012) | |
تأثیر گذاشته بر | |
سی پلاسپلاس، Chapel، ایفل (زبان برنامهنویسی)، جاوا (زبان برنامهنویسی)، Nim، پیال/اسکیوال، PL/pgSQL، روبی (زبان برنامهنویسی)، راست (زبان برنامهنویسی)، Seed7، SQL/PSM، ویاچدیال | |
اِیدا (به انگلیسی: Ada) یک زبان برنامهنویسی شیءگرا و سطح بالا است که در سال ۱۹۸۳ میلادی توسط وزارت دفاع آمریکا ایجاد شد. ایدا گسترش یافته زبان برنامهنویسی پاسکال است. برای ایجاد این زبان برنامهنویسی بیش از هر زبان دیگری هزینه صرف شدهاست.[۱]
نام زبان ایدا برای گرامیداشت ایدا لاولیس، ریاضیدان و نخستین برنامهنویس رایانه، انتخاب شدهاست.[۲]
تاریخچه ایدا
[ویرایش]ایدا ۸۳ بسیار از پاسکال تأثیر گرفت و امکان تعریف پکیج را فراهم آورد که داده و عملکرد را با هم بستهبندی میکرد. اِیدا ۹۵ ویژگی شیءگرایی را اضافه کرد که وراثت نوع را شامل میشود. اِیدا ۹۵ در آغاز با سه دغدغه مهم طراحی شد:
- قابلیت اعتماد و نگهداری برنامه،
- برنامهنویسی به عنوان یک فعالیت انسانی،
- و کارآیی.
این بازبینی زبان برای تأمین انعطافپذیری و توسعهپذیری بیشتر، کنترل بیشتر بر مدیریت ذخیرهسازی و همزمانی، و پکیجگرایی استاندارد شده برای پشتیبانی از نواحی کاربرد مهم، و در عین حال حفظ تأکید اولیه بر قابلیت اعتماد، نگهداری و کارآیی.
خلاصهٔ زبان اِیدا ۹۵
[ویرایش]یک برنامهٔ ایدا از یک یا بیش از یک واحد تشکیل شدهاست. واحدهای برنامه ممکن است زیربرنامهها (که الگوریتمهای قابل اجرا را تعریف میکنند)، پکیجها (که مجموعهای از موجودیتها را تعریف میکنند)، واحدهای وظیفه (که محاسبات همزمان را تعریف میکنند)، واحدهای حفاظت شده (که عملیاتی برای اشتراک هماهنگ دادهها بین وظیفهها را تعریف میکنند)، یا واحدهای عمومی (که فرمهای پارامتردار پکیجها و زیربرنامهها را تعریف میکنند) باشند. هر واحد برنامه معمولاً شامل دوبخش است: یکی بخش ذکر خصوصیات، شامل اطلاعاتی که باید برای واحدهای دیگر آشکار باشند؛ و دیگری بخش بدنهٔ برنامه، شامل پیادهسازی جزئیاتی که لازم نیست برای واحدهای دیگر قابل رؤیت باشد. بیشتر واحدهای برنامه میتوانند بهطور جداگانه کامپایل شوند.
ویژگیهای ایدا
[ویرایش]ایدا یک زبان برنامهنویسی استاندارد شده و همهمنظورهاست که در گسترهٔ وسیعی از کاربردها استفاده میشود – از کنترل موشکها گرفته تا تحویل صورتپرداخت به سیستم کنترل ترافیک هوایی.
ایدا دارای ویژگیهایی است که معمولاً در زبانهای برنامهنویسی دیگر یافت میشود و افزون بر آن از شیوهٔ جدید برنامهنویسی نیز برای کنترل سختافزار مورد نظر تا زمان دقیق سررسید، و برای ایجاد و بهبود برنامههای طولانی و پیچیده توسط گروههای برنامهنویس در دورههای بلندمدت پشتیبانی میکند.
ایدا شیوهٔ صحیح برنامهنویسی را به وسیلهٔ اصول مهندسی نرمافزار یکپارچه با امکان تایپ کد قوی، پیمانهای بودن، قابلیت حمل، قابلیت استفادهٔ مجدد و قابلیت خواندن (یا خوانایی) تقویت میکند. این خصوصیات هزینهها را در تولید و توسعه، بررسی، اشکالزدایی و نگهداری نرمافزار، کاهش میدهد.
قابلیت حمل
[ویرایش]ADAبرای یک سیستم ساخته شد در حالی که میتواند به آسانی کامپایل مجدد شده و به سیستم دیگری منتقل شود، چون تمام کامپایلرهای ایدا معتبر هستند و ایدا یک زبان طراحی نرمافزاری است که از لحاظ بینالمللی استاندارد شده توسط MIL-STD-۱۸۱۵A، ANSI و ISO میباشد.
پیمانهای بودن
[ویرایش]ADA کد را به صورت واحدهای جامعی که میتوانند جداگانه طراحی، نوشته، کامپایل و تست شوند سازماندهی میکند؛ این خصوصیت به برنامه اجازه میدهد که برنامهها به بخشهایی تقسیم شوند و این بخشها جداگانه توسط تیمهایی که بهطور همزمان کار میکنند، نوشته شوند و سپس با یکدیگر مجتمع شوند تا محصول نهایی شکل گیرد.
قابلیت استفادهٔ مجدد
[ویرایش]مفهوم پکیج در ADA اجازه میدهد که کاربران اجزایی از نرمافزار را که میتوانند بازیابی، استفاده و/یا تغییر داده شوند بدون اینکه بر بقیهٔ اجزای برنامه اثر بگذارند، توسعه دهند. واحدهای برنامههای عام ایدا همچنین اجازه میدهد که یک تابع منطقی روی بیشتر از یک نوع داده اجرا شود. پکیجها و برنامههای عام همچنین تجرد دادهها و طراحی مبتنی بر شیء را پشتیبانی میکنند.
قابلیت اعتماد
[ویرایش]امکان نوع قوی در ADA خطاها را هم در کامپایل اولیه و هم در کامپایل مجزا، بسیار سادهتر پیدا میکند. مکانیسم دستکاری و پردازش استثناء در ایدا، برنامههای کاربردی مقاوم در برابر خطا را با ارائهٔ یک روش کامل و قابل حمل خطایابی و واکنش موقرانه به شرایط خطا، پشتیبانی میکند. خصوصیات سازماندهی عملیات در ایدا، استفادهٔ همزمان از الگوهای سطح بالا را به جای تککاره بودن و در معرض خطا بودن، پشتیبانی میکند.
نگهداری
[ویرایش]پیمانهای بودن ساختار و قابلیت خواندن بالای برنامههای ADA، اصلاح و بهبود نرمافزار نوشته شده را، برای یک برنامهنویس دیگر، آسانتر میکند. پیمانهای بودن همچنین اصلاح پکیج را بدون تأثیر بر ماژولهای دیگر برنامه، امکانپذیر میسازد.
زمینههای برنامههای کاربردی ایدا
[ویرایش]موفقیتهای مستند سراسری ایدا، استفاده آن را در دامنهٔ وسیعی از کاربردها برمیشمرند. امروزه ایدا سیستمهای زیر را طراحی میکند:
- سیستمهای صورت پرداخت، سیستم بانکداری تجاری، سیستم معاملهٔ سهمیهبندی کالا، سیستم تراکنش زبان و RDMSها.
- اکتشافات ژئوفیزیک و سیستم پردازش دادهها، و سیستم تجزیهٔ شیمیایی.
- مرکز تجاری مخابرات تلفن همراه و برنامههای تجاری ارتباطات راه دور مانند PABXها.
- FAA در جتهای تجاری، سیستمهای کنترل ترافیک هوایی، سیستمهای ردیابی و هدایت زمان پرواز، شبیهسازهای آموزش پرواز و سیستمهای کنترل/نمایشگر پرواز.
- سفینههای فضایی ناسا و محیطهای ایستگاههای فضایی.
- سیستمهای تولید خودکار، سیستمهای خودکار جابهجایی مواد، سیستمهای جوشکاری رباتیک و سیستمهای مدیریت موجودی.
- سیستمهای نظارت بیدرنگ و پیوسته بهداشتی و کنترل تعبیه شدهٔ بیدرنگ دستگاههای کپی و نسخه برداری.
- سیستمهای تعبیه شدهٔ نظامی استراتژیک، و اکثر برنامههایی که در برنامههای کاربردی و سیستمهای بیدرنگ، استفاده میشوند.
برنامهٔ نمونه
[ویرایش]یکی از برنامههای معمول برای نمایش نحو نگارش در یک زبان برنامه نویسی برنامه Hello World است. برنامه زیر نحوه نوشتن این برنامه را در ایدا نشان میدهد:
with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
پانویس
[ویرایش]- ↑ «The Ada Programming Language». بایگانیشده از اصلی در ۳ اکتبر ۲۰۰۷. دریافتشده در ۱۴ سپتامبر ۲۰۰۷.
- ↑ Das, A Complete Guide to Computer Fundamentals, 138.
منابع
[ویرایش]- Das, S. (2010). A Complete Guide to Computer Fundamentals (به انگلیسی). Laxmi Publications Pvt Limited. Retrieved 2013-10-13.
- [۱]
- [۲]
- استانداردهای آیئیسی
- استانداردهای ایزو
- استانداردهای زبان برنامهنویسی
- زبان برنامهنویسی ایدا
- زبانهای برنامهنویسی ایستا
- زبانهای برنامهنویسی داتنت
- زبانهای برنامهنویسی دارای استاندارد ایزو
- زبانهای برنامهنویسی ساختهشده در ۱۹۸۰ (میلادی)
- زبانهای برنامهنویسی ساختهشده در دهه ۱۹۸۰ (میلادی)
- زبانهای برنامهنویسی سطح بالا
- زبانهای برنامهنویسی سیستمی
- زبانهای برنامهنویسی شیءگرا
- نرمافزارهای ۱۹۸۰ (میلادی)