من Punch Cards إلى Python
في العالم الرقمي اليوم، أصبح من السهل على أي شخص تقريبًا إنشاء تطبيق جوال أو كتابة برنامج، وذلك بفضل Java وJavaScript وPython ولغات البرمجة الأخرى.
ولكن هذا لم يكن الحال دائما. نظرًا لأن اللغة الأساسية لأجهزة الكمبيوتر هي الكود الثنائي، فقد استخدم المبرمجون الأوائل البطاقات المثقبة لإرشاد أجهزة الكمبيوتر إلى المهام التي يجب إكمالها. يمثل كل ثقب رقمًا ثنائيًا واحدًا.
تغير ذلك في عام 1952 مع المترجم A-0، وهو عبارة عن سلسلة من المواصفات التي تترجم تلقائيًا اللغات عالية المستوى مثل الإنجليزية إلى كود ثنائي يمكن قراءته بواسطة الآلة.
تم تطوير المترجم، الذي أصبح الآن أحد معالم IEEE، بواسطة جريس هوبر، التي عملت كعالمة رياضيات كبيرة في شركة Eckert-Mauchly Computer Corp، التي أصبحت الآن جزءًا من Unisys، في فيلادلفيا.
سمح ابتكار IEEE Fellow للمبرمجين بكتابة التعليمات البرمجية بشكل أسرع وأسهل باستخدام الأوامر الإنجليزية. ومع ذلك، بالنسبة لها، كانت النتيجة الأكثر أهمية هي تأثيرها على تطوير لغات البرمجة الحديثة، مما جعل كتابة التعليمات البرمجية في متناول الجميع، وفقًا لمقالة نشرتها Penn Engineering Today.
تم الاحتفال بتكريس المترجم A-0 باعتباره أحد إنجازات IEEE في فيلادلفيا يوم 7 مايو في جامعة بنسلفانيا. ومن هنا بدأت شركة Eckert-Mauchly Computer Corp.
وقال أندريه ديهون، أستاذ الأنظمة الكهربائية والهندسة وعلوم الكمبيوتر، في حفل التكريس: “يحتفل هذا الإنجاز بالخطوة الأولى في تطبيق أجهزة الكمبيوتر لأتمتة الأجزاء المملة من برمجتها الخاصة”.
القضاء على نظام البطاقة المثقوبة
لبرمجة جهاز كمبيوتر، كتب الفنيون الأوائل المهام بلغة التجميع، وهي طريقة يمكن للبشر قراءتها لكتابة كود الآلة، والذي يتكون من أرقام ثنائية. ثم قاموا بترجمة لغة التجميع يدويًا إلى رمز الآلة وعملوا ثقوبًا تمثل الأرقام الثنائية في البطاقات، وفقًا لما ذكره أ واسطةمقال عن الطريقة. تم إدخال البطاقات في جهاز يقرأ الثقوب ويدخل البيانات إلى الكمبيوتر.
كان نظام البطاقة المثقوبة مرهقًا؛ قد يستغرق الأمر أيامًا لإكمال المهمة. لا يمكن استخدام البطاقات حتى مع وجود عيب بسيط مثل الزاوية المنحنية. كانت الطريقة أيضًا تنطوي على مخاطر عالية للخطأ البشري.
بعد قيادة عملية تطوير المتكامل العددي الإلكتروني والكمبيوتر (ENIAC) في بنسلفانيا، شرع عالما الكمبيوتر جيه بريسبر إيكرت وجون دبليو ماوكلي في إنشاء بديل للبطاقات المثقوبة. تم بناء ENIAC لتحسين دقة المدفعية الأمريكية خلال الحرب العالمية الثانية، لكن الرجلين أرادا تطوير أجهزة كمبيوتر للتطبيقات التجارية، وفقًا لمقالة نشرها مركز بنسلفانيا للكتاب.
كانت الآلة التي صمموها هي أول كمبيوتر إلكتروني معروف واسع النطاق، وهو Universal Automatic أو UNIVAC I. وكان هوبر ضمن فريق التطوير الخاص به.
UNIVAC استخدمت 6,103 أنابيب مفرغة واحتلت غرفة مساحتها 33 مترًا مربعًا. كان الجهاز يحتوي على وحدة ذاكرة. وبدلاً من البطاقات المثقوبة، استخدم الكمبيوتر شريطًا مغناطيسيًا لإدخال البيانات. ويصل طول الأشرطة، التي يمكن أن تحتوي على الصوت والفيديو والبيانات المكتوبة، إلى 457 مترًا. على عكس أجهزة الكمبيوتر السابقة، كان لدى UNIVAC I لوحة مفاتيح حتى يتمكن المشغل من إدخال الأوامر، وفقًا لمقالة مركز بنسلفانيا للكتاب.
“يحتفل هذا الإنجاز بالخطوة الأولى لتطبيق أجهزة الكمبيوتر لأتمتة الأجزاء المملة من برامجها الخاصة.” -أندريه ديهون
ومع ذلك، لا يزال يتعين على الفنيين إدخال التعليمات يدويًا إلى الكمبيوتر لتشغيل أي برنامج جديد.
وقال هوبر في خطاب ألقاه أمام جمعية آلات الحوسبة إن هذه العملية التي تستغرق وقتًا طويلاً أدت إلى أخطاء لأن “المبرمجين ناسخون رديئون”. “كان من المدهش عدد المرات التي تحول فيها الرقم 4 إلى دلتا، وهو رمز الفضاء الخاص بنا، أو إلى حرف A. وحتى حرف B تحول إلى رقم 13.”
وفقًا لمقالة Hidden Heroes، كان لدى هوبر فكرة لتبسيط البرمجة: اجعل الكمبيوتر يترجم اللغة الإنجليزية إلى كود الآلة.
لقد كانت مستوحاة من مولد الفرز/الدمج الخاص بعالمة الكمبيوتر بيتي هولبرتون والرمز القصير لموشلي. هولبرتون هي واحدة من ست نساء قامن ببرمجة ENIAC لحساب مسارات المدفعية في ثوانٍ، وعملت جنبًا إلى جنب مع هوبر في UNIVAC I. كان برنامجها للفرز/الدمج، الذي تم اختراعه في عام 1951 لـ UNIVAC I، يتعامل مع ملفات البيانات الكبيرة المخزنة على الأشرطة المغناطيسية. . عرّف هوبر برنامج الفرز/الدمج بأنه الإصدار الأول من الذاكرة الافتراضية لأنه يستخدم التراكبات تلقائيًا دون أن يتم توجيهه إليها من قبل المبرمج، وفقًا لعرض ستانفورد حول لغات البرمجة. وقد سمح الكود القصير، الذي تم تطويره في الأربعينيات من القرن العشرين، للفنيين بكتابة البرامج باستخدام تسلسلات مختصرة من الكلمات الإنجليزية التي تتوافق مباشرة مع تعليمات كود الآلة. لقد نجح في سد الفجوة بين التعليمات البرمجية التي يمكن قراءتها بواسطة الإنسان والتعليمات القابلة للتنفيذ بواسطة الآلة.
قال هوبر في العرض التقديمي: “أعتقد أن الخطوة الأولى لإخبارنا أنه يمكننا بالفعل استخدام الكمبيوتر لكتابة البرامج كانت مولد الفرز/الدمج”. “وكان الكود القصير هو الخطوة الأولى في التحرك نحو شيء يمنح المبرمج القدرة الفعلية على كتابة برنامج بلغة لا تحمل أي تشابه على الإطلاق مع كود الآلة الأصلي.”
تقوم زميلة IEEE Grace Hopper بإدخال أرقام الاتصال في Universal Automatic (UNIVAC I)، مما يسمح للكمبيوتر بالعثور على التعليمات الصحيحة لإكمالها. يقوم المترجم A-0 بترجمة التعليمات الإنجليزية إلى كود ثنائي يمكن قراءته بواسطة الآلة.متحف تاريخ الكمبيوتر
برمجة أسهل وأسرع وأكثر دقة
بدأ هوبر، الذي رأى أن أجهزة الكمبيوتر يجب أن تتحدث لغات شبيهة بالبشر، بدلاً من مطالبة البشر بالتحدث بلغات الكمبيوتر، في التفكير في كيفية السماح للمبرمجين باستدعاء رموز معينة باستخدام اللغة الإنجليزية، وفقًا لأحد الأبحاث. محترف تكنولوجيا المعلومات حساب تعريفي.
لكنها كانت بحاجة إلى مكتبة تحتوي على تعليمات متكررة الاستخدام ليتمكن الكمبيوتر من الرجوع إليها ونظام لترجمة اللغة الإنجليزية إلى كود الآلة. وبهذه الطريقة، يمكن للكمبيوتر أن يفهم المهمة التي يجب إكمالها.
لم تكن مثل هذه المكتبة موجودة، لذا قامت هوبر ببناء مكتبتها الخاصة. وتضمنت الأشرطة التي تحتوي على تعليمات متكررة الاستخدام للمهام التي أطلقت عليها اسم الإجراءات الفرعية. قام كل شريط بتخزين روتين فرعي واحد، والذي تم تخصيصه لإشارة اتصال مكونة من ثلاثة أرقام حتى يتمكن نظام UNIVAC I من تحديد موقع الشريط الصحيح. تمثل الأرقام مجموعات من ثلاثة عناوين ذاكرة: واحد لموقع الذاكرة الخاص بالروتين الفرعي، وآخر لموقع الذاكرة للبيانات، والثالث لموقع الإخراج، وفقًا لعرض ستانفورد.
وقالت في مقال نشر في مركز تاريخ الحوسبة: “كل ما كان علي فعله هو كتابة مجموعة من أرقام الاتصال، والسماح للكمبيوتر بالعثور عليها على الشريط، وإجراء الإضافات”. “كان هذا هو المترجم الأول.”
أُطلق على النظام اسم المترجم A-0 لأن التعليمات البرمجية كانت مكتوبة بلغة واحدة، والتي تم بعد ذلك “تجميعها” إلى لغة الآلة.
ما كان يستغرق في السابق شهرًا من البرمجة اليدوية يمكن الآن تنفيذه في خمس دقائق، وفقًا لمقالة نشرتها شركة Cockroach Labs.
قدم هوبر A-0 إلى المديرين التنفيذيين لشركة Eckert-Mauchly Computer. وبدلاً من أن يكونوا متحمسين، قالوا إنهم لا يعتقدون أن الكمبيوتر يمكنه كتابة برامجه الخاصة، وفقًا للمقال.
“كان لدي مترجم قيد التشغيل، ولن يلمسه أحد، لأنهم أخبروني بعناية أن أجهزة الكمبيوتر لا يمكنها القيام إلا بالحسابات؛ قال هوبر: “لم يتمكنوا من تنفيذ البرامج”. “لقد كانت مهمة بيع لجعل الناس يجربونها. أعتقد أنه مع أي فكرة جديدة، لأن الناس لديهم حساسية من التغيير، عليك الخروج وبيع الفكرة.
استغرق الأمر عامين حتى قبلت قيادة الشركة A-0.
في عام 1954، تمت ترقية هوبر إلى مدير البرمجة التلقائية لقسم UNIVAC. واصلت إنشاء أول لغات البرمجة المعتمدة على المترجم، بما في ذلك Flow-Matic، أول مترجم لمعالجة البيانات باللغة الإنجليزية. تم استخدامه لبرمجة أجهزة UNIVAC I و II.
شارك هوبر أيضًا في تطوير لغة COBOL، وهي واحدة من أقدم لغات الكمبيوتر الموحدة. وقد مكّن أجهزة الكمبيوتر من الاستجابة للكلمات بالإضافة إلى الأرقام، ولا يزال يستخدم في أنظمة الأعمال والمالية والأنظمة الإدارية. شكلت تقنية Flow-Matic الخاصة بـ Hopper أساس لغة COBOL، والتي تم توفير مواصفاتها الأولى في عام 1959.
يتم الآن عرض لوحة تعترف بـ A-0 في جامعة بنسلفانيا. يقرأ:
خلال الفترة 1951-1952، اخترعت جريس هوبر مترجم A-0، وهو عبارة عن سلسلة من المواصفات التي تعمل كرابط/محمل. لقد كان إنجازًا رائدًا للبرمجة التلقائية بالإضافة إلى برنامج فائدة رائد لإدارة الإجراءات الفرعية. أثر المترجم A-0 على تطوير لغات البرمجة الحسابية والتجارية. أدى ذلك إلى أن تصبح لغة COBOL (اللغة المشتركة الموجهة للأعمال)، هي اللغة عالية المستوى المهيمنة لتطبيقات الأعمال.
قام قسم IEEE بفيلادلفيا برعاية الترشيح.
يُدير برنامج Milestone، الذي يديره مركز تاريخ IEEE وبدعم من الجهات المانحة، التطورات التقنية المتميزة في جميع أنحاء العالم.