أهلا ومرحبا.
في هذا الفيديو ، أود أن أشرح لكم ما هي أخطاء المترجم.
حتى هذه النقطة.
يمين.
لقد كتبنا بعض التعليمات البرمجية ولاحظنا أنه في نافذة إخراج البناء ، نصدر أمر
تجميع ونعرف عندما يكون لدينا أخطاء.
يمين.
عادة ما يكون هناك وصف لطيف يشير إلى وجود خطأ في التعليمات البرمجية الخاصة بك ، ولكن ماذا يعني
ذلك بالضبط؟
لذلك عندما تكتب رمزًا للبرمجة ، فإن اللغات ولغات البرمجة صارمة للغاية.
لديهم قواعد.
وعليك اتباع هذه القواعد من أجل الحصول على برنامج قابل للتنفيذ.
سوف يتحقق المترجم بالفعل من بناء جملة الكود.
وإذا كانت صحيحة وإذا لم تكن هناك أخطاء دلالية ، فسيتم إنشاؤها من التعليمات البرمجية المصدر ، وكود نوع
لغة الآلة ، ويمكنك تشغيل برنامج.
ولذا عليك اتباع هذه القواعد وهي قواعد مفصلة للغاية.
ولذا عليك أن تكون شديد التركيز على التفاصيل.
لذلك يمكن أن تأتي أخطاء المترجم في شكلين.
يمكن أن تأتي في شكل خطأ نحوي أو خطأ دلالي.
الخطأ النحوي هو عندما يكون لديك خطأ في بنية الشفرة ، فأنت
لا تتبع قواعد اللغة من حيث تركيبها ، أليس كذلك؟
أنت لا تضع الأقواس في المساحة الصحيحة الصحيحة.
أنت لا تضيف جميع عباراتك بفاصلة منقوطة.
أنت لا تخطئ في كتابة الكلمات الرئيسية.
هذه كلها أمثلة شائعة.
الفاصلة المنقوطة شائعة جدًا عندما تبدأ أول مرة.
لذلك إذا قمت بتعريف متغير وقمت بتعيينه إلى خمسة ولكن ليس لديك هذه الفاصلة المنقوطة
في النهاية ، فهذا خطأ نحوي.
هناك خطأ ما في هذا الهيكل.
كما لو كنت ستستخدم إفادة printf وقلت عبارة printf داخل علامتي اقتباس مزدوجتين ، لكنك نسيت
النهاية ، علامة الاقتباس المزدوجة.
هذا خطأ نحوي.
وبالتالي ، هناك خطأ ما في هذه البنية في المترجم سوف يحدث عادةً عندما يقوم بمسح كود
المصدر الخاص بك ويجد هذا الخطأ ، وعادةً ما يعطي خطأ وصفيًا مما يعني أنه يمكن أن يوجهك في الاتجاه الصحيح وعادةً
ما يعطي أيضًا رقم السطر.
وقد رأينا ذلك في مقاطع الفيديو السابقة.
النوع الآخر من الخطأ الذي يمكن للمجمع أن يكتشفه هو خطأ دلالي.
لا يكتشف دائمًا أخطاء الدلالات إذا كانت أخطاء منطقية ، لكن الدلالي عادةً ما تعني وجود
خطأ ما في المعنى.
القصد من البرنامج.
لذا ، على سبيل المثال ، إذا كنت ستضيف متغيرين A و B ، لكن هذين المتغيرين كانا من نوعين مختلفين
ولم يكن لهما معنى ، أليس كذلك؟
ليس من المنطقي إضافة A و B.
يمكن للمجمع في بعض الأحيان اكتشاف هذه الأخطاء الدلالية.
الأخطاء الدلالية الأخرى لها علاقة بالمنطق وسنناقشها.
ولا يجد المترجم هذه دائمًا.
كان الهيكل صحيحًا وكان كل شيء على ما يرام مع الهيكل ، ولكن منطقيًا كان هناك شيء غير صحيح.
هناك خطأ في منطق الكود.
لذلك عندما تفكر في الأخطاء الدلالية ، ما يمكن للمترجم أن يمسك به ، فإن الأمر
يتعلق أكثر بإمساك الكتابة والأشياء التي لا يفترض أن تفعل بها ، بقواعد مختلفة للغة تتعلق
بأنواع متغيرات متشابهة.
والآن دعونا نلقي نظرة في ضوء الكود لنرى بعض الأمثلة الشائعة لبعض الأخطاء النحوية والدلالية
في لغة البرمجة سي.
لذلك نحن هنا في ضوء التعليمات البرمجية مع تطبيق بسيط من نوع Hello world.
هذا رمز تم إنشاؤه لك من إعدادات مشروعك.
إذا قمت بحفظه كقالب.
كود بسيط جدا أليس كذلك؟
وعندما تقوم بتجميع هذا الملف ، سيخبرك ما إذا كان لديك أخطاء في بناء الجملة أم لا.
يمكنك النقر بزر الماوس الأيمن مرة أخرى ويمكنك قول ترجمة.
والآن ليس لدينا أي أخطاء ، أليس كذلك؟
لكن من الناحية التركيبية ، نحن نتبع جميع القواعد.
لكن الصيغة تشمل ، مرة أخرى ، كل بنية الكود.
لذلك إذا لم يكن لديك فاصلة منقوطة أو إذا لم يكن لديك رمز رطل قبل التضمين وحاول
تجميعه.
سترى أن هناك خطأ وعادة ما يكون لخطأ مترجم الخطأ نوع من المعنى.
الآن ، بينما تكتب المزيد والمزيد من التعليمات البرمجية وتحصل على المزيد والمزيد من التدريب ، فإن هؤلاء المترجمين لن يكونوا منفعلين
للغاية.
لن تكون غير وصفية لدرجة أنك ستعرف نوعًا ما ، على سبيل المثال ، يقول
هذا الخطأ أن لدينا خطأ في السطر الأول ، أليس كذلك؟
ولذا فهو لطيف.
يمكنك النقر نقرًا مزدوجًا فوق هذا.
ستنتقل إلى هذا الخطأ ، لكنها تقول أن التساوي المتوقع يعرف الفاصلة المنقوطة.
لا يخبرك حقًا ما هو الخطأ.
كما تعلم ، من خلال ممارسة البرمجة ستدرك ، أوه ، لقد نسيت رمز الباوند.
لذا فإن بعض أخطاء المترجم ليست وصفية كما تريد إذا كنت جديدًا في البرمجة.
لذا أضفت ذلك ، أضف رمز الجنيه هذا ، فأنت تعيد تجميعه وأنت على ما يرام.
إذا أخطأت في كتابة المعيار ، فلن تتمكن في بعض الأحيان من العثور عليه.
لذلك تقوم بحفظها وإعادة تجميعها وترى خطأً يقول أكثر من ذلك بقليل.
يمين؟
لا يوجد مثل هذا الملف أو الدليل Stdio. ح يخبرك هذا النوع ، أوه ، ربما أخطأت في تهجئتها.
لذا فإن الأخطاء الإملائية هي أخطاء شائعة.
كما تعلم ، عدم وضع الأشياء في المنظور الصحيح من حيث الأقواس غير المتطابقة.
كما تعلم ، نسيت الأقواس ، كما تعلم ، مرة أخرى ، تعيد تجميعها.
دعونا نرى كيف يبدو هذا الخطأ.
مرة أخرى ، هذا ليس وصفًا فائقًا.
إنه يقول ، كما تعلمون ، هناك أساسًا أقواس قبل قوس النهاية المتعرج لأنه لا يعرف أنه يعتقد
أنه ربما سينتهي هذا الأقواس اليمنى في مكان ما بالأسفل هنا.
لا يمكن أن يخبرك دائمًا بما يحدث بالضبط.
لذا فإن الأقواس والأقواس المتعرجة المفقودة ليست وصفية في بعض الأحيان.
ولكن إذا كان لديك شيء مثل فاصلة منقوطة مفقودة ، فهذا واضح ومباشر.
يخبرك خطأ الترجمة هذا بالضبط بما يحدث.
تشير الفاصلة المنقوطة المتوقعة قبل نوع الإرجاع حتى إلى المكان الذي من المفترض أن تضع فيه هذه الفاصلة المنقوطة.
لذلك يمكنك النقر نقرًا مزدوجًا فوق ذلك ، ووضع فاصلة منقوطة إذا فاتتك علامة اقتباس مزدوجة وقمت بإعادة التحويل البرمجي.
يمين؟
ترى الآن شيئًا يقول أنه مفقود بشكل أساسي ، وينهي الاقتباس المزدوج.
ومرة أخرى ، يوجهك نوعًا ما إلى المكان الذي يحدث فيه الاقتباس الأول ويعطيك أخطاء متعددة
، صحيح ، على الرغم من أن لديك واحدًا فقط.
لذلك كان لديك هذا الاقتباس المزدوج وأنت على ما يرام.
الآن ، هذا الرئيسي يقول أنك بحاجة إلى إرجاع عدد صحيح.
ماذا لو حاولت بالفعل إرجاع شيء مثل داخل علامات الاقتباس المزدوجة؟
مرة أخرى ، أنت لا تتبع هيكل اللغة هذا ويخبرك بشكل أساسي أنك تقوم بإرجاع
مؤشر حرف من نوع دالة.
مرة أخرى ، قد لا تكون أخطاء الترجمة هذه منطقية بالنسبة لك في الوقت الحالي ، ولكن كلما كتبت المزيد والمزيد
من التعليمات البرمجية ، ستكون أكثر منطقية.
لكن الأمر كله يتعلق باتباع هذا الهيكل.
الآن ، إذا حاولت القيام بأشياء تجعلها منطقية من الناحية التركيبية ، لكن المعنى غير صحيح.
على سبيل المثال ، لنفترض أننا قمنا بطباعة F ثم حاولنا إجراء عملية حسابية مثل القسمة
على ثمانية أو القسمة على سبعة.
نحفظه ونجمعه والآن نرى المزيد من الخطأ الدلالي حيث لدينا رمز قسمة بعد علامات الاقتباس
المزدوجة.
أنت تعرف أين كان متوقعًا في الواقع باستخدام Semicolon C بشكل أساسي سنجد أخطاء في بناء الجملة وأخطاء دلالية.
عادة ما يتعلق معنى الكود بالمنطق.
لم يتم العثور على الكثير من الأخطاء الدلالية التي تحدث في لغة مثل C plus plus عندما تستخدم.
أشياء.
لذا كن على اطلاع على أخطاء بناء الجملة من المترجم.
الأشياء الشائعة الخطأ الإملائي إساءة استخدام.
الكلمات الرئيسية التي لا تنتهي الأقواس الخاصة بك عندما تبدأ بها كتل من التعليمات البرمجية عندما لا يكون
لديك كتلة النهاية والبداية ويمكن أن يكون لديك العديد من الأخطاء ، أليس كذلك؟
لنفترض أن لدينا Hello world.
نحن نفتقد الفاصلة المنقوطة.
نحن نعيد سلسلة.
تعلمون ، نحن نفتقد القوس ، كما تعلمون ، ونحن نبنيه.
وهذا برنامج صغير نوعًا ما.
لكن عندما نحاول تجميعها الآن ، نشاهد أخطاء متعددة ، أليس كذلك؟
خطأين.
وهو نوع من الصعوبة ، مثل ، من أين أبدأ؟
عادة ما ستفعله هو إصلاح الخطأ الأول لأنه في بعض الأحيان قد يتسبب خطأ واحد في حدوث المزيد من الأخطاء.
لذلك تريد دائمًا إلقاء نظرة على خطأ المترجم في الأعلى وإصلاحه أولاً.
لذا تريد إصلاح واحد على السطر الخامس ، أليس كذلك؟
وبعد ذلك قد ترغب في الإصلاح ثم إعادة الترجمة ثم ربما إصلاح واحد في السطر السادس بعد ذلك.
والآن تقول جايسون.
لذا يمكنك الآن قول إرجاع صفر ، ولكن دائمًا ما أصلح هذا الخطأ الأول قبل إصلاح الأخطاء اللاحقة لأن أحدهما
يمكن أن يتسبب في الخطأ الآخر.
وبالمناسبة ، ستكون لدينا دائمًا أخطاء في التعليمات البرمجية الخاصة بنا.
نحن حتى المبرمجين الأكثر خبرة سيكون لدينا أخطاء في بناء الجملة.
ولذا فمن الشائع وجود أخطاء.
المهم حقًا هو فهم الرسائل التي تأتي من المترجم لإخبارك بكيفية
تصحيحها.
ومرة أخرى ، سوف يأتي ذلك في الممارسة العملية.
سنتحدث أكثر عن المترجمات والمجمعات الشائعة في مقاطع الفيديو المستقبلية ، ولكن حاول
فقط التأكد من أنك تتبع بنية اللغة أثناء تعلمها ، واللغات النحوية وما إلى ذلك.
سنتحدث في المحاضرات القليلة التالية عن كيفية وجود أنواع مختلفة من الأخطاء.
ذكرت أخطاء منطقية.
يمكننا أيضًا التحدث قليلاً عن التحذيرات.
سنتحدث أيضًا عن أخطاء الرابط وأخطاء وقت التشغيل.
شكرًا لك.