الجمعة، 4 يناير 2013

تاريخ لغة التجميع assembly language history



نظرة تاريخية
تم تطوير لغة التجميع لأول مرة في الخمسينيات من القرن المنصرم, وقد تم الإشارة لتلك اللغات في هذا الحين على أنها "الجيل الثاني" من لغات البرمجة.وقد محت لغات الجيل الثاني الكثير من مشكلات منح-الأخطاء Error-Prone ومشكلات استهلاك الوقت التي اتصفت بها لغات البرمجة من "الجيل الأول" التي تعاملت مع الأجيال الأولى من أجهزة الكمبيوتر, وقد حررت اللغات الجديدة المبرمجين من الكثير من الأمور المملة مثل تذكر الرموز الرقمية وحساب عناوين الذاكرة.وقد استخدمت تلك اللغات يوما ما وبشكل واسع في جميع أنواع البرمجة.وعلى الرغم من ذلك, فإن مع الثمانينات (ومع التسعينات على الحواسب الصغيرة), فقد استبدلت تلك اللغات بشكل واسع بلغات البرمجة عالية المستوى high-Level Languages, في البحث عن المزيد من التحسين لـ "إنتاجية" العمل البرمجي.واليوم, تستخدم لغة التجميع بشكل رئيسي في: التحكم المباشر في الأجهزة Hardware, الوصول إلى تعليمات المعالج المتخصصة Processor Instructions, أو لمعالجة مسائل حاسمة تتعلق بالسرعة/الأداء Performance.ومن الأنظمة التي تستخدم عادة لغات التجميع, تجد: مشغلات الأجهزة Device Drivers, النظم المطمرة Embedded Systems منخفضة المستوى, وأنظمة الوقت الحقيقي Real-Time.

وتاريخيا, فقد تم كتابة عدد كبير جدا من البرامج بشكل كلي باستخدام لغة التجميع.وقد تم كتابة بعض أنظمة التشغيل Operating Systems بلغة التجميع وبشكل حصري Exclusively, حتى تم انتشار لغة السي C بشكل واسع في فترة السبعينات وأوائل الثمانينات.وقد تم كتابة العديد من التطبيقات التجارية باستخدام لغة التجميع كذلك, ومنها كميات كبيرة من برمجيات تم كتابتها بواسطة شركات كبرى لتعمل على الحواسب الكبيرة Mainframes الخاصة المصنعة عبر شركة IBM.وعلى الرغم أنه -في نهاية الأمر- قامت لغات "كوبول" COBOL و"فورتران" FORTRAN باستبدال معظم هذا العمل, إلا أن عدد كبير من المنظمات/الشركات حافظت على نظمها وبنيها التحتية Infrastructure المبرمجة عبر لغة التجميع حتى التسعينات, حيث عملت طول هذه الفترة بشكل جيد.

وقد اعتمدت معظم الحواسيب الصغيرة Microcomputers على كود مكتوب يدويا باستخدام لغة التجميع, بما في ذلك نظم التشغيل Operating Systems والتطبيقات الكبيرة.وذلك لعدة أسباب: أولها أن تلك النظم حافظت على قيود شديدة على الموارد, فرضت خصوصية على الذاكرة Memory وعلى عرض بنية التطبيقات Architecture, وخفضت من نسبة الأخطاء Bugs التي تظهر أثناء عمل النظم.وربما كان الأهم من ذلك كله كانت الحاجة لوجود مترجمات للغة عالية المستوى من الدرجة الأولى First-Class, تكون مناسبة لاستخدام الحواسيب الصغيرة Microcomputers.وقد يكون هناك عاملا نفسيا قد لعب دورا أيضا: أن الجيل الأول من مبرمجي الحواسيب الصغيرة ظلوا يحتفظون بموقف الهواة Hobbyists والذي يمكن صياغته في العبارة: "الأسلاك والزرديات" Wires and Pliers -عبارة تشير إلى تمسك أولئك المبرمجين بالأسلوب "الصعب" للغة التجميع على الرغم من توافر أساليب "أسهل" مثل اللغات عالية المستوى-.

وفي اطار تجاري أكثر, فإن الأسباب الرئيسية لاستخدام لغة التجميع كانت: حجم Size أقل, مشكلات Overhead أقل, سرعة أعلى واعتمادية Reliability أعلى.

وكأمثلة نموذجية لبرامج كبرى كتبت بلغة التجميع في ذاك الوقت, تجد نظام التشغيل "مايكروسوفت دوس" MS-DOS, وبرنامج IBM لمعالجة الجداول "لوتس" Lotus 1-2-3, وكذلك معظم الألعاب الشهيرة لعائلة "الأتاري" Atari 800 للحواسب المنزلية.وحتى في التسعينات, معظم ألعاب الفيديو من نوع Console تم كتابتها عبر لغة التجميع, بما في ذلك معظم ألعاب شركات Mega Drive/Gensis وشركة Super Nintendo لأنظمة الترفيه.ووفقا لبعض المطلعين داخل صناعة البرمجيات, فإن لغة التجميع كانت أفضل لغة حوسبة يمكن استخدامها من أجل أداء/سرعة عاليين لأجهزة Sega Saturn -وهي أجهزة Console كانت تشتهر في مجال تطوير وبرمجة الألعاب-.وكذلك لعبة NBA Jam والتي ظهرت عام 1993 كلعبة من نوع Arcade ونالت شعبية كبيرة, تعتبر مثالا آخر.واعتبرت لغة التجميع هي لغة التطوير الأساسية على عدة منصات لوقت طويل, منها: Commodore 64، Atari ST وكذلك حواسب المنزل من نوع ZX Spectrum.وقد تسببت عدم كفاءة لغة الـ BASIC -في ذلك الوقت- في استمرار اعتماد تلك الآلات على لغة التجميع, لقد عاب الـ BASIC سببين: لم يوفر سرعة تنفيذ عالية مع هذه النظم, لم يقدم تسهيلات كافية من أجل أفضل استخدام لإمكانيات العتاد Hardware الخاصة بتلك النظم.بعض الأنظمة, وعلى الأخص Amiga, لديها "بيئة تطوير متكاملة" IDE مع إمكانيات عالية لاكتشاف ومعالجة الأخطاء Debugging وإمكانيات "ماكرو", مثل المجمع المجاني ASM-One, مقارنة بإمكانيات برنامج Microsoft Visual Studio (على الرغم من أن ASM-One يسبق Microsoft Visual Studio من حيث وقت الإصدار).

وقد تم كتابة المجمع VIC-20 عبر "دون فرينش" ونشرته شركة "فرينش سيلك".وقد تم كتابته في برنامج يبلغ من الحجم 1639 بايتس Bytes فقط, مما يجعل صاحبه يعتقد أنه أصغر مجمع رمزي تم كتابته في التاريخ.ويدعم المجمع نظم العنونة الرمزية والتعريفات الخاصة بسلاسل الحروف وسلاسل الرموز ذات النظام الـHexadecimal.ويسمح المجمع أيضا بتعيرات العناوين Address Expressions والتي يمكن توحيدها Combined مع عمليات: الجمع, الطرح, الضرب, القسمة, Logical AND, Logical OR والمعاملات الأسية Exponentiation Operators.

ليست هناك تعليقات:

إرسال تعليق