ADA هي لغة برمجة جيدة بشكل خاص. تريد أن تعرف كل شيء. ada اللسان برمجة الجحيم الأولى

إذا سألت أخصائي تكنولوجيا المعلومات المحلي: "ما هو الجحيم؟" ستتجاهل الأغلبية مفاجأة فقط، وسيقول شخص ما أن هذه لغة ميتة، بمجرد اختراعها من قبل البنتاغون، والآن لم تستخدم عمليا. في الواقع، فإن EEC واليوم هو مزدهر للغاية وتستخدم بنشاط في مختلف مجالات لغة البرمجة. صحيح، معظم المبرمجين الروس يعرفون قليلا عنه.

من المحتمل أن يكون كل من اضطر للاستمتاع بالطريق الرابع عشر من مترو باريس، بعد أن رأى القطار، حيث لا توجد كابينة الكابينة. يتم التحكم الكامل في حركة القطار على هذا الخط بالكامل من قبل البرنامج الإعلاني.

على الرغم من كل شيء، في مجالات معينة من التكنولوجيا، لا تزال روسيا "قبل الكوكب الكل". وواحد منهم هو تصميم وإنتاج الطائرات البرمائية. الزعيم المعترف به في العالم في هذا المجال هو Tantk لهم. ج.م بيريف. في الآونة الأخيرة، اكتسبت هذه الشركة تطوير البرامج على متن الطائرة على أساس لغة الجحيم للاستخدام عند ترقية أحدث طراز BE-200.

وفي الوقت نفسه، فإن معظم المهنيين المحليين في مجال تكنولوجيا المعلومات في أحسن الأحوال لا يعرفون شيئا عن لسان الجحيم، في الأسوأ - لديهم فكرة خاطئة تماما عن هيردي ككلغة وحش، بمجرد اختراعها من قبل البنتاغون لتطوير النظم العسكرية ، والآن نسي أخيرا.

القليل من التاريخ

يمكن النظر في عيد ميلاد بلغة برمجة بلغة الجحيم في 17 فبراير 1983 - الموافقة التاريخ على معيار ANSI / MIL-STD-1815-A-1983.

التدابير الفنية والإدارية التي اتخذتها وزارة الدفاع كجزء من المشروع لإنشاء وتنفيذ ADA منعت تماما ظهور وتنشر لهجات اللغة. من عام 1983 إلى الوقت الحاضر، تدعم جميع التطبيقات الصناعية معيار ADA الحالي. عندما يتعلق الأمر بضابط فرعية من الإعلانات، لا يتم تحديد هذه المجموعات الفرعية من خلال عدم التنفيذ، ولكن معايير تطوير فئة معينة من النظم.

في عام 1987، تمت الموافقة على معيار ANSI كمعيار ISO (ISO / IEC 8652)، وعندما أجريت الحاجة إلى مراجعة المعيار، كما تم تنفيذ العمل على المراجعة أيضا في إدارة وزارة الدفاع عن الولايات المتحدة في أوائل التسعينيات وبعد بدأ مشروع دولي جديد، الذي انتهى بالبيان في أواخر عام 1994 والنشر في أوائل عام 1995 نسخة جديدة ISO / IEC 8652. هذه هي الوثيقة وتعد اليوم عن طريق تحديد لغة البرمجة في الجحيم.

في الاتحاد السوفياتي، في بداية الثمانينيات، تم تشكيل فريق عامل من قبل برنامج لغة البرمجة بموجب لجنة الدولة المعنية بالعلم والتكنولوجيا. تم جمعها بعناية وتحليل جميع المعلومات المفتوحة حول المشروع، وقد تم استخراج المعلومات المغلقة بجهود الخدمات الخاصة. تم تنظيم مشاريع لتنفيذ الأبواب لأن جميع بنيات EMM تقريبا المستخدمة، ويتضح البعض منهم ناجحا للغاية. وضع انهيار الاتحاد السوفياتي نهاية هذا النشاط. اليوم، يتم استخدام الجحيم في روسيا ورابطة الدول المستقلة من قبل المتحمسين الفرديين.

ما هو الجحيم

توفر جميع اللغات الصناعية الحديثة أساسا واحدة ومجموعة أساسية من الفرص، مما يميز عن حقيقة أنها تسمح لك بذلك، وإلا فإنها تسمح لها بذلك. ومع ذلك، فإن الجحيم، على الأقل في جوانب، يوسع المعيار للغات الحديثة مجموعة من الميزات. أولا، يوفر الجحيم وسيلة عالية المستوى لبرمجة العمليات غير المتزامنة. ثانيا، هذه هي اللغة الوحيدة التي يمكن استدعاؤها وحدات دون أي تحفظات.

مثال ضروري فقط من أجل دحض الأسطورة الشائعة إلى حد ما أن الجحيم لغة كبيرة ومعقدة و "ثقيلة"، ومناسبة فقط لكتابة أنظمة عالية الحجم للغاية وحجم فائق الحجم. في الواقع، يمكن استخدام الجحيم لتطوير برامج صغيرة ومتوسطة الحجم بنفس النجاح مثل الحيوانات المستنسخة الحديثة C و Pascal و Beysika و Java. لذلك، المثال الكلاسيكي لبرنامج "مرحبا، العالم!" يبدو وكأنه ade كما يلي:

من السهل أن نرى أن رمز الجحيم يشبه الكود الموجود في Pascal، والتي تم اختيارها كأحد النموذج الخاص به. يصف السطر الأول اتصال هذه الوحدة المترجمة باستخدام وحدات أخرى - يشار إلى أنه يجب تجميع الروتين الفرعي Hello_world مع الوحدة النمطية ADA.Text_io، وهو مكون من مكتبة محددة مسبقا.

يحدد البرنامج التالي عملية اثنين غير متزامنة:

في قسم الإعلانات المحلية، يصف إجراء TAMALESALE_EXAMPEMAPPAME مهمة الإثبات (السطر 6، يحتوي الصفوف من 8 إلى 17 على نص هذه المهمة). عند التحكم في العملية المقابلة لإجراء المهام Sampamplemable، يتعلق الأمر بالسطر 20، قبل إجراء هذا العبارة الأولى، تتم عملية بدء تشغيل مهمة إتصال، وبعد ذلك يعيش اثنان من هذه العمليات وأداء غير متزامن بشكل غير متزامن من بعضهما البعض. يتكون تنفيذ عامل التأخير (الصفوف 14 و 20) في تعليق العملية المقابلة لعدد الثواني المحددة. وبالتالي، يتم إيقاف تشغيل عملية TAMALESTAME_EXAMPE لمدة 20 ثانية، وفي الوقت الحالي تبدأ عملية المتبرر في طباعة قيم زيادة العداد لكل وحدة، تعليقها ثانية واحدة بعد إخراج كل قيمة. بعد 20 ثانية، تقوم عملية TAMALESTAME_EXAMPLE بتعيين العلم النهائي إلى علامة "الحقيقة"، تتم إكمال الدورة في عملية الإثبات. إن مواصفات المتغير النهائي ككائن بيانات ذرية (سلسلة 4) يجعل من المستحيل قراءة وتغيير قيمة هذا المتغير وتغييرها في وقت واحد.

فيما يلي قالب وظيفة يسمح لك بإبقاء صفيفين بأحد الأبعاد. يمكن تكوين هذا القالب إلى نوع تعسفي، وهو صفيف أحادي الأبعاد، لأن مكونات المهمة وإضافة عمليات إضافة ("إضافة" غير مطلوبة لتكون إضافة حسابية).

يحتوي الصفوف 1-6 على وظيفة مجموعة إعلانات، والسلاسل 8-20 هي جسمها. المحتوى، معلمة الإعداد هو نوع منتظم تعسفي واحد بانتظام مع نطاق فهرس غير محدد (سلسلة 4)، والذي يعرف فقط أن نوع المكونات تعسفية، ومع ذلك، ومع ذلك، يتم تعريف عملية التخصيص للمكونات (السطر 2)، نوع الفهرس هو منفصل تعسفي (سلسلة 4). نظرا لأن علينا أن نكون غير ذاعف إلى صفيفين، فأنت بحاجة إلى معرفة ما هي عملية الإضافة لنوع المكونات. نظرا لأن هذا هو نوع تعسفي، فإننا أجبرنا على نقل إضافة نوع المكونات كمعلمة إعداد رسمية (سطر 5).

في جسم الوظيفة، نتحقق أولا مما إذا كانت أطوال المعاملات تزامنها (سطر 12)، وإلا فإنه لا معنى له على الإضافة إلى ذلك. لا تضمن أطوال الصدفة للأمعاء مصادفة النطاقات الفهرسة، وبالتالي، في الحلقة في نطاق الفهرس من الوسيطة الأولى (السطر 15)، نحتاج إلى حساب فهرس المكون المقابل للوسيطة الثانية. نحن محرومون من فرصة القيام بذلك لنوع الفهرس، كما نعلم عن ذلك فقط أنه يتقدير، لذلك اذهب من القيمة نوع منفصل إلى رقم التسلسل (السمة؟ POS)، احسب التحول اللازم لعدد التسلسل والعودة إلى القيمة المناسبة لنوع الفهرس (السمة؟ Val).

