إدسخر دكسترا
إدسخر ويبى ديكسترا (بالهولندية: Edsger Wybe Dijkstra) عالم حاسوب هولندي. حاز في 1972 على جائزة تورينغ لمساهماته الأساسية في تطوير لغات البرمجة.
حياته
ولد ديكسرا بروتردام في هولندا، لأب كيميائي وأم رياضياتية.
إدسبخر و. دياكسترا (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)
راجع أيضا
- ^ Marateck, Samuel L. (1977). FORTRAN (Academic Press), p. 488
- ^ Courtois, Pierre-Jacques (2008). Justifying the Dependability of Computer-based Systems: With Applications in Nuclear Engineering (Springer), p. 112
- ^ Denning, Peter J.; Martell, Craig H. (2015). Great Principles of Computing (MIT Press), p. 157
- ^ Birrell, N. D.; Ould, M. A. (1985). A Practical Handbook for Software Development (Cambridge University Press), p.181
- ^ Haigh, Thomas (2010)
- ^ Albin, Stephen T. (2003). The Art of Software Architecture: Design Methods and Techniques (Wiley Publishing, Inc.), p. 3
- ^ Hoare, C. A. R. (12 October 2010). "The 2010 Edsger W. Dijkstra Memorial Lecture: What Can We Learn from Edsger W. Dijkstra?". Department of Computer Science, The University of Texas at Austin. Retrieved 12 August 2015.
- ^ Ryder, Barbara G.; Soffa, Mary Lou; Burnett, Margaret (2005). Impact of Software Engineering Research on Modern Programming Languages. ACM Transactions on Software Engineering and Methodology, Vol. 14, No. 4, October 2005, p. 431-477. "Of great influence to Pascal was Structured Programming, put forth by E. W. Dijkstra. This method of proceeding in a design would obliviously be greatly encouraged by the use of a Structured Language, a language with a set of constructs that could freely be combined and nested. The textual structure of a program should directly reflect its flow of control."
- ^ Wirth, Niklaus (2008). A Brief History of Software Engineering. IEEE Annals of the History of Computing, vol.30, no. 3, July–September 2008, pp. 32–39. "In 1965 Dijkstra wrote his famous Notes on Structured Programming and declared programming as a discipline in contrast to a craft. Also in 1965 Hoare published an important paper about data structuring. These ideas had a profound influence on new programming language, in particular Pascal. Languages are the vehicles in which these ideas were to be expressed. Structured programming became supported by a structured programming language."
- ^ In his 2004 memoir, "A Programmer's Story: The Life of a Computer Pioneer", Brinch Hansen wrote that he used "Cooperating Sequential Processes" to guide his work implementing multiprogramming on the RC 4000, and described it saying, "One of the great works in computer programming, this masterpiece laid the conceptual foundation for concurrent programming."
- ^ As Lamport (2002) wrote, "Edsger W. Dijkstra started the field of concurrent and distributed algorithms with his 1965 CACM paper "Solution of a Problem in Concurrent Programming Control", in which he first stated and solved the mutual exclusion problem. That paper is probably why PODC exists; it certainly inspired most of my work."
- ^ خطأ استشهاد: وسم
<ref>غير صحيح؛ لا نص تم توفيره للمراجع المسماةLamport (2015) - ^ Lo Russo, Graziano (1997). "An Interview with A. Stepanov (Edizioni Infomedia srl.)". STLport. Retrieved 30 August 2015.
Alexander Stepanov: "...I also discovered books of two great computer scientists from whose work I learned the scientific foundation of my trade: Donald Knuth and Edsger Dijkstra. Knuth taught me the answers. Dijkstra taught me the questions. Time and time again I come back to their works for new insights."
{{cite web}}: CS1 maint: numeric names: authors list (link)
- أشخاص من روتردام
- أعضاء الأكاديمية الملكية الهولندية للفنون والعلوم
- أكاديميون هولنديون
- حائزو جائزة تورينگ
- خريجو جامعة لايدن
- رواد علوم الحاسب
- رياضياتيون هولنديون
- فيزيائيون هولنديون
- مبرمجون
- مغتربون هولنديون في الولايات المتحدة
- مهندسو برمجيات
- مواليد 1930
- وفيات السرطان في هولندا
- وفيات بسبب سرطان القولون
- وفيات 2002
- CS1 maint: numeric names: authors list