نقاش القالب:Edsger Dijkstra
إدسبخر و. دياكسترا (Edsger W. Dijkstra) الحاصل على جائزة إيه إم تورينغ لعام 1972
* الميلاد: 11 مايو 1930، روتردام، هولندا * الوفاة: 6 أغسطس 2002، نونن، هولندا * التعليم: مدرسة جيرمانيوم إراسميانوم الثانوية في روتردام (1948)؛ درجة البكالوريوس في الفيزياء من جامعة لايدن (1956)؛ دكتوراه في علوم الكمبيوتر من جامعة أمستردام (1959). الدرجات الفخرية: جامعة كوينز بلفاست، جامعة أثينا للاقتصاد والأعمال. * الخبرة العملية: مبرمج في قسم الحساب بالمركز الرياضي في أمستردام (1952–1962)؛ أستاذ الرياضيات في جامعة أيندهوفن للتكنولوجيا (1962–1973)؛ زميل باحث في شركة بوروز (Burroughs Corporation) (1973–1984)؛ أستاذ كرسي شلومبرجير المئوي في قسم علوم الكمبيوتر بجامعة تكساس في أوستن (1984–2000). * الجوائز والتكريمات: عضو الأكاديمية الملكية الهولندية للفنون والعلوم (1971)؛ زميل متميز في جمعية الحاسوب البريطانية (1971)؛ جائزة هاري غود التذكارية من الاتحاد الأمريكي لجمعيات معالجة المعلومات AFIPS (1974)؛ عضو فخري أجنبي في الأكاديمية الأمريكية للفنون والعلوم (1975)؛ جائزة رائد الحاسوب من جمعية الحاسوب IEEE (1982)؛ جائزة ACM/SIGCSE للمساهمات المتميزة في تعليم علوم الكمبيوتر (1989)؛ زميل ACM (1994)؛ جائزة الورقة البحثية المؤثرة من ACM عن بحث: "الأنظمة ذاتية الاستقرار رغم التحكم الموزع" المنشور في مجلة Communications of the ACM عام 1974، وحصل عليها عام 2002 (وفي عام 2003 أُعيد تسمية هذه الجائزة السنوية لتصبح "جائزة دياكسترا").
سبب منح الجائزة (Citation) > "لقاء المساهمات الأساسية في البرمجة كتحدٍ فكري رفيع المستوى؛ وللإصرار البليغ والتطبيق العملي على وجوب صياغة البرامج بصورة صحيحة منذ البداية، وليس مجرد تصحيح الأخطاء فيها حتى تصل إلى الصحة؛ وللرؤية الثاقبة الثرية للمشكلات في أسس تصميم البرامج." > السيرة الذاتية ولِد إدسبخر و. دياكسترا عام 1930 في روتردام بهولندا. كان والده معلماً للكيمياء في المرحلة الثانوية ورئيساً للجمعية الكيميائية الهولندية. أما والدته، التي لم تشغل وظيفة رسمية قط، فكان لها أثر دائم في نهجه تجاه الرياضيات وتركيزه على الأناقة والجماليات فيها. تخرج دياكسترا من المدرسة الثانوية عام 1948 وكان يطمح لأن يصبح فيزيائياً نظرياً، فرأى أن القدرة على استخدام الحاسوب الإلكتروني قد تكون ميزة مفيدة. وبعد ثلاث سنوات من العمل في البرمجة بالمركز الرياضي في أمستردام، اقتنع بأن التحدي الفكري للبرمجة يفوق التحدي في الفيزياء النظرية، لكن أين المعرفة الراسخة التي يمكنها دعم البرمجة كالتزام فكري مرموق؟ أقنعه رئيسه في العمل، أ. فان فاينخاردن (A. van Wijngaarden)، بأنه يمكنه أن يكون أحد الأشخاص الذين يجعلون البرمجة تخصصاً محترماً في السنوات القادمة. أنهى دياكسترا دراسته للفيزياء بأسرع ما يمكن، وهجر الفيزياء لصالح البرمجة. في المركز الرياضي، كان أحد المشاريع الرئيسية هو بناء حاسوب ARMAC. ولإفتتاحه الرسمي عام 1956، ابتكر دياكسترا برنامجاً لحل مشكلة تهم الجمهور غير المتخصص: إذا وُجدت شبكة من الطرق التي تربط بين المدن، فما هو أقصر طريق بين مدينتين محددتين؟ كانت أفضل الخوارزميات المعروفة آنذاك تتطلب وقتاً للتنفيذ ينمو بالتناسب مع مكعب حجم الشبكة؛ بينما نما وقت تنفيذ خوارزمية دياكسترا بالتناسب مع المربع فقط. طُوّرت خوارزميته لـ "أقصر طريق" (Shortest Path algorithm) في غضون 20 دقيقة فقط بينما كان دياكسترا يسترخي في شرفة مقهى مع خطيبته ماريا (ريا) ديبيتس، وما زالت تستخدم حتى اليوم في تطبيقات مثل برمجيات تحويل الحزم (packet-switching) للاتصالات الحاسوبية. في الوقت نفسه تقريباً، اخترع دياكسترا خوارزمية شبكات أخرى عالية الكفاءة لاستخدامها في تصميم حاسوب X1. وتُعرف باسم خوارزمية "الشجرة الممتدة الدنيا" (Minimum Spanning Tree algorithm)، وهي تجد أقصر طول للسلك المطلوب لتوصيل مجموعة معينة من النقاط على لوحة التوصيل. ونشر كلتا الخوارزميتين في ورقة بحثية واحدة عام 1959. عندما تزوج دياكسترا وماريا ديبيتس عام 1957، طلبت منه إجراءات الزواج بيان مهنته. وعندما صرّح بأنه "مبرمج"، اعترضت السلطات بأنه لا توجد مهنة بهذا الاسم، ووُصف في شهادة الزواج بدلاً من ذلك بـ "فيزيائي نظري". أثناء وجوده في المركز الرياضي، عمل دياكسترا على مشكلة "المقاطعة في الوقت الفعلي" (real-time interrupt) بالغة الأهمية، والتي أصبحت موضوع أطروحة الدكتوراة الخاصة به. كان العديد من مصنّعي الحواسيب في ذلك الوقت يواجهون المشكلة نفسها، لكنهم لم يتناولوا المشكلة بالصرامة والمنهجية العلمية التي طبقها دياكسترا. في المركز الرياضي، طور دياكسترا وجـ. أ. زونفيلد (J.A. Zonneveld) أول مترجم (compiler) للغة "ألغول-60" (Algol-60)، وهي لغة برمجة عالية المستوى صممتها لجنة دولية. اكتمل المترجم في أغسطس 1960، متسبقاً المترجم الثاني للغة Algol-60 بأكثر من عام. كان أحد الابتكارات العظيمة في Algol-60، والذي كان لدياكسترا دور أساسي فيه، هو الإدخال الصريح لمفهوم "المعاودة" (Recursion). وكان على الأرجح أول من أدخل مفهوم "المكدس" (Stack) لترجمة البرامج المعاودة، ونشر هذا العمل التأسيسي في مقال قصير. وفي معجم أكسفورد للغة الإنجليزية، يُعزى استخدام مصطلحي "المتجه" (vector) و"المكدس" (stack) في سياق الحوسبة إلى دياكسترا. في عام 1962، عُيّن دياكسترا أستاذاً للرياضيات في جامعة أيندهوفن للتكنولوجيا. وهناك قام ببناء نظام التشغيل THE (المسمى على اسم الجامعة التي كانت تُعرف آنذاك بـ Technische Hogeschool te Eindhoven)، والذي أثّر في تصميم العديد من نظم التشغيل اللاحقة. وقد قدم النظام عدداً من مبادئ التصميم التي أصبحت جزءاً من القاموس العملي لكل مبرمج محترف. وخلال تقديم إعادة طباعة مقال دياكسترا عن نظام التشغيل THE في عدد الذكرى الـ 25 لمجلة Communications of the ACM، كتب رئيس التحرير: "أطلق هذا المشروع خطاً طويلاً من الأبحاث في هندسة الأنظمة متعددة المستويات - وهو خط مستمر حتى يومنا هذا لأن الموديولية الهرمية (hierarchical modularity) نهج قوي لتنظيم الأنظمة الكبيرة." في عام 1968، نشر دياكسترا رسالة قصيرة للمحرر في مجلة Communications of ACM بعنوان: "اعتبار جملة Go To ضارة" ("Go To statement considered harmful")، أشار فيها إلى أن جملة GO TO الموجودة في العديد من لغات البرمجة عالية المستوى تُعد مصدراً رئيسياً للأخطاء، ويجب بالتالي إلغاؤها. أدى ذلك إلى ضجة هائلة في مجتمع الحوسبة، حيث اتخذ أطراف النزاع مواقف من جميع جوانب القضية. وقد هدأت هذه المناظرة منذ فترة طويلة؛ إذ توفر لغات البرمجة الآن بدائل لـ GO TO، ونادراً ما يستخدمها المبرمجون اليوم حرية، بينما لا يستخدمها معظمهم على الإطلاق. في هذا الوقت تقريباً، بدأ دياكسترا في صياغة بعض أفكاره المبكرة حول البرمجة كفرع رياضي. وأوضح أن إنتاجية البرمجيات وموثوقيتها ترتبطان ارتباطاً وثيقاً بالصرامة في التصميم، مما يقضي على العيوب البرمجية في مرحلة مبكرة. وقد تأثر بشكل خاص بحجم ما يُسمى "أزمة البرمجيات" عندما حضر مؤتمر حلف الناتو الشهير عام 1968 حول هندسة البرمجيات، وهو أول مؤتمر يُخصص للموجة المتزايدة من البرمجيات التي تُسلم متأخرة، وتتجاوز الميزانية، وتكون مليئة بالعثرات والعيوب. وإيماناً منه بوجوب تحويل منهجية البرمجة إلى فرع علمي، قرر دراسة كيفية تجنب التعقيد في تصاميم البرمجيات. انتشرت "ملاحظات حول البرمجة الهيكلية" ("Notes on Structured Programming") لدياكسترا، والتي وُزعت على عدد قليل من الأصدقاء لإبداء ملاحظاتهم، وسرعان ما أحدثت ضجة كبيرة، وبدأت الشركات الكبرى برامج تستند إلى أفكاره لدمج الممارسات الصارمة في مشاريع البرمجة الخاصة بها. ونُشر هذا العمل لاحقاً وما زال مطبوعاً بعد يقارب 40 عاماً، وكان له أثر بعيد المدى على جميع مجالات علوم الكمبيوتر، بدءاً من تدريس المقررات الأولى في البرمجة وحتى تصميم البرمجيات المعقدة. وأصبحت التحليلات الرياضية لتصميم البرامج ومواصفاتها أنشطة محورية في أبحاث علوم الكمبيوتر. تضمنت كلمة قبول دياكسترا لجائزة تورينغ من ACM عام 1972، بعنوان "المبرمج المتواضع" ("The humble programmer")، عدداً كبيراً من الملاحظات حول تطور البرمجة كفرع علمي وإرشادات لنموها المستمر. وتُعد قراءة إجبارية لأي شخص يطمح لأن يكون عالم حاسوب. في أغسطس 1973، انضم دياكسترا إلى شركة بوروز (Burroughs Corporation) كزميل باحث. وكانت مهامه تتلخص في تقديم الاستشارات في بعض المراكز البحثية للشركة بضع مرات في السنة ومتابعة أبحاثه الخاصة. ومن بين المساهمات البارزة في هذه الفترة تطوير نظرية "عدم التحديد" (nondeterminacy)، وهو مفهوم خارج الرياضيات التقليدية. كان دياكسترا أول من لاحظ ليس فقط أن عدم التحديد أمر محوري في الحسابات التي تتفاعل مكوناتها بشكل غير متزامن، بل إنه حتى عندما لا تكون هناك عمليات غير متزامنة، فإن عدم التحديد يُعد أداة فعالة للتفكير في البرامج وتبسيط تصميمها. وكانت مساهمته الكبرى الأخرى خلال هذه الفترة هي تطوير "محولات المحمولات" (predicate transformers) كأساس لتعريف دلالات البرامج (program semantics) وكأداة لاشتقاق البرامج. وقامت أفكاره بتحسين الأفكار السابقة لـ C. A. R. Hoare للأساس البديهي لبرمجة الحواسيب. وعرض هذه الأفكار جنباً إلى جنب مع عدم التحديد في كتابه "انضباط البرمجة" (A Discipline of Programming)، الذي صنفه مؤشر الاستشهاد العلمي كـ "كلاسيكية استشهادات" (Citations Classic). كانت سنوات عمله في بوروز أكثر فترات دياكسترا إنتاجاً من حيث المقالات البحثية؛ حيث كتب ما يقرب من 500 وثيقة في سلسلة EWD، معظمها تقارير تقنية للتداول الخاص ضمن مجموعة مختارة. وبصفته زائراً متكرراً لمركز أبحاث بوروز في أوستن بتكساس منذ أواخر سبعينيات القرن الماضي، أصبح دياكسترا مألوفاً لدى قسم علوم الكمبيوتر في جامعة تكساس في أوستن. وفي عام 1984، قبل دياكسترا التعيين في الكرسي المئوي لشلومبرجير في قسم علوم الكمبيوتر بالجامعة. خلال سنواته الثماني عشرة في أوستن، واصل دياكسترا عمله كباحث غزير الإنتاج. وبعد أن بدأ سابقاً في مشروع طويل الأجل لـ "تبسيط الحجج الرياضية"، شارك في أوستن في تأليف كتاب عن حساب المحمولات يوصي بـ "أسلوب الإثبات الحسابي" (calculational proof style) للحجج الرياضية. وواصل تطبيق منهجه في مجالات متنوعة: الهندسة الإحداثية، الجبر الخطي، نظرية الرسم البياني، تصاميم البرامج التتابع والموزعة، وغيرها الكثير. شهدت سنوات أوستن دياكسترا في أفضل حالاته كمعلم وموجه لجيل من طلاب البكالوريوس والدراسات العليا. فمنذ أيامه في جامعة أيندهوفن للتكنولوجيا، كان يفكر عميقاً في كيفية تدريس علوم الكمبيوتر، ووفرت له أوستن الفرصة لتجربة أفكاره. واستمتع بالتجربة معبراً عن تقديره لـ "... الطلاب الألمعيين الذين جعلوا من إلقاء المحاضرات لهم تحدياً وشرفاً". وحث الجامعات على عدم التراجع أمام تحدي تدريس الابتكارات الجذرية. وبمناسبة عيد ميلاد دياكسترا الستين في عام 1990، نظم قسم علوم الكمبيوتر ندوة مدتها يومان على شرفه. وجاء المتحدثون من جميع أنحاء الولايات المتحدة وأوروبا، وساهمت مجموعة من علماء الكمبيوتر بمقالات بحثية تم تحريرها في كتاب. تقاعد دياكسترا من التدريس الفعلي في نوفمبر 1999. وللاحتفال بهذه المناسبة وبأكثر من أربعين عاماً من مساهماته التأسيسية في علوم الحوسبة، نظم قسم علوم الكمبيوتر ندوة عُقدت في عيد ميلاده السبعين في مايو 2000. وحضر الندوة عدد كبير من أبرز علماء الكمبيوتر بالإضافة إلى الطلاب الحاليين والسابقين. عاد إلى هولندا في فبراير 2002، وتوفي دياكسترا في نونن في 6 أغسطس 2002. مأثورات وحكم دياكسترا (Dijkstra's Aphorisms and Epigrams) اشتهر دياكسترا بذكائه وبلاغته، كما في ملاحظته: > "إن مسألة ما إذا كانت الحواسيب تستطيع التفكير تشبه مسألة ما إذا كانت الغواصات تستطيع السباحة؛" > أو نصيحته لباحث واعد سأله عن كيفية اختيار موضوع للبحث: > "افعل فقط ما لا يستطيع غيرك فعله؛" > وملاحظته في كلمة قبوله لجائزة تورينغ: > "بصفتها أداة، لن تكون الحواسيب سوى موجة صغيرة على سطح ثقافتنا. أما بصفتها تحدياً فكرياً، فهي بلا مثيل في التاريخ الثقافي للبشرية." > وفيما يلي مجموعة من أقواله المأثورة والشهيرة الأخرى:
* «الأدوات التي نستخدمها لها تأثير عميق وخفي على عادات تفكيرنا، وبالتالي على قدراتنا التفكيرية.» * «القدرة العقلية هي أندر مواردنا على الإطلاق.» * «اختبار البرامج يمكنه في أفضل الأحوال إظهار وجود الأخطاء، لكنه لا يمكنه أبداً إثبات غيابها.» * «المبرمج الكفء مدرك تماماً للمساحة المحدودة لجمجمته؛ لذلك فهو يحارب مهمة البرمجة بتواضع تام، ويتجنب الحيل الذكية كما يتجنب الطاعون.» * «ما يُسمى بـ "اللغة الطبيعية" رائعة للأغراض التي خُلقت من أجلها، مثل التلفظ بوقاحة، أو إلقاء النكات، أو الخداع، أو التودد (وبوسع نظرية النقد الأدبي أن تكون خالية من المحتوى فيها)، لكنها غير مناسبة على الإطلاق عندما يتعين علينا التعامل بوضوح لا لبس فيه مع مواقف معقدة للغاية، وهي مواقف تنشأ بشكل لا مفر منه في أنشطة مثل التشريعات، أو التحكيم، أو الرياضيات، أو البرمجة.» (مقدمة كتاب "تدريس وتعلم المناهج الصورية"، تحرير س. ن. دين وم. ج. هينتشي، 1996) * «علم الكمبيوتر لا يتعلق بالحواسيب أكثر مما يتعلق علم الفلك بالتلسكوبات.» * «أن تكون تجريدياً هو شيء مختلف تماماً عن أن تكون غامضاً.» * «لا شيء مكلف مثل ارتكاب الأخطاء.» * «في ممارسة الحوسبة، حيث لدينا متسع كبير لإحداث الفوضى، فإن الأناقة الرياضية ليست رفاهية يمكن الاستغناء عنها، بل هي مسألة حياة أو موت.» * «إذا حدث بعد 10 سنوات من الآن، عندما تقوم بعمل شيء سريع وغير متقن، أن تخيلت فجأة أنني أنظر من فوق كتفك وقلت لنفسك: "ما كان لدياكسترا أن يحب هذا"، فهذا سيكون خلوداً كافياً بالنسبة لي.» * إقرار وتقدير: يستعير هذا الملف التعريفي الكثير من القرار التذكاري الذي دعمه مجلس أعضاء الهيئة التدريسية بجامعة تكساس في أوستن. * الكاتب: هاميلتون ريتشاردز (Hamilton Richards) * محاضرة تورينغ: المبرمج المتواضع (The humble programmer)