اللغات البشرية مقابل لغات البرمجة

تحولت مقارنة مختصرة من منظور عالم لغوي (قريبًا) إلى مبرمج

ما زلت أتذكر اليوم الذي تعلمت فيه لأول مرة عن اللغويات الحاسوبية. لقد تخرجت للتو من مدرسة ثانوية متخصصة في العلوم ، وواجهت قرارًا صعبًا بشأن ما يجب دراسته. لأي سبب من الأسباب قررت أن أذهب مع اللغات ، وفي إحدى المحاضرات الأولى تعلمت عن اللغويات التطبيقية وأقسامها الفرعية العديدة. من كل هذه المجالات ، لفتت علم اللغويات الحسابية انتباهي. أتذكر أنني أعتقد أنه يجب أن يكون هناك توازن مثالي بين تخصصين مختلفين تمامًا ، ومثالي للأنواع غير الحاسمة مثلي التي ترفض الاختيار بين العلوم الإنسانية والعلوم.

المصدر: 3: مجلة AM

بعد تسع سنوات ، أتعلم مرة أخرى ، لكن هذه المرة أنا على الجانب الآخر من العملة - أتعلم البرمجة. عادت ذكريات أيام الطلاب ، لكن هذه المرة يمكنني أن أفعل أكثر من أن أحلم بهذا الحقل المتوازن تمامًا. أنا أستغل هذه الفرصة لمعرفة المزيد عن اللغويات والبرمجة وكل شيء مشترك بينهم. لذلك دعونا نبدأ من الأساسيات ذاتها.

ما هي اللغة؟

قد يبدو تعريف اللغة أمرًا سهلاً ، لكن الصفحات والصفحات يمكن أن تكون (وقد تمت كتابتها) عن ذلك. السبب وراء ذلك هو الطبيعة المعقدة للغة كظاهرة ، وكذلك الطرق المختلفة لمعالجتها وشرحها. يمكن تعريف اللغة على أنها نظام من الرموز المنطوقة أو اليدوية أو المكتوبة التي يستخدمها البشر للتعبير عن أنفسهم وهويتهم وخيالهم وعواطفهم. مع مرور الوقت تطورت وتطورت اللغات ، ووجدنا طريقة لوصف هذه التغييرات وتنظيمها. ومع ذلك ، فإن الغرض الرئيسي - الاتصالات - لم يتغير.
لغات البرمجة تدور حول مبدأ التواصل نفسه. تم إنشاؤها من قبل البشر كنظام للرموز والقواعد المستخدمة لتوصيل مجموعة من التعليمات إلى جهاز / كمبيوتر. على الرغم من بساطة الكثير في طبيعتها ، فقد طورت لغات البرمجة أيضًا تصنيفها وتاريخها.

إذن ما أوجه التشابه والاختلاف بين لغات البرمجة واللغات البشرية؟

التشابه

لقد استخلصنا هذا بالفعل من الفقرة السابقة ، ولكن دعنا نكررها مرة أخرى: الوظيفة الرئيسية للغات ، سواء كانت بيثون أو الصينية ، هي التواصل. هذا هو التشابه الأكثر أهمية بينهما ، وأحد الأسباب الرئيسية التي نشير إليها كلاهما باللغات.

ميزة أخرى مهمة لديهم بين القواسم المشتركة هي البنية. اثنين من المفاهيم الرئيسية في اللغويات هي دلالات وبناء الجملة. تشير الدلالات إلى معنى كلمة معينة ، أو بالأحرى معلومات مرتبطة بمفهوم معين. على سبيل المثال ، تنطبق كلمة "أكل" على إجراء محدد يمكن أن تفعله الكائنات الحية. بناء الجملة ، من ناحية أخرى ، عبارة عن مجموعة من القواعد تخبرنا بكيفية ترتيب الكلمات والعبارات ودمجها. هما متشابكان عن كثب ، وفقط معا يمكن أن تخلق التعبير يعمل بشكل كامل. خذ الجملة يعتبر السرير كمثال: على الرغم من أنه صحيح من وجهة نظر بناء الجملة ، فمن المنطقي أن يكون خاطئًا لأن السرير ليس على قيد الحياة وبالتالي لا يمكنه تناوله. على غرار اللغات الطبيعية ، تميز لغات البرمجة بين بناء الجملة والدلالات. تتم كتابة كل لغة برمجة مع وضع فكرة أو نية معينة في الاعتبار (دلالات) مع اتباع مجموعة القواعد حول استخدام المتغيرات والوظائف وأنواع مختلفة من الأقواس والألوان وغيرها (بناء الجملة).

