نحو لغة برمجة عربية – المقال الأول

التواصل اللغوي الأول بين الإنسان و الكمبيوتر
للكمبيوتر لغته الخاصة وسط عالمه الإلكتروني. فهو لا يعرف لغة غير الكهرباء إما فولت عالي أو فولت منخفض
و لأنه صُمم كتطبيق للجبر البولياني Boolean Algebra الذي يعتمد على True و False قمنا بأول ترميز
أن True تعني خذ فولت عالي و False للفولت المنخفض , بُنيت الدوائر الثنائية كـ AND و OR و NAND و اصبح من الصعب الترميز بـTrue و False خصوصا إن كانت متسلسلة , فاستبدلنا الـTrue بـ 1 و الFalse بـ0 لتسهل علينا.
كثرت الأرقام الثنائية فبسطانها بالنظام السداسي عشري للتسهيل , لكن بقي الكمبيوتر كما هو لا يعرف سوى الفولتية.

المعالجات تتكون من آلاف من الدوائر الكهربائية , ربما واحدة للجمع و أخرى للطرح و الضرب و القسمة و جميع الأوامر التي تأتي لها ستكون من نفس المداخل و لنقل انه معالج 16 بت اي يمكنك ادخال 16 حالة مختلفة من الكهرباء فكيف يميز ما نريده ؟
ببساطة هذا يعتمد على النمط الذي تأتي به الكهرباء فمثلاً فلو ادخلنا كهرباء على النمط التالي
0100110010100000
بحيث عند كل رقم 1 نعطي فولت عالي ( 2.7 – 5 ) و لكل رقم صفر نعطي فولت منخفض ( 0 – 0.8 ) سيقوم المعالج بتمرير جزء من الرقم الطويل إلى الدارة الخاصة بالجمع لأنه رأى 0100 في البداية محملاً معه البيانات التي نريده ان يجمعها فيما تبقى من الرقم السابق و هذا ما يسمى بلغة الآلة.

بعد أن انهى مصنع المعالجات تصميم المعالج و قام بتكويد كل الدارات كتب ما يسمى ال Instruction set و لتسهيل بدل أن يجعل قام بعملية تكويد اخرى لتسهل على المبرمج فكتب مقابل 0100 كلمة ADD و مقابل 0000 كلمة STORE و بدل 1111 كتب HALT
لكن مازال على المبرمج ان يكتب تلك الأرقام لا الحروف و يثقبها على البطاقات

Related image

ظهور لغة الإسمبلي

Image result for Nathaniel Rochester

في عام 1948 بدأ Nathaniel Rochester العمل مع شركة IBM لتصميم كمبيوتر عام تجاري هوIBM 701 و بدأ العمل فيه عام 1950 انتهوا منه في 1952 و ظهرت معه لغة الـ Assembly. هناك ترميز اقدم لزوسيه الألماني بلغة Plankakul لكن سنتحدث عن الواقع و ما في ايدينا الان. لغة اسمبلي مكنت المبرمج من كتابة كلمات انجليزية مباشرة بدل النظر إلى الدليل الإرشادي للمعالج ثم الكتابة بالصفر و الواحد, هذا انجاز عظيم!. فالكمبيوتر المولود حديثاً بدأ ينطق يفهم كلمات صانعيه البسيطة , اجمع , طرح , اقرأ , اكتب , انقل , خزن . لكن دون جمل مفيدة.
لكن كيف صنعوا لغة من لاشيء ؟ حيث لا يوجد حتى Assembler. هذا موضوع اخر سننحيه جانباً حتى يحين وقته.

مع لغة اسمبلي كان الكمبيوتر تماماً كالأطفال الذين هم في السنتين من عمرهم مازلنا نحاول بأكبر عدد من تلك الكلمات البسيطة ان نتواصل معهم. لكن في ذلك العام اي 1952 كان هناك شخصين بدءا بالعمل على إثراء اللغة هما Halcombe Laning و Nael Zierler , كانت فكرتهم الاستعانة بمترجم بين الإنسان و الآلة و هنا ولدت فكرة الCompiler و صنعوا اول مترجم هو George او Laning and Zierler system لكن لم يكتب له النجاح فقد كانت احتياجات اللغة اكبر من جهاز MIT المسمى Differential Analyzer.

Image result for john backus fortran

بعدها بسنة اي في عام 53 كانت IBM قد انتجت موديلاً احدث من خوادمها هو IBM 704 و حصل أن تلقت شركة IBM عرضاً من أحد اكبر علماء الكمبيوتر عن لغة بديلة لـ Assembly و قريبة من لغة الإنسان , ذلك العالم هو John Backus و تلك اللغة هي Fortran و انهى العمل عليها هو وفريقه في عام 1954

Related image

خلال 5 سنوات فقط من ذلك العام ظهر حوالي 900 لغة برمجة جديدة ! وظهرت معها مشكلة برج بابل.
تقول الأساطير أن السبب في تعدد لغات الإنسان انه بعد طوفان نوح تجمع الناس في ارض شنعار في العراق و اتفقوا على بناء مدينة و برج يلامس السماء و عندما سمعت الآلهة بما يريدون فعله بلبلت السنتهم فلم يعودوا يفهموا بعضهم البعض و تشتتوا في انحاء الأرض.

هذا ما حصل خلال 5 سنوات , كثرت اللغات فضاعت الجهود وقررت وزارة الدفاع الأمريكية تكوين جمعية لتوحيد اللغات مرة اخرى و قامت تلك الجمعية بإنشاء لغة برمجة جديدة بقيادة Grace Hopper فظهرت عام 1959 لغة COBOL
كتب Alan Kay مرة ان هناك الكثير من المبرمجين المتحمسين يرسلون له لغات برمجة قاموا بتصميمها و كان يرد عليهم بأن إنشاء لغة جديدة هي فكرة جيدة لتعلم كيف يعمل الـ Compiler.
مع قلة لغات البرمجة العربية التي ظهرت و التي ربما لا تتعدى العشرين إلا انها اعادت مرة اخرى المشكلة البابلية من جهة و لم تقدم لجمهورها العربي ما يحتاجون فضلاً عن ما يريدون.
هذا الجزء الأول من المقال و له تكملة.