ایدا (زبان برنامه‌نویسی)

**اِیدا**  یک زبان برنامه‌نویسی شیءگرا و سطح بالا است که در سال ۱۹۸۳ میلادی توسط وزارت دفاع آمریکا ایجاد شد. ایدا گسترش یافته زبان برنامه‌نویسی پاسکال است. برای ایجاد این زبان برنامه‌نویسی بیش از هر زبان دیگری هزینه صرف شده‌است.

نام زبان ایدا برای گرامی‌داشت ایدا لاولیس، ریاضی‌دان و نخستین برنامه‌نویس رایانه، انتخاب شده‌است.

## تاریخچه ایدا
ایدا ۸۳ بسیار از پاسکال تأثیر گرفت و امکان تعریف پکیج را فراهم آورد که داده و عملکرد را با هم بسته‌بندی می‌کرد. اِیدا ۹۵ ویژگی شیءگرایی را اضافه کرد که وراثت نوع را شامل می‌شود.
اِیدا ۹۵ در آغاز با سه دغدغه مهم طراحی شد:
* قابلیت اعتماد و نگهداری برنامه،
* برنامه‌نویسی به عنوان یک فعالیت انسانی،
* و کارآیی.
این بازبینی زبان برای تأمین انعطاف‌پذیری و توسعه‌پذیری بیشتر، کنترل بیشتر بر مدیریت ذخیره‌سازی و هم‌زمانی، و پکیج‌گرایی استاندارد شده برای پشتیبانی از نواحی کاربرد مهم، و در عین حال حفظ تأکید اولیه بر قابلیت اعتماد، نگهداری و کارآیی.

## خلاصهٔ زبان اِیدا ۹۵
یک برنامهٔ ایدا از یک یا بیش از یک واحد تشکیل شده‌است. واحدهای برنامه ممکن است زیربرنامه‌ها (که الگوریتم‌های قابل اجرا را تعریف می‌کنند)، پکیج‌ها (که مجموعه‌ای از موجودیت‌ها را تعریف می‌کنند)، واحدهای وظیفه (که محاسبات هم‌زمان را تعریف می‌کنند)، واحدهای حفاظت شده (که عملیاتی برای اشتراک هماهنگ داده‌ها بین وظیفه‌ها را تعریف می‌کنند)، یا واحدهای عمومی (که فرم‌های پارامتردار پکیج‌ها و زیربرنامه‌ها را تعریف می‌کنند) باشند. هر واحد برنامه معمولاً شامل دوبخش است:
یکی بخش ذکر خصوصیات، شامل اطلاعاتی که باید برای واحدهای دیگر آشکار باشند؛
و دیگری بخش بدنهٔ برنامه، شامل پیاده‌سازی جزئیاتی که لازم نیست برای واحدهای دیگر قابل رؤیت باشد. بیشتر واحدهای برنامه می‌توانند به‌طور جداگانه کامپایل شوند.

## ویژگی‌های ایدا
ایدا یک زبان برنامه‌نویسی استاندارد شده و همه‌منظوره‌است که در گسترهٔ وسیعی از کاربردها استفاده می‌شود – از کنترل موشک‌ها گرفته تا تحویل صورت‌پرداخت به سیستم کنترل ترافیک هوایی.

ایدا دارای ویژگی‌هایی است که معمولاً در زبان‌های برنامه‌نویسی دیگر یافت می‌شود و افزون بر آن از شیوهٔ جدید برنامه‌نویسی نیز برای کنترل سخت‌افزار مورد نظر تا زمان دقیق سررسید، و برای ایجاد و بهبود برنامه‌های طولانی و پیچیده توسط گروه‌های برنامه‌نویس در دوره‌های بلندمدت پشتیبانی می‌کند.

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

### قابلیت حمل
ADAبرای یک سیستم ساخته شد در حالی که می‌تواند به آسانی کامپایل مجدد شده و به سیستم دیگری منتقل شود، چون تمام کامپایلرهای ایدا معتبر هستند و ایدا یک زبان طراحی نرم‌افزاری است که از لحاظ بین‌المللی استاندارد شده توسط MIL-STD-۱۸۱۵A، ANSI و ISO می‌باشد.

### پیمانه‌ای بودن
ADA کد را به صورت واحدهای جامعی که می‌توانند جداگانه طراحی، نوشته، کامپایل و تست شوند سازماندهی می‌کند؛ این خصوصیت به برنامه اجازه می‌دهد که برنامه‌ها به بخش‌هایی تقسیم شوند و این بخش‌ها جداگانه توسط تیم‌هایی که به‌طور هم‌زمان کار می‌کنند، نوشته شوند و سپس با یکدیگر مجتمع شوند تا محصول نهایی شکل گیرد.