من المهم أيضًا الإشارة إلى أن كلاً من عائلة لغوية أو مجموعات من اللغات ذات الصلة تتفرع من بعضها البعض. لقد سمعنا جميعًا عن عائلة اللغة الهندية الأوروبية ، والتي تشمل اللغة الإنجليزية ، من بين العديد من اللغات الأخرى. لغات البرمجة لها أسرتها اللغوية مع بناء جملة و / أو دلالات مماثلة نسبيا. في الصورة أدناه ، يمكنك رؤية بعض لغات البرمجة الأكثر دراية (للحصول على شجرة أنساب أكثر تفصيلا ، انقر هنا).

المصدر: تاريخ لغات البرمجة من قبل أورسولا لويس

اختلافات

بينما نتحدث عن بنية اللغات ، دعونا لا ننسى أن نذكر التشكل. المورفولوجيا هي دراسة الكلمات ، تكوينها ، علاقتها بكلمات أخرى في نفس اللغة ، وكذلك الطرق التي يمكن للسياق أن يغير بها نطق الكلمة ومعنىها. في حين تلعب المورفولوجيا دورًا مهمًا للغاية في تحليل اللغات البشرية ، لا يمكننا حقًا القول إن لغات البرمجة لها أي شيء مماثل لها.

بادئ ذي بدء ، لغات البرمجة إبداعات مصطنعة. هذا يعني أن جميع قواعدهم وتعريفاتهم قد صُممت مسبقًا ، مما يسمح بوصفهم ودراستهم بالكامل. قواعدهم ذاتية التحديد ، ولا تتغير حسب السياق. فكر في الأمر بهذه الطريقة: كل سطر من الشفرات له معنى صفر أو معنى واحد (بمعنى آخر ، يحتوي إما على خطأ أو أنه برنامج صالح يمكنك تشغيله). لا توجد مرادفات (على الرغم من أنه يمكن اعتبار خريطة وروبي .collect بمثابة مرادفات ، على سبيل المثال) ، والرموز ، والقياسات ، والمراجع التاريخية أو الثقافية. لهذا السبب ، فإن لغات البرمجة لا تحتوي على التشكل ، على الأقل ليس بالطريقة نفسها التي تعمل بها اللغات البشرية.

المصدر: ستيف المتشرد ولغوي سخيف

ثانيًا ، نظرًا لكونها تتبع مجموعة صارمة جدًا من القواعد ، فإن لغات البرمجة لا يمكنها أن تتطور وتطور بنفس الطريقة التي تتطور بها اللغات البشرية (على الرغم من أنه يمكننا القول أن لغات البرمجة تتطور من خلال مكتبات مختلفة). لا يوجد مجال للأخطاء أو الارتجال. من ناحية أخرى ، فإن اللغات البشرية مليئة بالعيوب. فقط فكر في اللهجات ، اللغات العامية ، المصطلحات ، الحجة (اللغة السرية المستخدمة من قبل مجموعة معينة غير مفهومة للغرباء) ، الاسم نفسه ، لهجات ، الكلمات الخاطئة ، الأخطاء المطبعية ، علامات الترقيم غير المنتظمة والعديد من الجوانب الأخرى للغات البشرية التي لا تعطل الرسالة التي نحن تحاول التواصل.

المصدر: ستيف المتشرد ولغوي سخيف

والرسالة التي تتواصل بها لغات الإنسان هي منطقية وعاطفية. إذا تحدث ، فإنه يتضمن لغة الجسد ، التجويد ، الصوت ، والعديد من القرائن غير اللفظية الأخرى. في الواقع ، يتم تعريف اللغات إلى حد كبير من خلال الخصائص الفيزيائية للأجسام البشرية (العيون واللسان واليدين) وهي لهذا السبب فريدة من نوعها للبشر. لا ينطبق أي منها على لغات البرمجة. على الرغم من أن المبرمجين ذوي المهارات العالية يمكنهم تطوير أساليبهم الخاصة في كتابة التعليمات البرمجية ، إلا أن طبيعة هذا الكود تظل كما هي: منطقية ودقيقة وغير غامضة تمامًا. لا ينبغي أن يكون ذلك مفاجأة ، لأن أساس جميع لغات البرمجة هو المليارات والمليارات من 1s و 0s.

لماذا هذا مهم؟

إن فهم الفرق بين لغات البرمجة واللغات البشرية له قيمة كبيرة بالنسبة للعديد من المجالات التي تعمل على إنشاء أدوات للمهام العملية الهامة مثل الترجمة الآلية والتعرف على الكلام وتوليف الكلام واستخراج المعلومات من النص والتدقيق النحوي واستخراج النصوص والمزيد. فكر في الترجمة من Google أو Siri ، وحاول أن تفهم كل ما يلزم لتحويل جملة بسيطة باللغة الإنجليزية إلى رسالة يمكن معالجتها بواسطة الكمبيوتر. الآن فكر في المحادثة الأولى باللغة الإسبانية التي أجريتها خارج الصف. لقد جعلك تشعر بالدوار ، أليس كذلك؟

المصدر: ستيف المتشرد ولغوي سخيف