لاحظ أن المعلمات (قابلة للتخصيص) وظيفة "+" اليسار واليمين يتم الإعلان عنها على أنها وجود نوع ARR، ومجموعة الفهرس التي لم يتم تحديدها. ومع ذلك، فإن اليسار واليمين هي معلمات رسمية، في مكانها، عند الاتصال (نتيجة الحمص)، سيتم استبدال الدالة "+" بصفائف محددة ذات نطاقات مؤشر معروفة. نحن في جسم الوظيفة "+" باستخدام سمات المصفوفات (؟ النطاق،؟ أولا،؟ للحصول على معلومات حول نطاق الفهرس الخاص به من الكائن.

لماذا الجحيم؟

كان اختيار لغة مشروع البرنامج نقيا سابقا سؤال فنيوبعد أصبح اليوم مسألة ذات أهمية استراتيجية لها عواقب بعيدة المدى على نجاح المشروع. دعنا نرسم بعض الأسباب التي تم اختيار الجحيم لتنفيذ مشاريع البرنامج من قبل الشركات المختلفة، أو إلزامي للاستخدام في المناقصات.

  • الرغبة في زيادة موثوقية النظام التي يجري تطويرها، لأن عيوب البرامج قد يكون لها عواقب وخيمة على صحة الناس والاقتصاد والبيئة، إلخ. (ADA لديه مرافق ضمان مدمجة).
  • الرغبة في تقليل تكلفة تطوير والحفاظ على النظام.
  • وجود المعايير الدولية وحضور محامرة اللغة هو تقريبا لأي منصة.
  • مزايا نهج منضبطة لتطوير البرمجيات، والتي تصبح مهمة بشكل خاص مثل حجم وتعقيد البرنامج يزيد.
الجحيم و

عند إجراء تحليلات مقارنة لغات شعبية، هناك العديد من النسخ التي يشار إليها هذا الموضوع اليوم في كثير من الأحيان بفئة "الحروب الدينية". لذلك، نقتصر أنفسنا بالإشارة إلى مقال معروف يتم فيه إجراء عدد من الاستنتاجات البليغة.

  1. تطوير البرامج في لغة الجحيم يكلف 60٪ أرخص من مشاريع البرامج المماثلة المنفذة على C.
  2. يحتوي البرنامج في لسان الإعلان عن أي عيوب أقل 9 مرات من البرنامج على ج؛ يحتوي البرنامج على C ++ أقل من برنامج C، وخصائص.
  3. من الأفضل أن SCH لكلا المبرمجين ذوي الخبرة وغير الخبرة، وكذلك للمبرمجين الذين لديهم كل من تصنيف الحد الأدنى والحد الأدنى في مجموعتهم.
  4. تعقيد دراسة لغة الجحيم ليس أعلى من تعقيد دراسة C.
  5. البرامج على ADE هي أكثر موثوقية من برامج SI.

كصورة توضيحية لهذه الاستنتاجات، نعطي مثالا على تطوير البرامج على متن الطائرة للطائرة C-130J وفقا لمتطلبات المستوى ألف من معيار DO-178B. في الوقت نفسه، تم ذكر جودة التعليماتج، 10 أضعاف متوسط \u200b\u200bمستوى البرنامج A. زيادة إنتاجية العمل أربعة من جميع الأقارب إلى مشاريع البرمجيات المقارنة.

الجحيم وجاوة

اضطرت Microsoft إلى تضمين اتفاقيات الترخيص لأنظمة التشغيل الخاصة بها البند التالي ( www.microsoft.com/msdownload/ieplatform/ie/ transicate.txt.): "ملاحظة فيما يتعلق بدعم لغة Java ... تقنية Java ليست مقاومة للإخفاقات وليس المقصود ... للاستخدام في إطار نظم الإدارة في الوقت الحقيقي ...، والتي لغة Java قد يستتبع الفشل الموت أو الإصابة أو البنية التحتية الضرر الثقيلة أو البيئة. Sun Microsystems، Inc. أمرت شركة مايكروسوفت وضع هذا التحذير. "

كما نشير أيضا إلى مقالات وإظهار فوائد لغة الجحيم على جافا.

الأساطير "الجهنمية"

في كثير من الأحيان، مجموعة من المفاهيم الخاطئة المستدامة التي تمنع كل من نشر اللغة والاختيار الواعي للعقيدة حيث ترتبط لغة تنفيذ المشروع مع ADO.

الجحيم هو لسان ميت، لا أحد البرامج على ذلك الآن. في الواقع، يأخذ الجحيم بثقة مكانة من الأنظمة الكبيرة المدمجة مع متطلبات الموثوقية المتزايدة. مقارنة بمنتجات "مراكز الصندوق" لنظام التشغيل Windows، مثل هذه الأنظمة ليست ملحوظة، لأنه موجود في حالة واحدة (ما هي النقطة التي يجب تكرارها في البرنامج السيطرة على حركة قطار المترو)، أو موزعة كجزء من النظام الذي تم بناؤه في (البرمجيات الجانبية).

ADA هي لغة مصممة حصريا للتطبيقات العسكرية. تم تطوير الجحيم بالفعل بمشاركة وزارة الدفاع الأمريكية، لكن لا توجد أسباب تقنية أو إدارية أو غيرها تمنع استخدام الإعلانات لتطوير النظم المدنية. يشبه عدد المشاريع "المدنية" بناء على هذه اللغة اليوم مع عدد المشاريع "العسكرية".

الجحيم كبير جدا ومعقد، من أجل استخدامه في مشروع صغير. حجم وتعقيد جميع اللغات الصناعية الحديثة هي نفسها تقريبا، والتأكد من أنه يكفي لمقارنة حجم أوصافهم ببساطة. تعود هذه الأسطورة إلى بداية الثمانينيات، عندما تمت مقارنة الجحيم ب Pascal أو Fortran 77 أو Baisik.

المبرمجين الذين يعرفون الجحيم، قليلا، يتعلم لغة من الصفر يتطلب جهد مفرط ووقت. في الواقع، يمثل الصعوبة الحقيقية العثور على المتخصصين الذين يفهمون تفاصيل الأنظمة المضمنة والقادرة على إنشاء برامج الجودة بالنسبة لهم. لذلك، على سبيل المثال، لا تتطلب باي، أحد المستخدمين النشطين لغز الجحيم، معرفة هذه اللغة من المرشحين؛ بدلا من ذلك، يتم البحث عن الأشخاص المطلعين على الأنظمة المضمنة ومعالجة برنامج الجودة الصناعية. بعد توظيف هؤلاء الأشخاص الذين تحتاجهم أسبوعين فقط لتدريس لسان الجحيم.

تظهر تجربتنا الشخصية أن المبرمجين المطلعين على واحد أو نوع آخر من Pascal مطلوبة فقط بضعة أيام لبدء تطوير برامج غير معقدة على ADE.

تكنولوجيات الإعلانات الحالية غير فعالة؛ والمترجمين، والرمز الذي تم إنشاؤه من قبلهم، يختلف في الأداء المنخفض. تعود هذه الأسطورة أيضا إلى النصف الأول من الثمانينيات، عندما ظهرت أول تطبيقات للأبواب، في الواقع، أثبتت أن "نظرية وجود مترجم مادي يتوافق مع المعيار". يكفي إجراء عدد من التجارب البسيطة، مبرمجة بعض المهمة النموذجية على ADE، باسكال و SI / C ++، ومقارنة (مع معلمات مترجم مشابه) ثم معدل الترجمة، ومقدار التعليمات الناتجة وسرعة تنفيذها للتأكد من أن أي عدم كفاءة محددة متأصلة في الجحيم، ببساطة غير موجود. تجدر الإشارة أيضا إلى أن نظام برمجة GNAT مع حجم النصوص المصدر هو أكثر من 40 ميغابايت، يتم تنفيذ 90٪ على ADE، وبناء عليه من النصوص المصدر (في الدورة التدريبية التي تتجهها نفسها ثلاث مرات) في حديثة لا يستغرق الكمبيوتر أكثر من نصف ساعة.

التطبيقات الحالية مكلفة للغاية. هذا صحيح، ولكن يجب أن يؤخذ في الاعتبار أن هناك نسخة متاحة للجمهور لنظام برمجة GNAT، وهي مجانية وأسباب قانونية تماما يمكن أن تؤخذ من مستودع برنامج جامعة نيويورك ( fTP://cs.nyu.edu/pub/gnat.) مع النصوص المصدر

جبن مجاني وكيفية تجنب مصائد فئران

GNAT (GNU ADA Translator) هو تطبيق متعدد منصات بلغة إعلانية موجودة تقريبا على جميع المنصات الصناعية الحديثة ودعم توليد التعليمات البرمجية لشعبية المدمج في الهندسة المدمجة. جنات ( www.gnat.com.) تنفذ تماما معيار ADA، بما في ذلك تلك المكتبات المصنفة على أنها اختيارية. بالإضافة إلى مترجم الإعلانات نفسه، يتضمن GNAT مجموعة الأدوات التي وضعتها بيئة المطور المتكاملة المتطورة ومصحح رسومات رسومات متعددة اللغات، والتحقيق في سلوك البرامج ذات العمليات غير المتزامنة. يمكن استخدام المترجم والأدوات ذات الصلة بشكل منفصل عن طريق التسبب في ذلك سطر الأوامروفي إطار بيئة الرسومات المتكاملة لتطوير برامج إعلانية. جميع مكونات GNAT، بما في ذلك تطوير التنمية، لها نفس الواجهة على جميع المنصات. بالإضافة إلى التنفيذ الكامل للوحدة الموصوفة، توفر GNAT مجموعة غنية من التمديد المسموح بها. GNAT هو تطبيق الأطباء في نظام برمجة دول مجلس التعاون الخليجي متعدد اللغات يتكون من مجموعة من محامصات الخطة الأمامية لمختلف لغات الإدخال مع مولد رمز عام، والتي تبسط بشكل كبير تطوير البرامج التي تحتوي على مكونات تنفذ في لغات البرمجة المختلفة.

تم تطوير GNAT وتوزيعها تحت ترخيص GPL. للأسف، ترتبط كتلة الأساطير أيضا مع GPL. لذلك، يعتقد الكثيرون أن البرامج تحت GPL تم تطويرها من قبل مجموعات من المتحمسين غير المنظمة، مجانا تماما؛ نتيجة لذلك، فإن الموثوقية، ووظائف مثل هذه البرامج تترك الكثير مما هو مرغوب فيه، لا تسمح لهم باستخدامها في أي مشاريع خطيرة. في حالة النوت، هذا ليس كذلك. من أجل التأكد من أنه يكفي لعرض قائمة الشركات التي أبرمت عقود مطوريها دعم فني: بوينغ، الفضاء البريطاني، لوكهيد، إريكسون، صعب، إلكترونيات الطيران، إلخ.

توفير إصدارات مظاهرة مجانية هو الممارسة المعتادة للعديد من مطوري البرامج. تتميز GNAT بحقيقة أن النسخة العامة في الوصول المجاني هي نسخة كاملة تماما من التكنولوجيا، دون أي قيود قانونية أو تقنية على استخدامها. تم تنفيذ عدد من المشاريع الخطيرة بنجاح على أساس إصدارات GNAT العامة. تم إرسال محطة Mars Mars Express Automatic Mars Express Automatic 2-Euroge 2 الأوروبية إلى المريخ ( www.beagle2.com/index.htm.)، محطة وثائقية آلية لوزارة الدفاع عن الاتحاد الروسي ( www.ada-ru.org/prj_doc.html.). العيب الوحيد للإصدارات العامة هو أن المطور لا يقدم الدعم الفني لهم.

استنتاج

يلخص، يمكن القول أن لغة الجحيم توفر المطورين مزيج مثالي من النزاهة والتسلسل والموثوقية والكفاءة. تدعم اللغة الإبداع الإبداعي والابتكار، مع توفير الانضباط والمستوى الصناعي لتطوير البرمجيات المطلوبة لتنفيذ أنظمة البرمجيات ذات الأهمية الكبيرة.

المؤلفات
  1. بنيامين بروسجول، مقدمة في ADA 95. www.embedded.com/story/oeg20021211s0034.
  2. ستيفن زيفر، مقارنة تكاليف التطوير في ج و ADA. www.adaic.com/whyada/ada-vs-c/cada_art.html www.ada-ru.org.وبعد المراجع المشروح للكتب في لغة الجحيم، المنشورة باللغة الروسية، يمكن العثور عليها في الموقع

مجردة على الموضوع:

اعادة



يخطط:

    مقدمة
  • 1 ميزات اللغة
  • 2 "مرحبا، العالم!" في الجحيم
  • 3 التاريخ
  • 4 الجحيم في الاتحاد السوفياتي وروسيا
  • 5 منتقدين
  • 6 التوزيع والمنظور
  • 7 أنظمة التشغيل المكتوبة في الجحيم
    • 7.1 أنظمة مدمجة
    • 7.2 النظم في التنمية
    • 7.3 لم تعد النظم الحالية
  • 8 compiors ad.
  • 9 لغات مشتقة
  • 10 حقائق مثيرة للاهتمام
  • ملاحظات
    المؤلفات

مقدمة

ميلادي (اعادة) - لغة البرمجة التي تم إنشاؤها في 1979-1980 نتيجة للمشروع الذي أجرته وزارة الدفاع الأمريكية لتطوير لغة برمجة واحدة للأنظمة المضمنة (أي أنظمة التحكم في المجمعات الآلية العاملة في الوقت الفعلي). بادئ ذي بدء، تم استخدام أنظمة التحكم على متن الطائرة للأشياء العسكرية (السفن، الطائرات، الدبابات، الصواريخ، الصواريخ، القذائف، إلخ). لم يكن للمطورين مهام إنشاء لغة عالمية، لذلك، ينبغي إدراك القرارات التي اتخذها مؤلفو الإعلانات في سياق ميزات منطقة الموضوع المحددة. يتم تسمية اللغة بعد الجحيم Lavleais.


1. ميزات اللغة

في التجسيد الأصلي، موحد في عام 1983، لغة برمجة هيكلية وحيونية تحتوي على وسيلة رفيعة المستوى للعمليات الموازية البرمجة. يمر بناء جملة الملوثة من لغات algol من النوع أو باسكال، لكنها توسعت، وأصبحت أيضا أكثر صرامة ومنطقية. ADA هي لغة تتمتع بالطباعة الصارمة، يتم إلغاؤها من خلال العمل مع الكائنات التي لا تحتوي على أنواع، ويتم تقليل تحويلات الكتابة التلقائية إلى الحد الأدنى المطلق. في مستوى عام 1995، تم إضافة المرافق الأساسية للبرمجة الموجهة للكائنات إلى اللغة، في المعيار 2007 تم استكمال هذه الأموال، وبالتالي فإن الإعلان الحديث هي لغة برمجة موجهة للكائنات.

ميزات بناء الجملة، يمكنك ملاحظة:

  • سجل اللغة - مستقلة.
  • البرامج المعيارية، وآلية التحكم في الاستيراد والتصدير من الأوصاف بين الوحدات النمطية تتضمن توجيهتين مختلفتين: واحد لتوصيل وحدة نمطية أخرى (مع)، وآخر - لاستيراد أوصافه (الاستخدام). من الممكن أيضا إعادة تسمية الوحدة النمطية عند الاستيراد (إعادة تسمية) - يتيح لك هذا الخيار استخدام مبرمج معرفات أكثر ملاءمة لتعيين حزمة.
  • قد تحتوي الحزم (أحد أنواع الوحدات) على رأس وجزء شخصي - ما هو الوارد فيه لا يتم تصدير وحدات أخرى غير متوفرة.
  • يتم دعم آلية الوحدات النمطية المعممة (القابلة للتخصيص): الحزم والإجراءات والوظائف التي تسمح بوضوح خوارزميات معالجة البيانات المعممة دون تحديد نوع معين.
  • نظام نوع متطور، كل من المدمج والمبرمج تم إنشاؤه. هناك العديد من الطرق لإنشاء أنواع جديدة، تدعم اللغة مفاهيمين مختلفين: "النوع الفرعي" و "النوع المشتق". متغيرات من النوع والبحث الفرعي متوافقة ومتغيرات النوع والنوع المشتق - لا.
  • استثناءات معالجة وسائل.
  • المعالجات المتقدمة على الإجراءات والوظائف: يتم دعم معلمات الإدخال والإخراج، ونقل المعلمات الفعلية في ترتيب تعسفي يشير إلى أسماء المعلمات الرسمية ذات القيم الافتراضية.
  • يتم دعم الإجراءات والوظائف والمشغلين - إنشاء العديد من الخيارات للإجراء أو الوظائف أو المشغل بنفس الاسم، ولكن التوقيعات المختلفة (أنواع وعدد المعلمات).
  • دعم تصميم مدمج للبرمجة الموازية: يدعم "المهمة" (بالتوازي مع جزء البرنامج)، "مدخل المهمة" (أداة التزامن والاتصالات بالتوازي إلى المهام قيد التشغيل)، آلية Rendezvu (بروتوكول التفاعل في المهام الموازية المنجزة من خلال المدخلات من أحدهم)، هناك مشغل اختيار محدد لتنظيم تفاعل Interposting المشروط (اختيار مشكلة متوازية يجب أن تتفاعل، اعتمادا على الاستعداد ل Rendezvous وبعض الشروط الأخرى). من حيث المبدأ، في لغة أدوات البرمجة الموازية، يكفي حل فئة كبيرة من المهام التي تتطلب معالجة متوازية دون الوصول إلى الوسائل الخارجية، مثل المكتبات الإضافية أو API لنظام التشغيل.

لتلبية متطلبات الموثوقية، يتم بناء اللغة بطريقة يمكن اكتشاف العديد من الأخطاء في مرحلة التجميع. بالإضافة إلى ذلك، كانت إحدى متطلبات تطوير اللغة هي السهولة بسهولة قراءة النصوص النصية، حتى على حساب أسهل الكتابة. كانت نتيجة هذا النهج "بناء جملة" ثقيلة "إلى حد ما وعديد من القيود المفقودة في اللغات الصناعية الأكثر شيوعا (C و C ++) ويتصورها المتبرمون المحترفون بمثابة فائض، على سبيل المثال، نفس الكتابة الصارمة. أدى ذلك إلى تكوين فكرة ADE باعتبارها لغة معقدة ولمسونة منخفضة وغير مريحة.


2. "مرحبا، العالم!" في الجحيم

العديد من المتغيرات المختلفة للبرنامج "مرحبا، العالم!" يمكنك أن ترى في كتاب Viki المشترك (الإنجليزية). ترجع الاختلافات إلى الحاجة إلى استخدام وظيفة مكتبة put_line - في هذه اللغة هناك ثلاث طرق مختلفة لتنظيم مثل هذا الاستخدام.

مع ada.text_io؛ الإجراء Hello هو استخدام ada.text_io؛ بدء put_line ("مرحبا، العالم!")؛ نهاية مرحبا؛

هنا، لاستخدام وظيفة put_line، يتم استيراد الحزمة التي تحتوي على الحزمة الخاصة بها .text_io باستخدام تصميم الاستخدام، مما يجعل من الممكن استدعاء وظيفة بالاسم دون تأهل - التعليمات في استدعاء اسم الحزمة الذي يحتوي على وظيفة.


3. التاريخ

تم تطوير تطوير اللغة في إطار المنافسة الدولية المنظمة وتمويلها من قبل وزارة الدفاع الأمريكية. كان الغرض من التطوير هو الحصول على لغة برمجة يمكن أن توحدت لتطوير مشاريع حول أوامر الإدارة العسكرية، وخاصة لتطوير النظم العسكرية المضمنة لأجهزة الكمبيوتر العسكرية الكبيرة (بناء على معالج IAPX 432 من إنتل). بدأ العمل في عام 1975، بتشكيل مجموعة من متطلبات اللغة، والتي من شأنها أن تلبي بشكل كامل مطوري أنظمة النوع المحدد. تم تقديم القائمة الأولية للمتطلبات الصادرة بموجب اسم الكود "سولار" إلى عدد من المنظمات والشركات، لمدة عامين محددة باستمرار، تتحول في النهاية إلى وثيقة نهائية تسمى "الصلب".

بعد الانتهاء من تكوين المتطلبات، أجريت تحليل، الذي أظهر أن أيا من لغات البرمجة الحالية ترضي المتطلبات بما فيه الكفاية، لذلك تقرر تطوير لغة جديدة. تم الإعلان عن المنافسة على خلقه في عام 1977، واقترح المطورون بناء على واحدة من الثلاث اللغات: باسكال، Algol-68 أو PL / 1.

من بين 15 مشروعا المقدمة للمنافسة، تم اختيار 4 (كل شيء يستند إلى Pascal). تم إرسال هذه المشاريع إلى مزيد من الصقل. في المرحلة التالية، تم اختيار اثنين من 4 مشاريع، منها، بعد مراجعة أخرى، تم اختيار المرء. حصلت هذه اللغة على اسم "الجحيم" - الذي طور مجموعته تحت قيادة الفرنسي جان إبطيا أعطى اسم اللسان على شرف إعلانات أوجاستا الملك Lavleis (1815-1852)، ابنة الشاعر ج. بايرون، الذي شارك في تطوير برامج لآلة الحوسبة Babbja ويعتبر أول مبرمج في العالم.

في عام 1983، كانت اللغة ANSI بشكل رسمي. تمت الموافقة على لغة لغة ANSI / MIL-MIL-STD-1815-A-1983 في 17 فبراير 1983. صنعت الولايات المتحدة الأمريكية اسم "ADA" من خلال علامة تجارية مسجلة، مما فكر المترجمين اللغوي الذين لم يمروا إجراء الاختبار الرسمي للامتثال للمعايير. يتألف الإجراء في المدى من خلال التحويل البرمجي المختبر عدد كبير (أكثر من 1000) برامج الاختبار (ما يسمى Kit ACVC)، لكل منها تم تعريف نتيجة الاختبار بشكل فريد: إما مجموعة ناجحة، أو إصدار رسالة خطأ محددة تماما. تم إجراء الاختبار على مبدأ "الكل أو لا شيء" - في حالة وجود خطأ في معالجة مثال اختبار واحد على الأقل، لم يعتبر المحول البرمجي عدم اجتياز الاختبار، وكان الاختبار صالحا فقط على نظام الأجهزة والبرامج الذي أجريته. وبالتالي، تم قمع إمكانية تكوين "إصدارات" أو "لهجات" اللسان في الجنين.

في عام 1987، تم توحيد لغة الجحيم بشكل رسمي ISO. من تلك اللحظة، أعطت الولايات المتحدة الأمريكية لغة في أمر عام.

بحلول عام 1990، كان هناك بالفعل حوالي 200 مترجم في العالم، والذي يتوافق مع لغة الجحيم.

في عام 1995 تم اعتماده معيار جديد عدا، المعروف باسم ADA95. تم تقديم لغة برمجة الكائنات في اللغة. بالإضافة إلى ذلك، استكملت اللغة بوسيلة أكثر تطورا للتفاعل مع البرامج المكتوبة بلغات أخرى.

في مارس 2007، يتم نشر التغييرات في معيار Adda. لقد لمست، وخاصة قدرات البرمجة الموجهة نحو الكائنات: تم إدخال واجهات، وسيلة استدعاء الطريقة عادية لمعظم لغات الهجينة، يتم إجراء عدد من الإضافات.


4. الجحيم في الاتحاد السوفياتي وروسيا

في الاتحاد السوفياتي، في الثمانينيات، تم تنظيم مجموعة عمل حول لغة الجحيم تحت Goskomit على العلوم والتكنولوجيا. تدرس المجموعة جميعا مفتوحة (وكذلك على الشائعات الملغومة من الذكاء المغلق) على لغة الجحيم والتحقيق في إمكانية أو جدوى تطوير واستخدام ADA في الاتحاد السوفياتي. أدى نشاط هذه المجموعة إلى نهاية الثمانينات إلى تطوير محامرة الإعلانات لجميع أجهزة الكمبيوتر تقريبا المستخدمة في USSR. تم إصدار العديد من الكتب في لغة الجحيم باللغة الروسية.

في جامعة موسكو الحكومية، تم تنفيذ العمل على إنشاء حزم اختبار الخاصة بهم للمترجمين الإعلانات الخاصة بالامتثال للمعايير. في LSU لإنشاء نظام إعلانات، تم تطويره مسبقا لتنفيذ نظام Algola-68 Pallada، الذي تم نقله إلى الجحيم. يحتوي النظام على بيئة تطوير متكاملة، مترجم، محرر النص، مصحح الأخطاء، مكتبة، نظام التحكم في الإصدارات ومترجم القواعد.

بعد انهيار USSR، تمت مقاطعة العمل على انتشار الأبواب عمليا. صحيح، كانت هناك ثلاثة برامج لتنمية تطوير البرمجيات على ADE (في وزارة الدفاع، وزارة الطيران المدني ووزارة التعليم والعلوم)، لكن تنميةها بطيئة وغير تنسيق. نتيجة لذلك، في روسيا، فإن لغة الجحيم معروفة قليلا، معظم المبرمجين الروس الحديثين يعتبرونها "لغة ميتة" ولا تعرف شيئا عنه. يستخدم ADA في روسيا ووسائل رابطة الدول المستقلة من المتحمسين الفرديين. ومع ذلك، يتم استخدام اللغة لتطوير البرمجيات الصناعية. ومن المعروف أنه تم تطويره إلى حد ما في مشاريع ADE العاملات في روسيا. فيما بينها:

  • محطة وثائقة لوزارة الدفاع عن الاتحاد الروسي. المهمة الرئيسية هي ضمان تبادل المعلومات الوثائقي في شبكات نقل وزارة الدفاع عن الاتحاد الروسي. تم تطوير مجمع البرامج والأجهزة بشكل مشترك من قبل منظمة التصنيع "معدات الحوسبة والأتمتة تعني" (الأجهزة) ومجموعة من مبرمجات القطاع خارج مركز شمال القوقاز للسيارات "Streela". يتم كتابة البرنامج المعقد في لغة برمجة ADA باستخدام برنامج التحويل البرمجي GNAT. يتم إجراء دعم الحسابات الموزعة بواسطة مكون إضافي للهاد.
  • مجمع معدات الهوائية والملاحة القياسية للطائرات البرمائية الروسية BERIV BE-200وبعد تم تنفيذ التطوير من قبل المعهد البحثي لمعدات الطيران في Zhukovsky، إلى جانب الشركة الأمريكية إشارة الحلفاء، فلوريدا، الولايات المتحدة الأمريكية. تم استخدام مجمع تطوير أنظمة الإعلانات DDC-I في منصة Intel 80486.

5. النقد

منذ ظهور ADA، تم انتقاد بعض السلطات المعترف بها في تطوير لغات البرمجة، أولا وقبل كل شيء، تعقيد بناء الجملة وحجم كبير. على وجه الخصوص، انتقدت اللغة تشارلز هور ونيكلوس ويرث (المشاركة في مشروعها في هذه المسابقة، لكنها تقاعدت بعد المرحلة الأولى)، وكذلك Edsger Diacstra.

شكك دايناكسترا في أن لغة هذه التعقيد قد تكون متوقعة وإدارتها.

إذا كان ADA سيعطي المعيار، فمن المستحسن أن يتم توثيقه بشكل لا لبس فيه. حاولت مجموعتان على الأقل القيام بذلك؛ نتيجة لذلك، أصدر كلاهما حوالي 600 صفحة من النص الرسمي. إنه أكثر مما هو ضروري للتأكد من استحالة تحديد ما لا يقل عن تحديد كلا الوثيقتين بنفس اللغة. يكمن خطأ عدم السيطرة الواضح لهذين المستندين الواضح في مجموعتين منهم، وليس في شكليهم، ولكن فقط باللغة: دون ضمان تعريف رسمي، ما إذا كان مطوروها يمكنهم إخفاء أنهم يقدمون وحشا غير مدار. إن حقيقة أن ADA ستخفض مشاكل البرمجة وزيادة موثوقية تطوراتنا إلى الحدود المقبولة هي مجرد واحدة من تلك الحكايات الجنية التي يمكن أن تؤمن بها الأشخاص الذين لديهم تعليم عسكري فقط.

الخيال العلمي والواقع العلمي في علوم الكمبيوتر (EDSGER W. Dijkstra، EWD952)

وأعرب هار عن أسفه لأن "خشخيشات والفرش سادت على المتطلبات الأساسية للموثوقية والأمن" والتحذير من "صواريخ أرمادا، الطيران ليس هناك بسبب الأخطاء التي لم يتم العثور عليها في مترجم عسلي". تحدث نيكلاوس ويرث أكثر تقييدا، ولكن أيضا سلبا. قال: "الكثير من كل شيء يسقط على مبرمج. لا أعتقد ذلك، بعد أن درس ثلث الإعلانات، يمكنك العمل بشكل طبيعي. إذا لم تقم بإتقان جميع تفاصيل اللغة، فيمكنك الاستمرار في التعثر عليها، وهذا سيؤدي إلى عواقب غير سارة ". جان إيشبيا، رئيس مطوري ADA، معربا عن "احترام وإعجابه"، لم يتفق معه، قائلا: "Wirth يعتقد في حلول بسيطة للمشاكل المعقدة. أنا لا أؤمن بهذه المعجزات. مشاكل معقدة تتطلب حلولا معقدة. "

يسبب الشكوك والإجراءات لفحص تجميع محول البرمجيات لمعايير اللغة عن طريق الاختبار. من الاعتبارات العامة، من الواضح أن الاختبار يمكن أن يجد تباينا، لكن لا يمكنه ضمان صحة. التأكيد العملي هذه هي حقيقة أن المحامرة المعتمدة، التي يتم اختبارها على مجموعة اختبار أخرى، وجدت عدم امتثال للمعيار.

يجادل مؤيدو الأبواب بأن البديل الوحيد للغة الكبيرة والمعقدة في المشاريع الكبيرة هو استخدام العديد من اللغات المدمجة، والتي تولد حتما مشاكل في التوافق، للتخلص منها الذي اخترعه الجحيم. ولاحظوا أيضا أن فكرة تعقيد التطوير على ADE صحيح جزئيا فقط: كتابة برنامج بسيط على ADE يتطلب حقا المزيد من الوقت أكثر من اللغات الأخرى الأقل رسمية، النوع SI، ولكن تصحيح الأخطاء والصيانة للبرامج ، وخاصة كبيرة ومعقدة، مبسطة كبيرة. وفقا ل Stephen Ceiger من شركة البرمجيات الرشيدة، فإن تطوير البرامج على ADE ككل تكاليف كاملة 60٪ أرخص، والبرنامج المتقدما لديه عيوب أقل 9 مرات من عند استخدام لغة SI.


6. التوزيع، وجهات النظر

في الممارسة العملية، اتضح أن الجحيم، وأخذ مكانا مخصصا لها في التطورات العسكرية والعلبة للأنظمة المدمجة، ولم يخرج من هذا المتخصص، ولا في الغرب، ولا في الاتحاد السوفياتي، أو في ما بعد السوفياتي الفضاء. هناك اسباب كثيرة لهذا. يقول مؤيدو المعارضون إلى المعارضين في تعقيده وعيوبه، يقول أنصار، أولا وقبل كل شيء، على الظروف الموضوعية لمظهر اللغة والجانبين السلبي لعملية تنفيذها. ومن المثير للاهتمام، أن رأي S.I. Rybin، وهو باحث كبير بجامعة Nivz Moscow State، Adacore EU Consultant، خبير في لغة الفريق العامل ISO المعني بمعايير اللغة. إنه يعتقد أن إخفاقات الجحيم ملزمة لسببين رئيسيين:

  • أثناء تصميم لغة البنتاغون، افترض أن كل شيء سيتم إنشاء برنامج جديد فقط على ADE. بسبب هذا الجحيم، تلقى وسيلة بدائية للغاية للتفاعل مع البرامج بلغات أخرى. في الممارسة العملية، اتضح أن كل شيء مكتوب على الجحيم بشكل عام - غير واقعي (على الأقل لأن هناك حاجة للتفاعل مع التطورات الجاهزة بلغات أخرى). لذلك، في الصناعات التي لم يكن هناك متطلبات صعبة لكتابة لغات أخرى، أكثر تتكيف مع المتوسطة متعددة اللغات. في عام 1995، تم حل مشكلة التفاعل مع اللغات الأخرى، ولكن تحولت الوقت إلى تفويتها.
  • ومن المفارقات، منع توزيع الإعلانات الدعم المالي والتنظيمي للبنتاغون. عملت البرامج الموجودة في ADE، المكتوبة للجيش، على أقوى تكنولوجيا الحوسبة، والتي كانت متاحة، لذلك اعتنى مطورو المجمعون بالمرور الأول من اختبارات ACVC، وعند ذلك - على كفاءة المترجم و الكود الناتج عنها. في أوائل الثمانينيات، بدأ طفرة من الحواسيب الصغيرة، وتم تحسين طهرات اللغات الشائعة (Pascal، C، Baysik) على الفور لأنظمة الطاقة المنخفضة. للحصول على حافز الإعلانات في هذا التحديث، لم يكن الأمر كذلك، نتيجة لذلك، في غضون بضع سنوات، تحولت الكتلة الرئيسية للحساب العالمي، أن أجهزة الكمبيوتر الشخصية تحولت دون مترجم لاصق عالي الجودة. بطبيعة الحال، فقدت الجحيم هذا الجزء السوقي. ظهر فقط مؤخرا نسبيا مترجم غنات وعالية الجودة والإنتاجية، ولكن أيضا فقدت الوقت هنا.

في الوقت الحالي، استقر الجحيم بما فيه الكفاية بما فيه الكفاية في تطوير أنظمة كبيرة مدمجة من الموثوقية العالية، هنا لا يوجد أي منافسين قويين تقريبا. تطبيق اللغة ينمو تدريجيا، على الرغم من بطيء تماما. وفقا لبعض التوقعات الحذر [ ]، مع تخفيض الجهاز وتوزيع الأنظمة المضمنة مع صعوبة في السوق لبرامج البرامج، قد ينمو بشكل ملحوظ، وسوف تنمو استخدام اللغة أيضا.

بالإضافة إلى ذلك، لدى الجحيم، وإن كان محدودا جدا، استخدم في مجال التعليم العالي. في جامعة موسكو الحكومية وجامعة خاركوف اقرأ دورات خاصة في الجحيم. ومع ذلك، وفقا لنفسه S. I. ريبينا،

... الآن في الفضاء ما بعد السوفيتي في مجال صناعة البرمجيات والتشكيل، كانت هناك حلقة مفرغة واضحة: في الصناعة عمليا لا أعرف عن الجحيم، على التوالي، من جانب الصناعة لا يوجد طلب التعليم لإعداد أخصائيي الإعلانات، والأشخاص الجدد يأتون من جامعات إلى هذه الصناعة، والتي لا تعرف أي شيء عمليا أي شيء عن الجحيم.


7. أنظمة التشغيل المكتوبة في الجحيم

7.1. أنظمة مدمجة

  • مارتي.
  • RTEMS - OS المصدر المفتوح، تم تطوير DARPA USA من قبل Darpa
  • Ravenskar.
  • RTOS-32 - نظام التشغيل الملكي

7.2. النظم في التنمية

  • Auroraux (مشروع إعادة كتابة OpenSolaris Core، ثم Tragonfly BSD إلى لغة الجحيم)
  • Lovelace (نظام التشغيل على Kernel L4)

7.3. لم تعد النظم الحالية

  • BIIN ™.
  • pulse ™.
  • adaos.

8. compiors ad.

اسم شركة إصدار نظام التشغيل موقع إلكتروني
adamagic. sofcheck. الجحيم 95. ? www.sofcheck.com.
أدامولتي. برامج التلال الخضراء. ADA 83، ADA 95، SI، C ++، FORTRAN سولاريس سبارك، جنو / لينكس X86، ويندوز www.ghs.com.
ديسمبر أدا. هيوليت باكارد ada 83. OpenVMS. h71000.www7.hp.com.
جنات. adacore. الجحيم 83، الجحيم 95، الجحيم 2005، سي Solaris Sparc، Linux X86 / X86-64، النوافذ، أخرى libre.adacore.com.
المحكمة الجنائية الدولية. شركة Irvine Compiler. الجحيم 83، الجحيم 95 DEC VAX / VMS، HP 9000/700، Solaris Sparc، Dec Alpha OSF / 1، PC Linux، SGI IRIX، Windows www.irvine.com.
جانوس / أدا. برنامج rr. الجحيم 83، الجحيم 95 SCO، UNIXWare، التفاعلية، MS-DOS، ويندوز www.rrsoftware.com.
ماكسادا. منافس الجحيم 95. لينكس / زيون، PowerPC www.ccur.com.
Objectada. aonix. الجحيم 95. Solaris SPARC، HP-UX، IBM AIX، Linux، Windows www.aonix.com.
powerada. أنظمة OC. الجحيم 83، الجحيم 95 لينكس، AIX (ADA 95)؛ نظام IBM 370/390 (ADA 83) www.ocsystems.com.
قمة العقلانية. IBM عقلانية الجحيم، C، C ++ سولاريس سبارك، لينكس www-01.ibm.com.
نتيجة DDC-I. الجحيم 83، ADA 95، سي، فورتران سولاريس سبارك، ويندوز www.ddci.com.
XD ADA. SWEP-EDS. ada 83. Openvms Alpha / Vax www.swep-eds.com.
XGC ADA. برنامج XGC. الجحيم 83، الجحيم 95، سي Solaris Sparc، PC Linux، Windows (Cygwin) www.xgc.com.

باستثناء GNAT و XGC (لبعض المنصات)، يتم دفع المحامرة المذكورة أعلاه. تقدم بعض الشركات، مثل Aonix، إصدارات مظاهرة مجانية، محدودة إما عن طريق وقت الاستخدام أو بالوظائف.

تحتوي بيئات NetBeans و Eclipse على موصلات للعمل مع الجحيم.


9. المشتقات

يستخدم بناء جملة لغة الجحيم بهذه اللغات على النحو التالي:

  • pl / sql.

10. حقائق مثيرة للاهتمام

  • رسميا، المنافسة على تطوير لغة، ونتيجة لذلك تم إنشاء لغة الجحيم، كانت مجموعات مطور مجهولة - قدمت مشاريعها بموجب أسماء مفهومة بحيث لا تستطيع لجنة المنافسة أن تأخذ في الاعتبار هويات المطورين عندما اختيار الفائز. ولكن في الممارسة العملية، كواحد من أعضاء المفوضية كتبوا، كانت الأذواق المطور مختلفة لدرجة أنه لم يكن من الصعب تحديد المؤلف للمشروع.
  • تستند جميع اللغات التي دخلت إلى الجولات الأخيرة من هذه المسابقة إلى باسكال. في هذا الصدد، يمكن أن يتميز الجحيم مسبقا باسم باسكال، وضعت مع محاسبة المتطلبات الأساسية الخمسة المعينة. في الوقت نفسه، ذهب المؤلفون بشكل أساسي على طول طريق التوسع في باسكال مع عناصر جديدة. نتيجة لذلك، اتضح لغة أكثر تعقيدا بكثير.
  • باللغة الروسية، هناك نكات مرتبطة بغموض التعبير "مرحبا بلغة"، بما في ذلك تلك القائمة على أوجه التشابه مع وجود لغة خوارزمية روسية، والمعروفة أيضا باسم "لغة الجنة". يتضمن برامج البرامج الفولكلور إبرام مقالات الدعاية السوفيتية في مالور ستورا (1984):

لغة البنتاغون - عدو العالم. لغة "الإعلانات" - صوت HES الحراري النووي ... في لغة "الإعلانات"، تسمع لعنة الجنس البشري.


ملاحظات

  1. الدليل المرجعي للإعلان 83. الفصل 1.3. أهداف ومصادر التنمية - www.ada-ru.org/arm83/ch01s03.html
  2. فاديم ستانكيفيتش. سيدة الجحيم - www.kv.by/index2006451104.htm
  3. تحديث قياسي على ISO.ORG - www.iso.org/iso/ar/cataloguedeTailpage.cataloguedeail؟csnumber\u003d45001
  4. Bryabrin V. M. برنامج ECM الشخصي. م.: العلم، 1988.
  5. 1 2 مقابلة S. I. Rybina - www.ada-ru.org/wiki/rybin
  6. لغات البرمجة الموجهة للكائنات، صافي، لغات البرمجة منصة ADA، مقالات مع أمثلة على رمز ADA.
    النص متاح تحت ترخيص العموم الإبداعي الإبداعي - ShareAlike.

سيرجي بوبروفسكي

يبدأ تاريخ هذه اللغة منذ عام 1975، عندما قررت وزارة الدفاع الأمريكية (MO) أن تبدأ في تطوير لغة برمجة واحدة للقوات المسلحة الأمريكية، وفي المستقبل وللجميع الناتو. تبدأ قصته بالاسم، من أجل الجحيم - اسم أوغسطس أدو لافلييس، الذي يعتبر أول مبرمج، ابنة الشاعر الإنجليزي بيرايرون وبعض ميلبانك أنابيلا، الذي انهار الزوجه إلى الأبد بعد الولادة ابنة، التي ظهرت في 10 ديسمبر 1815. بشكل عام، يكتنف تاريخ Cybernetics في لغز قاتم، وفقط الحقائق المجزية يمكن للمرء أن يحكم على أن العديد من الصوفات والكسر في آخر مائتي من الناس كانوا في آخر مائتي عام، من أغسطس دي مورغانا، أحد المعلمين من Adda، وتنتهي مع دعامات نوربرت وينر، الذي درس أساليب التكوين الرأي العام والتلاعب بها.

بعد شارت تشارلز باباج آلة الحوسبة الميكانيكية، كتبت ADA لها البرنامج الأول لحساب معاملات برنولي. في المستقبل، طورت نظرية البرمجة الحقيقية، قدمت مفهوم دورة وعدة من الناحية الرئيسية، التي تتعلم حرفيا تقريبا طلاب الكليات عبر الإنترنت! اليوم، من المعروف أن الجحيم للجميع كأول مبرمج - وفوجه، لكنه فوجئ أين تتمتع الفتاة الصغيرة بهذه القدرات الفريدة؟ لقد أجابت نفسها بصراحة حول هذا السؤال: "أقسم الشيطان بأنه لن يكون عمره 10 سنوات، حيث رأيت كمية معينة من الدم الحيوي من أسرار الكون، ولن تتمكن من تحقيق وفيات عادية شفاه. لا أحد يعرف ما هي الطاقة المرعبة والطاقة لا تزال غير مستخدمة في مخلوقي الصغير المرن ... ". ومع ذلك، لم يتم العثور على مقدمي مشروع القرار في مشروع آلة الحوسبة - لم تكن الصواريخ النووية بعد، وقد فقدت الجحيم، وفقدت كل دولته وتضرب التاريخ القذر، في سن 37، مثل أبها الشهير.

لذلك، ما إذا كان الأمريكيون لديهم الكثير من إكسترا كحيل، باستخدام اسمها كاسم لمثل هذا المشروع الطموح، فإن السؤال مثير للجدل للغاية.

ولكن العودة إلى تاريخ اللغة نفسها. بعد خمس سنوات من بدء المشروع، تم اختيار مئات الخبراء من 17 خيارا، والمرء الوحيد المرضي لمتطلبات مو، واللغة التي طورتها مجموعة صغيرة تحت إشراف عالم موهوب جان إيبسبيا. تم نشر النسخة النهائية من المعيار الدولي ISO 8652: 1987 في عام 1987. وفقا للتقارير الرسمية، شارك جميع أفضل المتخصصين في مجال البرمجة في إنشاء هذه اللغة وإعادة صقل هذه اللغة، والتي، ومع ذلك، مشكوك فيها. على سبيل المثال، يتم تأكيد ذلك من خلال عدم وجود مفهوم كائن في الإصدار الأصلي من الإعلانات وغير المشاركة، لأسباب واضحة، في مشروع المبرمجين السوفيتي هذا.

تم استثمار عشرات مليارات الدولارات في تطوير البنية التحتية لادو حول العالم. هذا أدى إلى ظهور بيانات طموحة من النوع "القرن العشرين سيكون تحت علامة الإعلانات"، ومع ذلك، مثل المعتاد، فإن الحياة تشكل جميعها في مكانها.

لسوء الحظ بالنسبة للولايات المتحدة (وبالتالي، وفقا لذلك، لحسن الحظ بالنسبة ل "المعارضين المحتملين" في أمريكا)، تم الانتهاء من تطوير معيار واضح لهذه اللغة وإنشاء محاميل فعال في ذلك الوقت (بداية الثمانينيات)، عندما يكون كان يخرج بالفعل على أفق صناعة البرمجيات الجديدة لغة C ++ مع أيديولوجية الكائنات. من الصعب الآن القول إن لجنة مطوري ADA شهدت كيف تزايد شعبية C ++ و Mode، نسي، نسيان كائن. ولكن تم إنفاق الأموال المخصصة بالفعل، تم إنشاء المعيار، ولم يكن هناك طريق للعودة.

بنية ADA مشابهة جدا باسكال، وحتى أكثر دقة، على الوحدة النمطية. يمثل بناء جملة معظم المشغلين والأوصاف من عمليا إلى وحدات بناء الجملة، على الرغم من أنها ظهرت في نفس الوقت تقريبا مع الجحيم، ومن الصعب القول الذي قد أثر على ما إذا كان له تأثير على الإطلاق. في الجحيم، على وجه الخصوص، تم إضافة عدد قليل جدا من الملحقات المختلفة، لذلك مدمجة، مقارنة بنفس pascal، لا يمكن استدعاء هذه اللغة بأي شكل من الأشكال. من عدد الفرص، فإنه سيذكر PL / 1. ولكن نظرا لأن التركيز الرئيسي للمبدعين من الأبواب تم التوافق مع رغبات "الإدارات الأولى" الأمريكية، فإن وسائل غلق (الرؤية) من البيانات والقدرة على إنشاء كتل فردية باستخدام المواصفات فقط (أوصاف الواجهة من الوحدات النمطية) للمطورين الآخرين وقتهم الأكثر مثالية. على سبيل المثال، لم يكتسب مبرمج، في الواقع رمز لحساب مسار الرحلة الصاروخي المجنح، حتى أين وأي أغراض سيتم استخدام وحدتها، على الرغم من أنه كان لديه إمكانية الوصول إلى المواصفات المطلوبة للموظفين الآخرين ويمكن تصحيحه بسهولة رمز الكود دون أي مشاكل. نظرا لضمان التمييز الصارم للوصول إلى مستويات مختلفة من المواصفات، فمن المستحيل أحيانا تحديد هذا الإجراء الذي سيتم فيه استدعاء هذا الإجراء. ومع ذلك، فإن مثل هذه الرغبة في تطوير البرامج المستقل أدت إلى حد كبير نظام معقد العلاقة بين مواصفات الوحدات النمطية وظهور بعض "الثقوب" القادرة على التدابير الآثار الجانبية، ومع ذلك، فإن وجود الولايات المتحدة تعتبر مفيدة للغاية.

تعزيز العناصر بشكل كبير من كتابة البيانات، وأنواع أنفسهم أكثر رسمية. تم استبعاد جميع الوظائف المرتبطة بالمقدمة من بناء الجملة القياسي، وقد أصبحت معالجة المواقف الاستثنائية جزءا لا يتجزأ من اللغة. بالإضافة إلى ذلك، تم إحضارها إلى حد قوة هياكل السيطرة، والتي فعلت الجحيم الأكثر تقدما بين لغات الركاب الأخرى.

سرعان ما أصدرت بورلاند باسكال توربو باكال، والتي تم بناؤها في مفهوم الوحدة، وأحضرت نسختها من باسكال إلى ADE قدر الإمكان، ولكن في المستقبل المحاولات لإنشاء لغات البرمجة المحاضرة للجيل الثالث، المصممة للتطوير لم يتم إجراء مشاريع عالية عالية، لحسن الحظ،. لذلك، وضع الجحيم نقطة جريئة في سلسلة طويلة من اللغات الإجرائية البسيطة، بدءا من Fratran و Algola. في الواقع، تم تجسيد كل ما يمكن اختراعه في إطار أيديولوجية البرمجة الهيكلية في آدي. ثم تمزز برمجة الكائنات بسرعة، وانتقل الجحيم إلى الخلفية.

ومع ذلك، فإن هذه اللغة لا تزال تحتل مكانة واحدة لا يوجد فيها مساوية له. بالإضافة إلى مجموعة منفصلة للوحدات النمطية وضمان السرية الهرمية للمواصفات، تم تنفيذ مثل هذه الممتلكات بهذه اللغة مثل الدعم البرمجة الموازية. انتهى عند مستوى عال أو أقل في Algole-68، ثم تم تطويره في الوحدة النمطية -2، وقد تم تجسيده في عوامل قوية للغاية من الكنوز، ما يسمى بالمهام التي يمكن تنفيذها بشكل مستقل عن بعضها البعض على أجهزة كمبيوتر متوازية. هذا أدى إلى ولادة أيديولوجية كاملة من البرمجة بناء على المهام التي يمكن تنفيذها "pseudo-parallel" - على جهاز كمبيوتر مع معالج واحد. في الوقت نفسه، تم تقسيم المهمة الصلبة نفسها إلى مجموعة من إجراءات العمل في وقت واحد، تتفاعل بشكل مستقل مع بعضها البعض. هذا مذكرت بالطريقة لحل المشكلة في المقدمة: يتم وصف عالم افتراضي معين، ثم سيكون "بدأ" للعمل، والحل موجود.

بشكل خاص بشكل مفاجئ، الولايات المتحدة لسبب ما أو آخر تخلى عن أيديولوجية الكائنات، والتي تتجسد تماما

60s في Simul-67، وربما أسفها أكثر من مرة. صحيح، تم تقديم بعض الاستبدال للشفقة لعدد من القدرات التي توفرها البرمجة الموجهة للكائنات إلى لسان مثل البرمجة الموجهة للكائنات - ما يسمى القوالب، أي إجراءات مع معلمات أنواع غير مؤكدة. ولكن لا تزال المزايا الرئيسية للأبواب، مما يسمح لها اليوم بتحميل هجوم لغات أكثر تطورا، بالإضافة إلى تمويل قوي، دعم مدمج للمهام الموازية و وسائل قوية تنسيق تفاعلهم. تجدر الإشارة إلى أن التوجه الرئيسي ل ADA ليس بأي حال نظام أتمتة المحاسبة في الولايات المتحدة الأمريكية، والبعثات القتالية البحتة من هذا المثال، على سبيل المثال، مثل الملاحة المعالج الدقيق في صاروخ تشتت الذات في الوقت الحقيقي، حيث من الضروري معالجة المعلومات في نفس الوقت، واردة باستمرار من مجموعة متنوعة من أجهزة الاستشعار الأكثر تنوعا.. في السابق، تمت كتابة هذه المهام على مجمع، مما أدى إلى مجموعة متنوعة من الأخطاء وصحوبات المرافقة. لمهام الجحيم هذه، بالطبع، مناسبة لأنها مستحيلة.

ومع ذلك، لا يزال الجحيم في وضعه وكأداة جيدة لتطوير كبير مجمعات البرمجياتوبعد صحيح، الآن الأصوات التي تدعم هذه اللغة أكثر هدوءا بالفعل، مثل هذا تقريبا: "الجحيم على الأقل ليس أسوأ من سي." مو الولايات المتحدة الأمريكية، مع مراعاة أخطائها الرئيسية - عدم وجود أشياء، وفقا للمتطلبات الحديثة لتكنولوجيا تطوير البرامج وضعت معيار جديد ISO / IEC 8652: 1985 (ه). يصف إصدار لغة ADA95 (أو ADA9X). الشيء الأكثر إثارة للاهتمام هو أن هذا الإصدار هو أول نظام برمجة موجه نحو الكائنات في العالم، والذي يتم تقديم المعيار الدولي، على ما يبدو، على أساس الطلب (مع C ++ حتى الآن اتضح). بالإضافة إلى ذلك، تم تحسين لغة وضوح البيانات في مواصفات الوحدات النمطية بلغة وسيلة زيادة كفاءة عمل المشاكل الموازية.

تشير الولايات المتحدة الأمريكية بشكل غير مباشر إلى دماغه العزيز وحتى سجلت كلمة "ADA" باعتبارها علامة تجارية لها. صحيح، في وقت لاحق، بدلا من العلامة التجارية، قررت مو استخدام "ADA" كعلامة معتمدة داخلية. بدون الكثير من الفرح، تشير الولايات المتحدة الأمريكية إلى ظهور الإصدارات التجارية من هذه اللغة. بالطبع، لا يحق لأحد أن يحظر لك كتابة مترجمك، لكنه يحصل على اعتراف تجاري، والامتثال له ضروري للمعايير العسكرية، ويتم اختبارها فقط من قبل لجنة AJPO مع الولايات المتحدة الأمريكية، والتي تشيك بدقة للغاية مترجم التحويل البرمجي للعديد من المتطلبات، بما في ذلك السياسية الواضحة والخالصة.

ومع ذلك، يمكن الحصول على العديد من الإصدارات من العملات، حيث يحدث عادة مع لغات البرمجة، مجانا، وأعني في هدية، وليس فقط طريقة القراصنة، ولكن مجرد نسخة مجانية، وبالطبع، مقابل المال.

من الإصدارات المجانية، أولا وقبل كل شيء، من الضروري تسليط الضوء على محمول GNAT - GNU ADA95. كجزء من مشروع جنو (موزعة بحرية من قبل)، يمكن الحصول عليها في النصوص المصدر. يمكن أن تعمل على جهاز كمبيوتر مع معالج واحد، من الضروري فقط أن نظام التشغيل يدعم تعدد المهام. قد يكون هذا، على سبيل المثال، نوع من إصدار UNIX أو OS / 2. كما MS DOS - تخمين نفسك. ومع ذلك، إذا كنت ترغب حقا في تشغيل عمليات موازية مئات أو موازيك على موظفيك بموجب MS DOS 6.x، فمن الممكن تماما تجربة ADA / ED - برنامج التحويل البرمجي ومترجم إصدار لغة 1987، الذي، الذي، ومع ذلك، غير متوافق تماما مع المعيار وليس لديه عدد من العناصر الأساسية.

إذا كان هناك مال، يتم تسهيل الوضع، بالطبع،. في الراتب الشهري للمبرمج الروسي المتوسط، يمكنك الشراء، على سبيل المثال، أولا، اكتب نظام التحكم في الثلاجة. أنظمة أكثر تكلفة لنظام التشغيل Windows، OS / 2 أو UNIX، معتمدة من قبل الولايات المتحدة الأمريكية، يمكنك محاولة الشراء مباشرة من شركات المطور، وهناك حوالي عشرات.

ومن المثير للاهتمام، أن التقييس لم يكن فقط اللغة نفسها، مما جعل من الممكن إنشاء برامج محمولة بسهولة، ولكن أيضا مجموعة من أجهزة الإيدز المطور - مختلف مكتبات الإدخال / الإخراج وتنظيم الواجهة الرسومية، قبل المواسعة، المركبات، مولدات التعليمات البرمجية، محلل شفرة المصدر المنطقي، ومجمعات اختبار البرامج، إلخ. بالطبع، هناك حزم كبيرة تشمل جميع وسائل التطوير الموحدة، لكنها على الأرجح مكلفة للغاية.

سيكون من المثير للاهتمام أن نعرف ما إذا كان الاتحاد السوفياتي يعمل على اللغات المقصود بحل المهام العسكرية المماثلة. أو هل كتب المتخصصون لدينا فقط على المجمع؟

لسان الجحيم هو أكثر أو أقل دائما على السمع. في مقاعد البدلاء المدرسية، ضحكنا على اسمها، في البرنامج الجامعي، تم ذكره جاف بلغة تم تطويرها بناء على طلب وزارة الدفاع الأمريكية، ولكن فقط مبرمجات نادرة وصلوا إلى بناء الجملة أو التطبيق مباشرة. من هنا كان هناك رأي خاطئ بأن وظائف لغة ADA فقط على المعدات السابقة، والحاجة إلى أنها ستختفي مع الترقيات الطبيعية.

وهو بعيد جدا عن الحقيقة.

مظهر

في السبعينيات من القرن العشرين، في خضم الحرب الباردة، رتبت وزارة الدفاع الأمريكية مسابقة دولية، بناء على نتائجها من الضروري اختيار لغة برمجة للاستخدام العسكري. ومع ذلك، لم يتم ترتيب أي من اللغات الحالية لأعضاء اللجنة، لذلك، بموجب خيار طويل وعدة تحسينات على النور، ودعا لغة الجحيم، والتي تسمى بحيث تكريما ل ADU Lavleis. بعد ذلك، ساحر طويل الأجل مع التقييس، وتسجيل العلامات التجارية، وحظر المترجمين المخصصين والإجراءات الأخرى التي تغلب على الرغبة في الجمهور الجماعي للعمل مع الجحيم.

عند الإخراج، اتضح اللغة المتخصصة تماما مصممة للتعقيد نظم الحوسبة مع زيادة متطلبات الأمن. مرة أخرى، نظرا لمتطلبات البنتاغون والمعايير الصارمة، فإن التفاعل مع لغات البرمجة الأخرى صعبة للغاية، لذلك حتى وقت قريب، للانتقال إلى السوق الشامل من الجحيم تقريبا كانت هناك فرصة عمليا. ولكن مع أرخص التكنولوجيا ومضمانات التقنيات المستخدمة، تظهر هذه الفرصة.

بناء الجملة

في البداية، ADA هي لغة برمجة وحدات تتمتع ببناء جملة مكتوب صارم من Pascal و Algol. إذا قمت بتدريس الأول في المدرسة أو المعهد، ثم النظر في "مرحبا، العالم!" يجب أن تواجه الحنين:

مع ada.text_io؛

الإجراء مرحبا هو.
استخدم ada.text_io؛
يبدأ.
put_line ("مرحبا، العالم!")؛
نهاية مرحبا؛

واحدة من المتطلبات الرئيسية للغة كانت موثوقية استخدامها. وفقا لذلك، استلزم قيود صارمة على الهيكل والأنواع والكتابة والكثير. بالإضافة إلى ذلك، يتم تعقب جميع الأخطاء هنا تقريبا في مرحلة التجميع.

شرط آخر هو أقصى قدر من القراءة من التعليمات البرمجية في النموذج المطبوع، مما أدى إلى ارتفاع اللغة الناتجة والمرونة المنخفضة.

معايير لاحقة حل هذه المشاكل جزئيا، ولكن لأسباب واضحة، لم يصنعوا الثعبان الثاني من الجحيم.

الجحيم اليوم

على عكس رأي الجمهور الواسع، لا تزال لغة الجحيم تستخدم بنشاط، ليس فقط في الولايات المتحدة وليس فقط في الصناعة العسكرية. لذلك، على سبيل المثال، الجزء فوق الطائرة البرمائية Beriev BE-200 مكتوب فقط على الجحيم. القطارات المترو دون سائق يركض في العديد من المدن الرئيسية (باريس ولندن ونيويورك، إلخ)، تستخدم المعدات مع اللغة العسكرية الأمريكية أيضا المعدات.

ونعم، بالطبع، من بين "العملاء" كان هناك طيران عسكري ومدني (على وجه الخصوص، بوينغ 777)، الصواريخ، المكوكات، الأقمار الصناعية - بشكل عام، قائمة كاملة تقريبا من المنتجات الأمريكية باهظة الثمن بلا حدود تنطوي على أعلى درجة من الأمن.

توقعات - وجهات نظر

تم انتقاد اللغة اللاصقة في وقت المظهر، وعندما أصبح من الواضح أن خطط Grandee's Grandiose لا تنسى تماما مع الواقع، وحتى الآن. السبب وراء ذلك لغة غير مريحة، وتعقيد المعايير المكتوبة في عامي 1983 و 1995، وكذلك قصيرة النظر للمطورين الذين حرموا لغة الجحيم للجمهور الشامل.

ومع ذلك، ما يقرب من 40 سنة الاستخدام النشط تم تأكيد ذلك، ربما مع مهمتها الرئيسية، لغة ADA تعاملت - معها، لا يزال من الممكن إنشاء رمز موثوق للأنظمة مع تحسين متطلبات الأمان. في الوقت نفسه، إذا نظرت إلى الاتجاهات الحديثة، فإن عدد هذه المنتجات ينمو باطراد: السيارات ذات المحركات الطارقة والمركبة الفضائية والمركبة الفضائية الخاصة والحائر الصغيرة، وقطارات عالية السرعة، بالإضافة إلى عدد كبير من الأنظمة المضمنة. كل هذا مجال محتمل لنشاط الجحيم. أضف هنا حقيقة أن المعيار قد تم إعادة صياغته وترقيته بشكل خطير في عام 2012، وأدوات العمل تخرج أيضا وتحديثها.

وبالتالي، فإن الجحيم هو جزء من الماضي اللطيف، وأحد الأدوات لبناء مستقبل مشرق. وبالتأكيد لن يتقاعد.

(الجحيم 2005)، إيفل (ADA 2012)

C ++، Chapel، "Drago". ، إيفل، غريفين. ، جافا، النيم، يطير على مظلة لقارب، PL / SQL، PL / PGSQL، Ruby، Seed7، "Sparforte". ، البريك، SQL / PSM، VHDL

تتضمن ميزات ADA: طباعة قوية، آليات طلية (حزم)، أثناء التحقق، المعالجة الموازية (المهام، المراسلة المتزامنة، الكائنات المحمية ومشغلي الاختيار غير محدد)، والاستبعاد والمعالجة العامة. وأضاف ADA 95 دعم البرمجة الموجهة للكائنات، بما في ذلك الإرسال الديناميكي.

يقلل Syntax ADA بين اختيار الطرق لأداء العمليات الأساسية، ويفضل الكلمات الرئيسية الإنجليزية (على سبيل المثال، "أو" و "ثم") في الرموز (مثل "||" و "&&"). يستخدم الجحيم المشغلين الحسابين الرئيسيين "+"، "-"، "*" و "/"، ولكن يتجنب استخدام أحرف أخرى. كتل التعليمات البرمجية محدودة بالكلمات، مثل "الإعلان"، "ابدأ" و "النهاية"، حيث "النهاية" (في معظم الحالات)، يغلق معرف الكتلة (على سبيل المثال، إذا كانت النهاية، إذا ... , حلقة ... دورة نهاية). في حالة الكتل الشرطية، يتجنب تحدثت مرة أخرى ما يمكن أن ينخفض \u200b\u200bمع غير صحيح إذا تعبيرات بلغات أخرى، مثل C أو Java.

تم تصميم الجحيم لتطوير أنظمة برامج كبيرة جدا. يمكن جمع حزم ADA بشكل منفصل. يمكن أيضا تجميع مواصفات حزمة ADA (واجهة الحزمة) بشكل منفصل دون التحقق من الالتزام. يتيح لك ذلك اكتشاف المشكلات في مرحلة مبكرة في مرحلة التصميم قبل بدء التنفيذ.

يتم دعم عدد كبير من الشيكات أثناء التجميع أثناء التجميع للمساعدة في تجنب الأخطاء التي لن يتم اكتشافها قبل وقت التنفيذ في بعض اللغات الأخرى، أو تتطلب إجراءات صريحة سيتم إضافتها إلى التعليمات البرمجية المصدر. على سبيل المثال، يتطلب بناء الجملة اسم إغلاق كتلة صريح لمنع الأخطاء بسبب العلامة المحدودة غير المتسقة. يتيح لك الامتثال للكتابة الصارمة اكتشاف وجود أخطاء البرامج القياسية (معلمات غير صحيحة أو اضطرابات النطاق أو روابط غير صالحة أو أنواع غير لائقة وغيرها) أو أثناء التجميع أو غير ذلك أثناء التنفيذ. بما أن التوازي هو جزء من مواصفات اللغة، يجوز للمترجم في بعض الحالات اكتشاف الموازع المحتمل. عادة ما تحقق المترجمون عادة من أخطاء الإهداء بالمعرفات، ووضوح الحزم، والإعلانات الزائدة، وما إلى ذلك، ويمكن أن توفر تحذيرات ونصائح مفيدة حول كيفية تصحيح الخطأ.

يدعم ADA أيضا التحقق من الوقت للتحقق من الحماية من الوصول إلى الذاكرة المحتجزة، وضغط تجاوز الخطأ، واضطرابات النطاق، من الأخطاء، أخطاء الوصول، وغيرها من الأخطاء التي يمكن الكشف عنها. يمكن تعطيل هذه الشيكات في مصالح كفاءة الأداء، ولكن غالبا ما يتم جمعها بفعالية. ويشمل أيضا أموال للمساعدة في التحقق من البرنامج. لهذه الأسباب، يتم استخدام الجحيم على نطاق واسع في النظم الحرجة، حيث يمكن لأي شاذة أن تؤدي إلى عواقب وخيمة للغاية، على سبيل المثال، الموت من حادث أو إصابة أو خسارة مالية شديدة. ومن الأمثلة على الأنظمة التي يستخدم فيها ADA إلكترونيات الطيران، قسم الشرطة، السكك الحديدية، المصرفية، العسكرية والمركبة الفضائية.

إدارة الذاكرة الديناميكية هي مستوى عال ونوع آمن. الجحيم ليس لديه التهاب العادي أو التهاب العدو ولا تعلن ضمنا عن أي نوع من المؤشر. بدلا من ذلك، يجب أن يحدث جميع توزيع الذاكرة الديناميكي والتحرير من خلال الإعلان عن طريق أنواع الوصول وبعد كل نوع من الوصول له المناسب تجمع تخزين البيانات التي تعالج تفاصيل إدارة الذاكرة المنخفضة المستوى؛ يمكن للمبرمج استخدام إما تجمع التخزين الافتراضي أو تحديد جديد (هذا صحيح بشكل خاص للوصول إلى الذاكرة غير الموحدة). يمكنك حتى أن تعلن عدة أنواع مختلفة الوصول، والتي تعين كل نفس النوع، ولكن استخدام أعمدة تخزين مختلفة. بالإضافة إلى ذلك، توفر اللغة شيكات الوصول كما أثناء التجميع وأثناء التنفيذ، الذي يضمن ذلك تكلفة الوصول لا يمكن أن يكون عنها نوع الكائن، يشير إلى ذلك.

على الرغم من أن دلالات اللغة تسمح لك بجمع القمامة تلقائيا من الكائنات التي يتعذر الوصول إليها تلقائيا، فإن معظم التطبيقات لا تدعمها بشكل افتراضي، لأن هذا سيؤدي إلى سلوك لا يمكن التنبؤ به في الأنظمة في الوقت الفعلي. يدعم الجحيم الشكل المحدود للمنطقة بناء على إدارة الذاكرة؛ بالإضافة إلى ذلك، فإن الاستخدام الإبداعي لحمامات التخزين يمكن أن يوفر شكل محدود من جمعية القمامة التلقائية، لأن تدمير تجمع التخزين يدمر أيضا جميع الكائنات في المجمع.

التاريخ

يستمر العمل في تحسين وتحديث المحتوى الفني لغوي البرمجة ADA. تم نشر التصحيح الفني إلى الاتحاد الأفريقي 95 في أكتوبر 2001، والتعديل الرئيسي، ISO / IEC 8652: 1995 / AMD 1: 2007 نشر في 9 مارس 2007 في مؤتمرات ADA-Europe 2012 في ستوكهولم، موارد جمعية ADA (ARA) ) وأعلن الجحيم عن الانتهاء من التصميم احدث اصدار دليل البرمجة ADA دليل ومراجع للمنظمة الدولية للتوحيد القياسي (ISO) للموافقة عليها. تم نشر ISO / IEC 8652: 2012 في ديسمبر 2012.

تشمل المعايير الأخرى ذات الصلة ISO 8651 -3: 1988 نظم معالجة المعلومات رسومات الحاسوب، نظام الجرافيك الأساسية (GKS) لغة ملزمة الجزء 3: الجحيم .

هياكل اللغة

"مرحبا بالعالم!" في ada.

مثال نموذجي لهذه اللغة في بناء الجملة هو برنامج HI World: (Hello.adb)

مع ada.text_io؛ استخدم ada.text_io؛ الإجراء Hello يبدأ put_line ("مرحبا، العالم!")؛ نهاية مرحبا؛

يمكن إعداد هذا البرنامج باستخدام محمول GNAT موزعة بحرية بواسطة المصدر المفتوح.

gnatmake hello.adb.

أنواع البيانات

لا يعتمد نظام ADA على مجموعة من أنواع البدائية المحددة مسبقا، ولكن يسمح للمستخدمين بإعلان أنواعهم الخاصة. هذا البيان، بدوره، لا يستند إلى العرض الداخلي للنوع، ولكن على وصف الهدف الذي ينبغي تحقيقه. يسمح هذا للمترجم لتحديد حجم الذاكرة المناسب لهذا النوع، والتحقق من وجود انتهاك تحديد النوع أثناء التجميع ووقت التنفيذ (I.E.، النطاق، تجاوز الفضاد المخزن المؤقت، نوع الاتساق، إلخ). يدعم ADA الأنواع الرقمية المحددة في النطاق عن طريق وحدة الأنواع، والنوع الإجمالي (التسجيلات والمصفوفات)، وكذلك نوع الإدراج. تحدد أنواع الوصول الرابط إلى مثيل النوع المحدد؛ غير مسموح المؤشرات inepited. الأنواع الخاصة المقدمة في أنواع المهام والأنواع المحمية.

على سبيل المثال، يمكن تمثيل التاريخ على النحو التالي:

اكتب day_type هو النطاق 1 .. 31؛ اكتب home_type هو النطاق 1 .. 12؛ النوع سنة_TYPE هو نطاق 1800 .. 2100؛ ساعات الساعات هي وزارة الدفاع 24؛ من النوع الأسبوعي هو (الاثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت، الأحد)؛ تاريخ النوع هو اليوم القياسي: Day_type؛ الشهر: شهر_TYPE؛ السنة: سنة_type؛ سجل نهاية

يمكن ضبط الأنواع عن طريق إعلان فرعية:

subtetype_hours هي ساعات المدى 0 .. 12؛ - على الأكثر 12 ساعة للعمل في اليوم Subtetype_day هو نطاق أيام الأسبوع الاثنين .. الجمعة؛ - أيام للعمل_ تحميل: مجموعة ثابتة (العمل_day_day) من العمل - إعلان نوع ضمني: \u003d (الجمعة \u003d\u003e 6، الاثنين \u003d\u003e 4، آخرون \u003d\u003e 10)؛ - طاولة البحث لساعات العمل مع التهيئة

قد تحتوي أنواع المعدلات، مثل محدودة، مجردة، خاصة إلخ. يمكن أن تكون أنواع خاصة يمكن الوصول إليها وأنواع محدودة لا يمكن تغييرها أو نسخها داخل الحزمة التي تحددها فقط. يضيف ADA 95 ميزات إضافية للتوسع من النوع الموجه للكائنات.

جمل التحكم

الجحيم يقترح أيضا الكائنات المحمية للحصول على استثناء متبادل. الكائنات المحمية هي شاشة تصميم كتصميم، ولكن أيضا استخدام الواقي بدلا من المتغيرات الشرطية للإنذار (مناطق حاسمة مشروطة بالمثل). الكائنات المحمية تجمع بين تغليف البيانات والاستثناء المتبادل الآمن من الشاشات، وكذلك حارس الدخول من المجالات الحرجة الشرطية. الميزة الرئيسية مقارنة بالشاشات الكلاسيكية هي أن المتغيرات الشرطية غير مطلوبة لنقل الإشارات، وتجنب القدرات المحتملة بسبب دلالات قفل غير صحيحة. وكذلك المهمة، والكائن المحمي هو نوع محدود مدمج، ولديه أيضا إعلان جزء وجسم.

يتكون الكائن المحمي من البيانات الشخصية المغلفة (والتي يمكن أن تكون متوفرة فقط داخل الكائن المحمي)، بالإضافة إلى الإجراءات والوظائف والسجلات المضمونة لتكون حصرية متبادلة (مع الاستثناء الوحيد للوظائف اللازمة لتكون جانبا تأثير بهذه الطريقة، وقد يعمل في وقت واحد مع وظائف أخرى). يتم حظر مهمة استدعاء الكائن المحمي إذا تم تنفيذ المهمة الأخرى حاليا في نفس الكائن المحمي، ويتم إصدارها عندما تترك هذه المهمة الأخرى الكائن المحمي. يتم وضع المهام المحظورة في قائمة الانتظار على الكائن المحمي من وقت الوصول المطلوب.

البيانات المحمية للكائن مشابهة للإجراءات، ولكن بالإضافة إلى ذلك حارس وبعد إذا تم تقدير الحارس ك FALSE، فسيتم حظر مهمة المكالمات، ويتم إضافتها إلى قائمة الانتظار لهذا السجل؛ الآن يمكن السماح بمهمة أخرى كائن محمي، نظرا لأن أي من المهام قيد التنفيذ حاليا داخل الكائن المحمي. يتم تغيير حجم الحراس كلما خرجت المهمة من الكائن المحمي، لأن هذه هي المرة الوحيدة التي يمكن فيها تغيير تقييم الحراس.

يمكن أن تكون المكالمات القياسية مطلوبة لسجلات أخرى مع نفس التوقيع. تم حظر المهمة التي مطلوبة وإضافتها إلى قائمة الانتظار الهدف؛ هذا يعني أنه يتم إصدار الكائن المحمي ويسمح لك بتلقي مهمة أخرى.

إختر يمكن استخدام المشغل الموجود في ADA لتنفيذ مكالمات الإدخال غير القابلة للحظ، ولا يتم تحديده بواسطة اختيار السجلات (أيضا مع الأمان)، وقت الانتظار والمقاطعات.

يوضح المثال التالي بعض مفاهيم البرمجة الموازية في ADA.

مع ada.text_io؛ استخدم ada.text_io؛ إجراء حركة المرور هو نوع Airplane_id هو النطاق 1 .. 10 - 10 طائرات نوع المهام الطائرة (ID: AirPlane_ID)؛ - مهمة تمثل الطائرات، مع معرف كمعلمة تهيئة اكتب airplane_access هو الوصول إلى الطائرة؛ - نوع المرجع إلى مجرى المطار المحمي نوع المدرج - المدرج المشترك (المحمي للسماح بالوصول المتزامن) Entry Second_Aircraft (ID: AirPlane_ID)؛ - جميع الإدخالات مضمونة حصرية direct_runway (ID: AirPlane_ID)؛ الدخول wait_for_clear؛ واضح واضح: منطقية: \u003d صحيح؛ - البيانات الخاصة المحمية - عام أكثر من مجرد علم ... مدرج نهاية اكتب Runway_Access هو الوصول إلى جميع المدرج؛ - تأخذ مهمة تحكم الحركة الجوية طلبات الإقلاع والهبوط وحدة تحكم نوع المهمة (my_runway: runway_access) - إدخالات المهام لرسالة الرسائل المتزامنة retact_takeoff (ID: في Airplane_ID؛ إقلاع: خارج Runway_Access)؛ reploach (ID: في Airplane_id؛ نهج: خارج Runway_Access)؛ تحكم نهاية؛ - تخصيص الحالات المدرجة Runway1: المدرج المستعار؛ - Instantiate وحدة تحكم المدرج 1: تحكم (Array1 "الوصول)؛ - وحكم تحكم لإدارته ------ تطبيقات الأنواع المذكورة أعلاه ------ مدرج الجسم المحمي هو الإدخال تعيين_Aircraft (ID: AirPlane_ID) عند الوضوح - يتم حظر مهام الدعوة في دخول الدخول حتى يكون الشرط صحيحا البدء واضح: \u003d خطأ؛ put_line (airplane_id "صورة (ID) &" On Runway ")؛ End؛ Entry Cleared_Runway (ID: Airplane_ID) عندما لا يكون واضحا، يبدأ الواضح: \u003d صحيح؛ put_line (airplane_id" image "image (id) &" مسطحة المدرج ")؛ نهاية؛ الدخول wait_for_clear عند الوضوح يبدأ فارغة. - لا حاجة لفعل أي شيء هنا - لا يمكن أن تدخل المهمة إلا إذا كان "مسح" صحيح نهاية؛ مدرج نهاية تحكم جسم المهام هو بدء حلقة my_runway. wait_for_clear؛ - انتظر حتى يتوفر المدرج (مكالمة الحظر) تحديد - انتظر نوعين من الطلبات (أيهما Runnable أولا) عند طلب_ما "عدد" \u003d 0 \u003d\u003e - بيان الحرس - قبول فقط إذا لم تكن هناك مهام في قائمة انتظار عند الطلب قبول طلب_takeoff (ID: في Airplane_ID؛ إقلاع: خارج Runway_Access) القيام به - بدء الجزء المتزامن my_runway. تعيين_Aircraft (ID)؛ - مدرج الاحتياطي (المحتمل حظر المكالمة إذا كان كائن محمي مشغولا أو دخول حارس خطأ) الإقلاع: \u003d my_runway؛ - تعيين قيمة المعلمة "خارج" لإخبار الطائرة التي المدرجة end tree_takeoff؛ - نهاية الجزء المتزامن أو قبول الطلب_ approbach (ID: في Airplane_id؛ النهج: خارج Runway_Access) قم بعمل My_Runway. تعيين_Aircraft (ID)؛ النهج: \u003d my_runway؛ طلب النهائي_ أو. - إنهاء إذا لم تبقى أي مهام يمكنها الاتصال إنهاء نهاية الاختيار نهاية حلقة؛ نهاية؛ هيئة هيئة المهام هي RWY: Runway_Access؛ بدء تحكم 1. طلب_takeoff (ID، RWY)؛ - كتل المكالمات هذه حتى تقبل مهمة وحدة التحكم وإكمال كتلة قبول put_line (airplane_id "صورة (ID) و" تقلع ... ")؛ تأخير 2.0؛ Rwy. cleared_runway (ID)؛ - لن يحظر المكالمة ك "واضح" في RWY هو الآن خطأ ولا توجد مهام أخرى تكون داخل كائن محمي تأخير 5.0؛ - يطير حول قليلا ... حلقة SELECT - حاول طلب تشغيل جهاز التحكم في المدرج 1. request_approach (ID، RWY)؛ - هذه مكالمة حظر - سيتم تشغيلها على وحدة تحكم تصل إلى قبول الكتلة والعودة عند الانتهاء خروج؛ - إذا تم إرجاع المكالمة، "إعادة صياغة للهبوط - إجازة حدد كتلة ومتابعة ... أو تأخير 3.0؛ - مهلة - إذا لم يكن هناك إجابة في 3 ثوان، افعل شيئا آخر (كل شيء في الكتلة التالية) put_line (airplane_id "صورة (ID) &" في نمط القابضة ")؛ - ببساطة طباعة نهاية رسالة حدد؛ حلقة النهاية؛ تأخير 4.0؛ - هل نهج الهبوط ... put_line (airplane_id" الصورة (معرف) & "locked down! ")؛ راوي. cleared_runway (معرف)؛ - إخطار المدرج الذي أنجزناه هنا هنا. نهاية؛ new_airplane: Airplane_Access؛ ابدأ في i في Airplane_id "Range Loop - إنشاء عدد قليل من المهام الطائرة New_Arplane: \u003d طائرة جديدة (I)؛ - ستبدأ الجري مباشرة بعد الإبداع تأخير 4.0؛ نهاية حلقة؛ حركة المرور النهائية؛

براغما

Pragma هو توجيه مترجم يقوم بنقل المعلومات إلى المحول البرمجي بحيث التلاعب المحدد للمنتجات المترجمة. يتم بناء بعض pseudocommentation في اللغة، وغيرها من التطبيقات.

من الأمثلة على الاستخدام العام لمجموعة التحويل البرمجي PRAGM ستقوم بتعطيل بعض الوظائف، مثل التحقق من وقت التوقيت أو فهرس الصفيف، أو التحقق من الحدود، أو تكليف المحول البرمجي لإدراج رمز الكائن بدلا من استدعاء الوظيفة (في C / C + + يجعل الوظيفة).

  • تصيب - مواصفات بيئة البرمجة لدعم تطوير البرمجيات في ADA
  • ملف تعريف Ravenscar مجموعة فرعية من وظائف ADA تعدد المهام، تهدف إلى ضمان سلامة الحوسبة الحاسمة في الوقت الحقيقي الثابت
  • شرارة (لغة البرمجة) - لغة البرمجة تتكون من مجموعة فرعية محدودة للغاية من ADA المشروحة مع معلومات التعريف التي تصف السلوك المرغوب للمكونات والاحتياجات الفردية أثناء التنفيذ