ملاحظة G

ملاحظة G [ a ] هي خوارزمية حاسوبية تنسب تقليديًا إلى آدا لوفليس، وقد صُممت لحساب أرقام برنولي باستخدام المحرك التحليلي الافتراضي الذي صممه تشارلز باباج .
كانت الخوارزمية هي النوتة الأخيرة في سلسلة مُرقمة من "أ" إلى "ج"، والتي استُخدمت كوسائل بصرية مُصاحبة لترجمة لوفليس الإنجليزية للنسخة الفرنسية التي كتبها لويجي مينابريا عام 1842 لمحاضرة تشارلز باباج الوحيدة حول المحرك التحليلي. [ 1 ] [ 2 ] نُشرت ترجمتها، إلى جانب ملاحظاتها المُفصلة حول إمكانيات المحرك التحليلي، عام 1843. [ 3 ] [ 4 ] [ 1 ]
في مذكرات باباج عام 1864، يناقش إنشاء النوتات الموسيقية المختلفة مع لوفليس، بما في ذلك النوتة "G". وقد قدم الصيغ الرياضية لحساب أعداد برنولي، والتي حولتها آدا إلى جدول تعليمات خطوة بخطوة للمحرك التحليلي؛ كما أنها اكتشفت خطأً برمجيًا له [ 5 ] :
ناقشنا معًا الرسوم التوضيحية المختلفة التي يمكن إضافتها: اقترحتُ عدة رسوم، لكن الاختيار كان من اختيارها بالكامل. وكذلك كان الحال بالنسبة للحلول الجبرية للمسائل المختلفة، باستثناء مسألة أعداد برنولي ، التي عرضتُ القيام بها لتوفير عناء الليدي لوفليس. أعادتْ إليّ هذه المسألة لتعديلها، بعد أن اكتشفت خطأً فادحًا ارتكبتُه أثناء ذلك.
— تشارلز باباج، مقتطفات من حياة فيلسوف (1864)
أشار مؤرخون مثل آلان جي. بروملي إلى عشرات البرامج النموذجية التي أعدها باباج بين عامي 1837 و1840 (جميعها أقدم بكثير من الملاحظات التوضيحية)، على الرغم من أنها لم تُنشر قط وكانت أبسط بكثير [ 6 ] ، مما أدى إلى اعتبار الملاحظة G في الثقافة الشعبية عمومًا أول خوارزمية مصممة خصيصًا للحاسوب، [ 7 ] [ 8 ] [ 9 ] [ 10 ] ويُعتبر لوفليس أول مبرمج حاسوب . [ 11 ] [ 4 ] [ 1 ] [ 12 ]
لم يُختبر البرنامج الموصوف في الملاحظة (ج) خلال حياة باباج أو لوفليس، إذ لم يُبنَ المحرك التحليلي. في العصر الحديث، جُرِّبت الخوارزمية باستخدام أساليب الحوسبة الحديثة، وكُشِف عن وجود خطأ برمجي فيها ناتج عن تبديل قيم متغيرين في عملية قسمة. [ 13 ] [ 14 ]
أصل

