الخلاصة

  • بعد عودتها إلى الخدمة في U.S. Navy عام 1967، ساعدت Grace Hopper على تحويل أهداف توحيد المترجمات إلى فريق وعملية تحقق. وفي شهادتها الشفوية عام 1980، نسبت إلى George Baird أسلوباً مهماً أتاح تشغيل إجراءات اختبار مشتركة لـ COBOL وFORTRAN على حواسيب مختلفة.
  • جعلت اختبارات U.S. Navy بعض خصائص اللغة ومخرجاتها قابلة للرصد والمقارنة. لكنها لم تثبت أن أي مترجم صحيح بالكامل، ولا أن جميع التوليفات الممكنة اختُبرت، ولا أن كل تطبيق سينتقل إلى نظام آخر من دون تعديل.
  • المعيار، والدليل على اجتياز مترجم لاختبارات محددة، والبرهان على عمل برنامج بعينه في بيئة تشغيل أخرى، ادعاءات مترابطة لكنها غير متطابقة. جمعها تحت كلمة «قابلية النقل» يحوّل دليلاً محدود النطاق إلى وعد مفتوح.

المعيار ليس نتيجة اختبار

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

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

من هذه الزاوية تُفهم مرحلة أقل تداولاً في مسيرة Grace Hopper. فبدلاً من إعادة سرد قصة «أول مترجم» أو تقديم COBOL كإنجاز فردي، يمكن تتبع انتقال العمل من توحيد اللغة إلى اختبار تطبيقاتها. لم تعتمد قابلية النقل على صياغة مشتركة فقط؛ بل على سلوك المترجم وعلى ما تستطيع مجموعة الاختبارات إثباته.

وكان لهذا العمل تاريخ سابق وجماعي. ففي مقاله عام 1972 عن نظام Department of Defense للتحقق من مترجمات COBOL، وصف George N. Baird مجموعة عمل بدأت عام 1963. كتبت المجموعة برامج للتحقق من إتاحة المترجمات للخصائص التي يحددها المعيار. لم يكن الهدف تصحيح كل مترجم أو تجربة كل تركيب ممكن، بل اختيار خصائص واختبارها منفردة وفي مجموعات منتقاة، ثم تسجيل ما جرى.

جعل الإخفاق مرئياً

بحسب وصف Baird، واصلت إجراءات U.S. Navy الأولى ذلك العمل وأضافت تقارير أدق: كان بالإمكان مقارنة المخرجات الفعلية بالمخرجات المتوقعة، وتحديد الإجراء الذي ظهر فيه الخلل. وتضمنت المجموعة الأولية 12 برنامجاً ونحو خمسة آلاف سطر من الشيفرة المصدرية.

تغيّر هذه التفاصيل معنى كلمة «متوافق». فبدلاً من تعميم واسع يقدمه المورّد، أصبح بوسع المشتري طرح سؤال محدد: هل قبل هذا الإصدار من المترجم هذه الخصائص، وهل أنتج تلك النتائج في ظروف الاختبار المعلنة؟ ويمكن لفريق آخر إعادة التشغيل ومقارنة النتائج. لم يُلغِ ذلك الحاجة إلى الحكم المهني، لكنه جعل جزءاً من الحكم قابلاً للفحص.

Hopper بنت قدرة مؤسسية ولم تعمل وحدها

في شهادة التاريخ الشفوي عام 1980، روت Hopper أن Norman Ream، المسؤول في U.S. Navy عن معالجة البيانات آلياً، طلب منها العودة إلى الخدمة الفعلية عام 1967. ووصفت المهمة بأنها تطوير إجراءات للاختبار والتحقق تدعم معايير اللغات وتجعل البرمجيات أيسر نقلاً. ولشرح الفجوة، شبّهت الأمر باختبار منتج وفق مواصفاته.

وقالت إنها طلبت مبرمجين لتنفيذ العمل. ومن الأسماء التي ذكرتها الموظف المدني Ed Ford، وملازم، وبحّاران كان أحدهما Baird؛ وانضم Arnold Johnson لاحقاً. كما وصفت مجلة Datamation عام 1971 إجراءات التحقق التابعة لـ U.S. Navy بأنها عمل فريق يرأسه Captain Hopper. يدعم ذلك دورها القيادي، لكنه لا يجعلها المؤلفة المنفردة للشيفرة أو للنظام.

والتسلسل الزمني مهم أيضاً. ففي يناير 1971، ذكرت Datamation أن U.S. Navy تشترط التحقق من مترجمات COBOL، وأن Department of Defense وNational Bureau of Standards اتفقا من حيث المبدأ على تطوير إجراءات موحدة بالاستناد إلى معيار ANSI. الاتفاق «من حيث المبدأ» ليس خدمة حكومية مكتملة. إنه يسجل توجهاً مؤسسياً في ذلك الوقت، لا نتيجة نهائية لاحقة.

الآلية التي نسبت Hopper تصميمها إلى Baird

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

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

تظل ذاكرة Hopper رواية لاحقة عن تصميم الفريق وتقسيم العمل. ويقدم مقال Baird عام 1972 سنداً مستقلاً لنظام التحقق وبنيته التقنية. وتدعم المصادر مجتمعة صورة متوازنة: ساعدت Hopper على إنشاء المهمة والفريق، وقدّم Baird آلية مهمة لتشغيل الاختبارات عبر الحواسيب، فيما شارك آخرون وسبقهم عمل معياري سابق.

ما الذي لم تثبته مجموعة اجتازت الاختبارات؟

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

لم تكن هذه مشكلة خاصة بـ COBOL. فالتاريخ الذي نشره NIST لجهد منفصل لاختبار FORTRAN قادته Betty Holberton وElizabeth Parker يوضح أن مجموعة اختبارات محدودة لا تستطيع إثبات الصحة الكاملة لمترجم. كان ذلك مشروعاً موازياً في National Bureau of Standards، لا مجموعة COBOL التابعة لـ U.S. Navy التي ارتبطت بعمل Hopper. والفصل بين المشروعين مهم تقنياً وتاريخياً: إذ صارت اختبارات المطابقة ممارسة مؤسسية عبر فرق ولغات مختلفة.

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

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

إرث من الادعاءات القابلة للقياس

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

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

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

المصادر