الفرق بين الخطأ النحوي والخطأ المنطقي Syntax Error vs Logical Error

اقرأ في هذا المقال


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

ما هو الخطأ النحوي Syntax Error؟

بشكل عام، تتم كتابة البرامج باستخدام لغات برمجة عالية المستوى، و(C و Python و Java) هي بعض الأمثلة على لغات البرمجة عالية المستوى، حيث يكون الكود المصدر سهلة القراءة ومفهوم من قبل البشر، لكن هذه البرامج لا يفهمها الكمبيوتر، لا يفهم الكمبيوتر سوى كود الآلة، لذلك، يتم تحويل البرنامج عالي المستوى إلى كود آلة باستخدام المترجم (compiler)، كل لغة برمجة لديها مجموعة من تراكيب جمل لكتابة البرنامج، ويجب على المبرمج كتابة البرنامج حسب الصيغة الصحيحة، إذا لم يكن الأمر كذلك، فسوف يتسبب ذلك في حدوث خطأ، يُعرف نوع الخطأ هذا بخطأ في بناء الجملة، حيث يحدث هذا الخطأ في وقت التجميع.

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

بعض الأمثلة الشائعة لأخطاء النحوية هي فقدان الفواصل المنقوطة أو فقدان الأقواس المتعرجة أو استخدام متغيرات غير مُعرّفة أو كتابة الكلمات الرئيسية إملائياً بشكل خاطئ، فعلى سبيل المثال إذا كان المبرمج فقط الكاتب (int x) بدون الفاصلة المنقوطة فهذا خطأ نحوي. يعد الخطأ الإملائي في كتابة كلمة “int” خطأً في نحوياً، لذلك، من الضروري اتباع البنية ذات الصلة بلغة البرمجة عند كتابة البرنامج لأن لن يقوم البرنامج بالتجميع حتى يتم إصلاح الخطأ النحوي.

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

ما هو الخطأ المنطقي Logical Error؟

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

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

ما هي أوجه التشابه بين الخطأ النحوي والخطأ المنطقي؟

كلا الخطأ النحوي والخطأ المنطقي هما فئتان من أنواع الأخطاء في البرمجة.

ما هي أوجه الاختلاف بين الخطأ النحوي والخطأ المنطقي؟

النوعالخطأ النحويالخطأ المنطقي
التعريف 

الخطأ النحوي هو خطأ يحدث في تركيب سلسلة من الأحرف أو الرموز المميزة التي يُقصد كتابتها بلغة برمجة معينة.

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

في اللغات التي تستخدم المترجم، يشير المترجم إلى خطأ النحوي مع الموقع وما هو الخطأ.

يجب على المبرمج اكتشاف الخطأ بنفسه.
البساطةمن الأسهل تحديد خطأ نحوي.من الصعب نسبيًا تحديد الخطأ المنطقي.

المصدر: Difference Between Syntax Error and Logical ErrorSyntax and logic errorsGive two differences between Syntax error and Logical error.Syntax, execution and logic errors


شارك المقالة: