![]() |
تحدثنا سابقا في كتابنا “كيف تفكر كعالم كمبيوتر بإستخدام لغة بايثون” عن مقدمة اللغة و كيف تعمل و الجزء الثاني من المقدمة و ما هي عملية إصلاح الأخطاء البرمجية Debugging ؟ واليوم سأتحدث معك قليلا عن نهاية الفصل الأول وهو : اللغات الطبيعية واللغات الرمزية |
اللغات الطبيعية Natural languages (الإنسانية) هي اللغات التي يتحدث بها البشر مثل العربية والإنجليزية والفرنسية وهي في المجمل لم تطور أو تخلق بواسطة الإنسان (رغم التدخل الإنساني الدائم في التحديث في اللغة وإختلاق مصطلحات جديدة في كل اللغات)
اللغات الشكلية Formal Languages (أفضل أكثر لفظ الرمزية للتوضيح) : وهي اللغات المصنعة بواسطة البشر ولها نظرية خاصة تسمى نظرية اللغات الرمزية ولها إستخدامات في مجالات متعددة مثل رموز علم الرياضيات .. والكيميائيون أيضا يستخدمون اللغات الرمزية للتدليل على العناصر الكيميائية في المعادلات ..
والذي يهمنا في علوم الكمبيوتر هو أن لغات البرمجة عموما هي نوع اخر من اللغات الرمزية صممت خصيصا للتعبير عن العمليات الحسابية التي يقوم بها الكمبيوتر
أما عن وظيفة اللغات الرمزية فيمكننا تلخيصها أنها تضع القواعد الكتابية للغات العلمية بمعنى أننا لو نتحدث عن معادلة رياضية وقلت لك أن 3+3 = 6 هي معادلة صحيحة في التركيب اللغوي الرياضي (إن إعتبرنا المعادلة هي جملة في لغة الرياضيات) لكن إن قلت لك أن 3=+6$ فهي جملة غير مفهومة رياضيا .. وأيضا لو تحدثنا عن رمز كيميائي وقلت لك H2O فأنت تعرف عن ماذا أتحدث لكن لو قلت لك 2Zz فهي بالنسبالك رمز غير مفهوم على الأقل كيميائيا .. ربما عند سكان الكواكب الأخرى يكون عنوان البريد الإلكتروني لشخص ما !
والقواعد النحوية للغات الرمزية تنقسم إلى قسمين هما صحة كتابة الرموز و بناء الجملة المنطقي في حد ذاته .. والنوع الأول يهتم بالرموز الأولية للغة مثل الكلمات والأرقام .. ففي الأمثلة السابقة كما إتفقنا أن كيميائيا لا يوجد عنصر كيميائي بإسم 2ZZ لإن ZZ ليست ذات معنى في الكيمياء .
النوع الثاني هو الترتيب المنطقي للكلمات والرموز في الجملة البرمجية أو المعادلة الكيميائية أو الرياضية .. فغير مفهوم (بالنسبة لنا على الأقل) أن نقول 3+-=5 ! فلعلامة + أو – أو = مكان محدد في المعادلات الرياضية وما غير ذلك غير منطقي رياضيا .
ولكن رغم أن اللغات البشرية واللغات الرمزية يشتركون في النقاط السابقة لكنها أيضا تختلف في أشياء أخرى :
الغموض
في لغاتنا البشرية يمكننا أن نتلاعب بالألفاظ أو نبدل بعض الكلمات مكان الأخرى أثناء حديثنا ولن يسبب ذلك للمستمع لك مشكلة على الإطلاق .. لكن الحواسيب الرقيقة الطيبة لا تعرف التلاعب بالكلمات !
يمكنها أن تفهم الكلام بالصيغة المتفق عليها (على الأقل في الوقت الحالي) أعتقد أن مستقبلا يمكن وجود كمبيوتر يفهم الكلام كالإنسان ويتعامل على أساسه من يعلم ؟!
غزارة الكلام
في اللغات الإنسانية يمكننا أن نتحدث كثييييرا لإيصال معنى واحد .. لكن مع الماكينات والحواسيب الطيبة الجميلة تحب المختصر المفيد بدون زيادات ليس لها معنى
الكلام الحرفي
في اللغات الإنسانية أيضا يمكننا إستخدام إستعارات للأشياء في كلامنا خاصة بين الأصدقاء المقربين تكفي بعض الإشارات الكلامية (حتى بدون قصد) لفهم المعنى .. لكن مع الحواسيب الأمر مختلف .. يجب أن تتمسك بالكلام الحرفي ..
الشعر والكلام الموسيقي
البرامج
المعاني التي يمكن أن نفهمها عندما نقرأ الأكواد البرمجية كما قلنا أنها معاني حرفية لا لبس فيها بأي معاني غير مباشرة ويمكنك أن تفهم البرنامج بشكل مثالي حين تجمع مع قراءة الأكواد الفهم العام لوظيفة البرنامج وتحليله .
يمكنك إستعراض تمارين هذا الفصل من هنا .. شاركني بحلهم !
..
الأن نكون قد إنتهينا من الفصل الأول في كتاب “كيف تفكر كعالم كمبيوتر بإستخدام لغة بايثون”
برمجة سعيدة !