### قابلیت استفادهٔ مجدد
مفهوم پکیج در ADA اجازه می‌دهد که کاربران اجزایی از نرم‌افزار را که می‌توانند بازیابی، استفاده و/یا تغییر داده شوند بدون اینکه بر بقیهٔ اجزای برنامه اثر بگذارند، توسعه دهند.
واحدهای برنامه‌های عام ایدا همچنین اجازه می‌دهد که یک تابع منطقی روی بیشتر از یک نوع داده اجرا شود. پکیج‌ها و برنامه‌های عام همچنین تجرد داده‌ها و طراحی مبتنی بر شیء را پشتیبانی می‌کنند.

### قابلیت اعتماد
امکان نوع قوی در ADA خطاها را هم در کامپایل اولیه و هم در کامپایل مجزا، بسیار ساده‌تر پیدا می‌کند. مکانیسم دستکاری و پردازش استثناء در ایدا، برنامه‌های کاربردی مقاوم در برابر خطا را با ارائهٔ یک روش کامل و قابل حمل خطایابی و واکنش موقرانه به شرایط خطا، پشتیبانی می‌کند. خصوصیات سازماندهی عملیات در ایدا، استفادهٔ هم‌زمان از الگوهای سطح بالا را به جای تک‌کاره بودن و در معرض خطا بودن، پشتیبانی می‌کند.

### نگهداری
پیمانه‌ای بودن ساختار و قابلیت خواندن بالای برنامه‌های ADA، اصلاح و بهبود نرم‌افزار نوشته شده را، برای یک برنامه‌نویس دیگر، آسان‌تر می‌کند. پیمانه‌ای بودن همچنین اصلاح پکیج را بدون تأثیر بر ماژول‌های دیگر برنامه، امکان‌پذیر می‌سازد.

## زمینه‌های برنامه‌های کاربردی ایدا
موفقیت‌های مستند سراسری ایدا، استفاده آن را در دامنهٔ وسیعی از کاربردها برمی‌شمرند. امروزه ایدا سیستم‌های زیر را طراحی می‌کند:
* سیستم‌های صورت پرداخت، سیستم بانکداری تجاری، سیستم معاملهٔ سهمیه‌بندی کالا، سیستم تراکنش زبان و RDMSها.
* اکتشافات ژئوفیزیک و سیستم پردازش داده‌ها، و سیستم تجزیهٔ شیمیایی.
* مرکز تجاری مخابرات تلفن همراه و برنامه‌های تجاری ارتباطات راه دور مانند PABXها.
* FAA در جت‌های تجاری، سیستم‌های کنترل ترافیک هوایی، سیستم‌های ردیابی و هدایت زمان پرواز، شبیه‌سازهای آموزش پرواز و سیستم‌های کنترل/نمایشگر پرواز.
* سفینه‌های فضایی ناسا و محیط‌های ایستگاه‌های فضایی.
* سیستم‌های تولید خودکار، سیستم‌های خودکار جابه‌جایی مواد، سیستم‌های جوشکاری رباتیک و سیستم‌های مدیریت موجودی.
* سیستم‌های نظارت بی‌درنگ و پیوسته بهداشتی و کنترل تعبیه شدهٔ بی‌درنگ دستگاه‌های کپی و نسخه برداری.
* سیستم‌های تعبیه شدهٔ نظامی استراتژیک، و اکثر برنامه‌هایی که در برنامه‌های کاربردی و سیستم‌های بی‌درنگ، استفاده می‌شوند.

## برنامهٔ نمونه
یکی از برنامه‌های معمول برای نمایش نحو نگارش در یک زبان برنامه نویسی برنامه Hello World است. برنامه زیر نحوه نوشتن این برنامه را در ایدا نشان می‌دهد:


```ada
with Ada.Text_IO;

procedure Hello is
begin
  Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
```


## پانویس

## منابع

* 
* http://www.adahome.com
* http://www.adahome.com/rm95/rm9x-intro.html

رده:استانداردهای آی‌ئی‌سی
رده:استانداردهای ایزو
رده:استانداردهای زبان برنامه‌نویسی
رده:زبان برنامه‌نویسی ایدا
رده:زبان‌های برنامه‌نویسی ایستا
رده:زبان‌های برنامه‌نویسی دات‌نت
رده:زبان‌های برنامه‌نویسی دارای استاندارد ایزو
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۸۰ (میلادی)
رده:زبان‌های برنامه‌نویسی ساخته‌شده در دهه ۱۹۸۰ (میلادی)
رده:زبان‌های برنامه‌نویسی سطح بالا
رده:زبان‌های برنامه‌نویسی سیستمی
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:نرم‌افزارهای ۱۹۸۰ (میلادی)