في عام ١٨٤٠، دُعي تشارلز باباج لإلقاء ندوة في تورينو حول محركه التحليلي، [ ١٥ ] وهو الشرح العلني الوحيد الذي قدمه على الإطلاق حول هذا المحرك. [ ١٦ ] خلال محاضرة باباج، كتب عالم الرياضيات لويجي مينابريا وصفًا للمحرك باللغة الفرنسية. [ ١٥ ] اقترح تشارلز ويتستون ، صديق باباج ، أن تُترجم لوفليس وصف مينابريا للمساهمة في هذا العمل. [ ١٥ ] [ ١٧ ] اقترح باباج أن تُضيف لوفليس ملاحق إلى الوصف، والتي جمعتها في نهاية ترجمتها على شكل سلسلة من سبع "ملاحظات" تحمل الرمز AG. نُشرت ترجمتها في أغسطس ١٨٤٣، [ ١٥ ] في مذكرات تايلور العلمية ، [ ١٧ ] [ ١٨ ] حيث وُقّع اسم لوفليس بالأحرف "AAL". [ 15 ] [ ب ] في هذه الملاحظات، وصف لوفليس قدرات محرك باباج التحليلي في حال استخدامه في الحوسبة، واضعًا خطة أكثر طموحًا للمحرك مما كان لدى باباج نفسه. [ 9 ] [ 18 ] [ 19 ]
كانت ملاحظات لوفليس للمقال أطول بثلاث مرات من المقال نفسه. [ 20 ] في الملاحظات الأولى، تستكشف لوفليس ما هو أبعد من الطموحات العددية التي وضعها باباج للجهاز، وتقترح أن الجهاز يمكن أن يستفيد من الحوسبة للتعامل مع مجالات الموسيقى والرسومات [ 21 ] واللغة. [ 12 ] [ 22 ] [ 23 ]
ومرة أخرى، قد يؤثر على أشياء أخرى غير العدد، إذا وُجدت أشياء يمكن التعبير عن علاقاتها الأساسية المتبادلة من خلال علاقات علم العمليات المجرد، والتي ينبغي أن تكون قابلة للتكيف مع آلية عمل المحرك ونظامه. فعلى سبيل المثال، إذا افترضنا أن العلاقات الأساسية للأصوات ذات النغمات المحددة في علم التناغم والتأليف الموسيقي قابلة لهذا التعبير والتكيف، فقد يتمكن المحرك من تأليف مقطوعات موسيقية متقنة وعلمية بأي درجة من التعقيد أو الامتداد.
— آدا لوفليس، ملاحظات على مذكرات "رسم تخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج" للمترجمة آدا أوغستا، كونتيسة لوفليس، الملاحظة أ
تشرح للقراء كيف كان المحرك التحليلي منفصلاً عن محرك الفرق السابق لباباج ، [ 24 ] وتشبه وظيفته بآلة جاكارد ، [ 25 ] حيث استخدمت بطاقات مثقبة ثنائية لتمثيل لغة الآلة . في الملاحظة (ج)، يتم توضيح هذه النقطة من خلال حقيقة أن الآلة يمكنها القيام بإجراءات متزامنة ومتكررة ، مما يضمن إمكانية استخدام أي بطاقة أو مجموعة بطاقات عدة مرات في حل مشكلة واحدة، [ 23 ] وهو ما يُعدّ بمثابة استباق للأساليب الحديثة للتحكم في التدفق والتكرار. [ 20 ] [ 26 ] وقد بلغت هذه الأفكار ذروتها في الملاحظة الأخيرة، (ز)، حيث سعت لوفليس إلى تقديم مثال على الحوسبة .
ملاحظة: لم تستخدم الآلة الحاسبة G سوى العمليات الحسابية الأربع : الجمع والطرح والضرب والقسمة، وهو تطبيق لرؤية باباج:
نظراً لاستحالة شرحي هنا للعملية التي يتم من خلالها تحقيق هذه الغاية، يجب أن نقتصر على التسليم بأن العمليات الحسابية الأربع الأولى، أي الجمع والطرح والضرب والقسمة، يمكن إجراؤها مباشرةً بواسطة الآلة. وبناءً على ذلك، تصبح الآلة قادرة على إجراء جميع أنواع العمليات الحسابية، لأن جميع هذه العمليات تُختزل في النهاية إلى العمليات الأربع التي ذكرناها.
— تشارلز باباج، "رسم تخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج"
كما أنها تستخدم فكرة باباج لتخزين المعلومات في أعمدة من الأقراص، يُشار إلى كل منها بـ(للمتغير ) ورقم سفلي يشير إلى العمود الذي تتم الإشارة إليه.
وظيفة
استخدمت الخوارزمية معادلة تكرارية لحساب أعداد برنولي، [ 15 ] حيث استخدمت القيم السابقة في المعادلة لتوليد القيمة التالية. وكانت طريقة التنفيذ كالتالي: [ 27 ]
أينهو معامل ذو حدين ،
- .
يمكن حساب أعداد برنولي بطرق عديدة ، لكن المؤلف اختار عمدًا طريقةً مُفصّلةً لإظهار قوة المحرك. في الملاحظة (ج)، يذكر لوفليس: "سنختتم هذه الملاحظات بشرحٍ مُفصّلٍ للخطوات التي يمكن للمحرك من خلالها حساب أعداد برنولي، وهذا (بالصيغة التي سنستنتجها بها) مثالٌ مُعقّدٌ نوعًا ما على قدراته." [ 23 ] تُولّد الخوارزمية المُستخدمة في الملاحظة (ج) العدد الثامن من أعداد برنولي (المُسمى بـ، كما بدأ الأمر بـ.) [ 27 ]
الترميز
يُرتب جدول الخوارزمية كل أمر بالتسلسل. يُشير كل أمر إلى عملية واحدة تُجرى على حدين. يوضح العمود الثاني فقط المُعامل المُستخدم. تُرمز المتغيرات بـ "[ ج ] حيث يمثل الرقم العلوي قبله عدد القيم المختلفة التي تم تعيينها للمتغير، ويمثل الرقم السفلي بعده الترتيب التنازلي للمتغير، أي أي متغير هو. (على سبيل المثال،يشير هذا إلى التعيين الثاني للمتغير رقم 4. أي متغيرات غير مُعرَّفة حتى الآن يكون لها رمز علوي 0. يتم ترقيم المتغيرات بدءًا منيُخبر العمود الثالث الحاسوب بالأمر الذي يتم تنفيذه بالضبط، (على سبيل المثال، في السطر 1، الأمر الذي تم تنفيذه هو "(يتم ضرب القيمة الأولى للمتغير 2 في القيمة الأولى للمتغير 3.) وتتضمن عملية واحدة فقط بين حدين في كل سطر. العمود 4 - "المتغيرات التي تتلقى النتائج" - يسجل مكان تخزين نتيجة العملية في العمود 3. وبهذه الطريقة، يتم زيادة رقم أي متغير في هذا العمود بمقدار واحد في كل مرة. (على سبيل المثال، في السطر 1، نتيجةيتم تعيينها للمتغيرات،، و.)
يوضح العمود الخامس ما إذا كان أي من المتغيرين المستخدمين في تنفيذ الأمر قد تغير. يُوضع المتغير الأصلي بين قوسين معقوفين، في سطرين لكل أمر، على يسار علامة المساواة، والمتغير الجديد على الجانب الآخر. أي، إذا تغير المتغير، يُزاد رقمه العلوي بمقدار واحد، وإذا لم يتغير، يبقى كما هو. (مثال: السطر الثالث يُسند نتيجةإلى التكرار الثاني للمتغيرويعكس العمود الخامس ذلك من خلال الإشارة إلى؛
لقد تغير الوضع، ولكنلم يفعل.
في العمود 6، "بيان النتائج"، تظهر النتيجة المخصصة للمتغير في العمود 4 بقيمتها الدقيقة بناءً على قيم الحدين اللذين تم تخصيصهما سابقًا. (مثال: في السطر 1 --كان من المقرر في البداية أن يكون، وتم تحديد المتغير. لذلك،( بالتدوين الرياضي ). من الواضح أن هذا العمود لا يُحسب بواسطة المحرك، ويبدو أنه موجود بشكل أساسي للمساعدة في توضيح البرنامج وتسهيل متابعة خطواته. (على سبيل المثال، يحتوي السطر 5 على كسر مقسوم على اثنين، والذي يُرمز إليه بأنه مضروب في نصف، ربما من أجل التناسق وتجنب التعقيد الطباعي للكسور المتداخلة). كما أنه يستخدم تدوين متغيرات منفصل خارج البرنامج.والمتغيرات، التي تُضرب تباعاً لإيجاد القيمة النهائية،وبالتالي: [ 13 ]
إضافةً إلى ذلك، يُظهر كل عمود لاحق قيم متغير معين بمرور الوقت. في كل مرة يتغير فيها متغير، أو تصبح قيمته ذات صلة بوجوده كأحد مصطلحات الأمر الحالي، تُذكر قيمته أو يُعاد ذكرها في عموده الخاص. وإلا، يُشار إليه بثلاث نقاط للدلالة على عدم أهميته. يُفترض أن هذا يُحاكي حاجة الحاسوب إلى المعلومات ذات الصلة فقط، وبالتالي تتبع قيمة المتغير أثناء تحليل البرنامج . [ 13 ]
طريقة
سعى البرنامج إلى حساب ما يُعرف في الاصطلاح الحديث باسم رقم برنولي الثامن، والمدرج على النحو التالي:، بينما يبدأ لوفليس العد من[ 27 ]
خطأ
في العملية الرابعة، من المفترض أن يكون التقسيم الذي يجري هو "، ليتم تخزينها في متغيرومع ذلك، تنص "بيانات النتائج" على أن التقسيم يجب أن يكون كالتالي:
في الواقع، التقسيم معكوس؛هي النسخة الثانية منكما يتضح في العملية 2. وبالمثل،هي النسخة الثانية منكما يتضح في العملية 3. وبالتالي، لا ينبغي أن تكون العملية 4بل بالأحرىهذا الخلل يعني أنه إذا قام المحرك بتشغيل هذه الخوارزمية في هذه الحالة، فسيفشل في توليد أعداد برنولي بشكل صحيح، وسيجد قيمة هدفه النهائية ( عدد برنولي الثامن).) يكون.
التطبيقات الحديثة
يمكن تنفيذ برنامج لوفليس بلغة برمجة حديثة ، ولكن بسبب الخطأ المذكور أعلاه، إذا نُسخ البرنامج حرفيًا، فسيعيد قيمة نهائية غير صحيحة لـالبرنامج الأصلي المعمم بلغة شبه الكود يتبع على النحو التالي:
V[1] = 1 V[2] = 2 V[3] = n /* n = 4 في برنامج لوفليس. */ /* يبدأ */ V[4]، V[5]، V[6] = V[2] * V[3] V[4] = V[4] - V[1] V[5] = V[5] + V[1] V[11] = V[5] / V[4] V[11] = V[11] / V[2] V[13] = V[13] - V[11] /* المتغيرات تساوي صفرًا في البداية، انظر أدناه. */ V[10] = V[3] - V[1] V[7] = V[2] + V[7] V[11] = V[6] / V[7] V[12] = V[21] * V[11] V[13] = V[12] + V[13] V[10] = V[10] - V[1] طالما أن V[10] > 0: V[6] = V[6] - V[1] V[7] = V[1] + V[7] V[8] = V[6] / V[7] V[11] = V[8] * V[11] V[6] = V[6] - V[1] V[7] = V[1] + V[7] V[9] = V[6] / V[7] V[11] = V[9] / V[11] V[12] = V[22] * V[11] V[13] = V[12] + V[13] V[10] = V[10] - V[1] V[24] = V[13] + V[24] V[3] = V[1] + V[3]
يُبرز التنفيذ باستخدام الشفرة الزائفة حقيقة أن لغات البرمجة تُعرّف المتغيرات على مكدس ، مما يُغني عن الحاجة إلى تتبع وتحديد التكرار الحالي للمتغير. بالإضافة إلى ذلك، لم يسمح برنامج لوفليس إلا بتعريف المتغيرات عن طريق إجراء عمليات الجمع أو الطرح أو الضرب أو القسمة على حدين تم تعريفهما مسبقًا كمتغيرات. بإمكان الصيغة الحديثة إجراء كل عملية حسابية بشكل أكثر إيجازًا. يتضح هذا القيد بمجرد الوصول إلى العملية السادسة (هنا، يُعرّف لوفليس متغيرًا لم يكن مُعرّفًا من قبل () بمفردها، وبالتالي تفترض أن جميع المتغيرات غير المعرفة تساوي تلقائيًا 0، في حين أن معظم لغات البرمجة الحديثة ستُرجع خطأً. ما كانت تقصده هو "لكنها اقتصرت على استخدام المتغيرات فقط كمصطلحات. وبالمثل، في العملية 8 (يصبح الترميز الصارم للحسابات ذات الحدين مرهقًا، كما هو الحال عند تعريفبما أن لوفليس تساوي 2، فإنها تُسند قيمتها (0) إلى نفسها بالإضافة إلى(2). وبسبب هذا الترميز التقييدي،يتم تعريفها على النحو التالي.
ملحوظات
- ↑ عنوانها الكامل هو "مخطط لحساب أعداد برنولي بواسطة المحرك"، ولكنها تُعرف مجازًا باسم "الملاحظة G"
- ↑ في المذكرات، طُبعت الأحرف الأولى من اسمها بشكل خاطئ على أنها "ALL" [ 17 ]
- ↑ تشير هذه المتغيرات تقنياً إلى أعمدة من الأقراص، بناءً على اقتراح باباج بأن هذه هي الطريقة التي ينبغي تدوينها بها. [ 23 ]
مراجع
- 1 2 3 "آدا لوفليس | سيرة ذاتية، حاسوب، وحقائق" . موسوعة بريتانيكا . تم الاطلاع عليه في 1 يونيو 2022 .
- ↑ شتاين 1984 ، ص 44.
- ↑ مينابريا، إل إف (1843). "رسم تخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج". في تايلور، ريتشارد (محرر). مذكرات علمية . المجلد الثالث. ترجمة إيه إيه إل لندن. الصفحات 666-731 .
- 1 2 "آدا لوفليس | محرك باباج | متحف تاريخ الحاسوب" . www.computerhistory.org . تم الاطلاع عليه في 1 يونيو 2022 .
- ↑ باباج، تشارلز (1864). مقتطفات من حياة فيلسوف . أرشيف الإنترنت. نيو برونزويك، نيوجيرسي : مطبعة جامعة روتجرز؛ بيسكاتاواي، نيوجيرسي : مطبعة IEEE. طبعة جديدة ١٩٩٤. رقم ISBN 978-0-8135-2066-7
- ↑ بروملي، آلان ج. (يوليو–سبتمبر 1982). "المحرك التحليلي لتشارلز باباج، 1838" (ملف PDF) . حوليات IEEE لتاريخ الحوسبة . 4 (3): 197–217 . Bibcode : 1982IAHC....4c.196B . doi : 10.1109/mahc.1982.10028 . S2CID 2285332. مؤرشف من الأصل (ملف PDF) في 26 فبراير 2021. تم الاطلاع عليه في 25 ديسمبر 2015 . ص 197.
- ↑ ديمينغ، آنا. "آدا لوفليس" . مجلة نيو ساينتست . تم الاطلاع عليه في 1 يونيو 2022 .
- ↑ كريسا، جواسيا. أدا لوفلايس - لم تكن هناك ملاحظة جي أبدًا .
- 1 2 "آدا لوفليس، أول رائدة في مجال التكنولوجيا" . مجلة نيويوركر . 15 أكتوبر 2013. تم الاطلاع عليه في 2 يونيو 2022 .
- ↑ هيرتز 2009 ، ص 59.
- ↑ "الاحتفاء بأدا لوفليس: 'أول مبرمجة في العالم' - علوم موجزة ودقيقة - مجلة نيو ساينتست" . 27 مارس 2009. مؤرشف من الأصل في 27 مارس 2009. تم الاطلاع عليه في 1 يونيو 2022 .
- 1 2 "آدا لوفليس: أول مبرمجة حاسوب" . مينتال فلوس . 13 أكتوبر 2015. تم الاطلاع عليه في 2 يونيو 2022 .
- 1 2 3 "ماذا فعل برنامج آدا لوفليس فعلاً؟" . twobithistory.org . تم الاطلاع عليه في 1 يونيو 2022 .
- ↑ "آدا لوفليس وقصة النوتة الموسيقية G" . مؤرشف من الأصل في 11 مايو 2021.
- ١ ٢ ٣ ٤ ٥ ٦ "كيف ساهمت ملاحظات آدا لوفليس حول المحرك التحليلي في إنشاء أول برنامج حاسوبي" . مجلة بي بي سي ساينس فوكس . تم الاطلاع عليه في ١ يونيو ٢٠٢٢ .
- ↑ «ترك تشارلز باباج برنامجًا حاسوبيًا في تورينو عام 1840. إليكم هو» . مجلة وايرد . الرقم الدولي الموحد للدوريات 1059-1028 . تاريخ الاطلاع: 1 يونيو 2022 .
- ١ ٢ ٣ "كنز رياضي: ملاحظات آدا لوفليس حول المحرك التحليلي" . الجمعية الرياضية الأمريكية . مؤرشف من الأصل في ٣٠ يونيو ٢٠٢٤. تم الاطلاع عليه في ٣٠ يونيو ٢٠٢٤ .
- 1 2 لوفليس وباباج وإنشاء "الملاحظات" لعام 1843
- ↑ شتاين 1984 ، ص 46.
- 1 2 "آدا لوفليس" . سيرة ذاتية . 2 أبريل 2014. تم الاطلاع عليه في 2 يونيو 2022 .
- ↑ تول، بيتي ألكسندرا (23 سبتمبر 2004). "بايرون، (أوغستا) آدا [ اسمها بعد الزواج (أوغستا) آدا كينغ، كونتيسة لوفليس ] (1815-1852)، عالمة رياضيات ورائدة في مجال الحاسوب" . قاموس أكسفورد للسير الوطنية . المجلد 1 ( الطبعة الإلكترونية). مطبعة جامعة أكسفورد. doi : 10.1093/ref:odnb/37253 . ISBN 978-0-19-861412-8.(يتطلب ذلك اشتراكًا أو الوصول إلى مكتبة ويكيبيديا أو عضوية في مكتبة عامة في المملكة المتحدة .)
- ↑ "آدا لوفليس - سيرة ذاتية، حقائق وصور" . تم الاطلاع عليه بتاريخ 2 يونيو 2022 .
- 1 2 3 4 "رسم تخطيطي للمحرك التحليلي" . www.fourmilab.ch . تم الاطلاع عليه بتاريخ 2 يونيو 2022 .
- ↑ وولي 1999 .
- ↑ "الاحتفاء بأدا لوفليس" . مطبعة معهد ماساتشوستس للتكنولوجيا. 11 أكتوبر 2016. تم الاطلاع عليه في 2 يونيو 2022 .
- ↑ "آدا لوفليس" . التاريخ . 26 فبراير 2021. تم الاطلاع عليه في 2 يونيو 2022 .
- 1 2 3 "ملاحظة آدا لوفليس G | مشروع لوفليس" . projectlovelace.net . تم الاطلاع عليه في 1 يونيو 2022 .
مصادر
- شتاين، دوروثي ك. (1984). "ملاحظات الليدي لوفليس: نص تقني وسياق ثقافي" . دراسات العصر الفيكتوري . 28 (1): 33-67 . ISSN 0042-5222 . JSTOR 3826758 .
- وولي، بنجامين (فبراير 1999)، عروس العلم: الرومانسية، والعقل، وابنة بايرون ، أستراليا: بان ماكميلان، رقم ISBN 978-0-333-72436-1تم الاطلاع عليه بتاريخ 7 أبريل 2013
- هيرتز، بول (2009). " الفن، والبرمجة، ومحرك التغيير" . مجلة الفن . 68 (1): 58-75 . doi : 10.1080/00043249.2009.10791336 . ISSN 0004-3249 . JSTOR 40598953. S2CID 194010431 .
- مقدمات عام 1843
- الخوارزميات
- آدا لوفليس
