دیباگ کردن یعنی چه ؟ و چه کاربردی در برنامه نویسی دارد

در این مقاله قصد بررسی معنی و مفهوم دیباگ کردن و فرایند دیباگ کردن برنامه را داریم (دیباگ کردن یعنی چه). در صورتی هنوز برنامه نویسی را شروع نکرده اید و علاقه مند به یادگیری برنامه نویسی دارید می توانید از دوره های آموزش برنامه نویسی سایت کدفرند استفاده کنید.

اصطلاح دیباگ کردن از کجا آمده است؟

اصطلاح دیباگ کردن به دهه ی ۴۰ میلادی باز می گردد . زمانی که Grace Hopper مشغول نوشتن برنامه بود متوجه وجود اختلال در عملکرد دستگاهش شد و به دنبال آن یک حشره را از داخل سیستم کامپیوتر خود بیرون کشید . این حشره باعث بروز اختلال در کار دستگاه شده بود و به همین علت اصطلاح Debug کردن رواج یافت . bug به معنای حشره است .

دیباگ کردن در برنامه نویسی

دیباگ کردن یکی از اصلی ترین و مهم ترین قسمت های نوشتن یک برنامه است و یک برنامه نویس باید به درستی با مراحل آن آشنا باشد .در فرایند پیچیده ای مانند برنامه نویسی قطعا کاستی ها و اشکالاتی در روند کار وجود خواهد داشت و خطاهایی رخ خواهد داد.

این خطاها می تواند در مراحل مختلف کار اتفاق بیفتد و در نهایت باعث شود که برنامه ی شما آن طور که باید کار نکند . پیدا کردن این خطاها و ارائه ی یک برنامه درست و بی نقص در پایان کار دیباگ کردن نامیده می شود ،برنامه نویسی قبل از هر چیزی نوعی نگارش است .

همان طور که یک نویسنده در پایان کارش باید نوشته های خود را ادیت کند و مشکلات احتمالی را بررسی نماید یک برنامه نویس هم موظف است که نوشته های خود را دیباگ کند و اشکالات آن را بیاید . باگ به معنای خطاهایی است که در حین عملیات های مختلف و در طول کار با برنامه بروز می کند و در اوایل کار آشکار نیست و به مرور آشکار می شوند .

دیباگ کردن پیدا کردن و روش های برطرف کردن این اشکالات است . وجود باگ ها باعث می شوند که برنامه ای که نوشته اید به درستی کار نکند و یا به طور کلی دچار مشکل شود . نتیجه ی نهایی با چیزی که در نظر شماست متفاوت باشد .

در برنامه نویسی ممکن است که با ۳ نوع خطا مواجه شویم:

خطاهای Syntax

خطاهای Semantics

خطاهای منطقی

در ادامه به توضیح خطاهای ذکر شده در بالا خواهیم پرداخت.

خطاهای Syntax

خطای Syntax به معنای نحو است و به معنای نحوه ی نوشتن و طرز قرار گیری صحیح کلمات و عبارات در کنار یکدیگر در یک زبان برنامه نویسی است . Syntax تعیین می کند که صحیح ترین نحوه ی قرار گیری عبارات و کلمات برای داشتن یک برنامه ی صحیح و عاری از باگ به چه شکل است .

هر زبان برنامه نویسی قواعد Syntaxاختصاصی خود را دارد که با سایر زبان ها متفاوت است . هرجا که با پیغام Syntax Error در حین برنامه نویسی مواجه شدید بدانید که دستورات و قواعد نحوی را رعایت نکرده اید و باید آن را اصلاح کنید .

در زبان هایی مانند HTML و CSS این خطاها شاید در روند نهایی نتیجه ی آن چنانی نداشته باشد ولی در زبان هایی مانند PHP و PYTHON هنگام وجود چنین خطایی برنامه به هیچ وجه اجرا نخواهد شد.

خطاهای Semantics یا معنایی

خطای Semantics یا معناشناسی به معنای مفهوم و نتایج درست حاصل از کنار هم گذاشتن عبارات و کلمات است . شاید شما کدهای درستی نوشته اید که هیچ گونه ایرادی بر آنها وارد نیست ولی معنا و مفهوم درستی از این کد ها استنباط نمی گردد . این خطاها نتایج اشتباهی را هنگام اجرا تحویل ما می دهند که باید بررسی شوند . به مثال های زیر توجه کنید .

همه ی ما می دانیم که در زبان فارسی یک سری قواعد وجود دارد . فعل در پایان تمامی جملات وجود دارد و جای فاعل و مفعول مشخص است . هنگامی که ما می نویسم ناصر درس می خواند . جمله ای کاملا درست از نظر قواعد زبان فارسی نوشته ایم ولی اگر بنویسیم درس می خواند ناصر با اینکه تعداد کلمات همان تعداد می باشد ولی در نحوه ی نگارش اشکال وجود دارد و این مثالی برای یک خطای Syntax است .

اگر بنویسیم ناصر مدرسه است با اینکه جای تمامی کلمات درست است و فعل جمله در جای مناسب خود قرار گرفته ولی جمله کاملا غلط و نامفهوم است . این مثالی برای درک بهتر خطای Semantics می تواند باشد .

خطاهای منطقی

شاید هفته ها و ماه ها زمان لازم باشد تا یک برنامه نویس بتواند خطاهای منطقی برنامه ی خود را تشخیص بدهد . ممکن است ما در تمامی مراحل کار تمامی باگ ها و خطاها را اصلاح کرده ایم ولی باز هم در حین انجام کار با برنامه به مشکل بر میخوریم و نتیجه آنگونه نیست که ما انتظارش را داریم .

خطاهای منطقی جزء خطاهای سخت به شمار می آیند و یافتن و برطرف کردن آنها نیازمند زمان و تجربه است . نادرست بودن الگوریتم ها می تواند مثال بارزی از این نوع خطا به حساب بیاید . حالتی را تصور کنید که برنامه ی شما قرار است مساحت یک مربع را اندازه گیری کند.

طول هر ضلع مربع ۵ سانتی متر است و قاعدتا اندازه ی مساحت این مربع بر اساس فرمول و داده ها ۲۵ سانتی متر گزارش شود ولی ما با عددی به جز ۲۵ مواجهیم . در اینجاست که ما با یک خطای منطقی روبرو هستیم. البته این فقط یک مثال بسیار ساده بود و میزان پیچیدگی خطا ممکن است بسیار بیشتر از این حرف ها باشد .

گیر کردن برنامه در حلقه های بی نهایت هم مثال دیگری می تواند باشد برای بروز خطاهای منطقی . این خطا با نام Logic Error شناخته می شود .پس هرگاه در حین اجرای برنامه متوجه شدید که تمامی قواعد و نکات دستوری و نحوی درست است ولی خروجی ها و نتایج درست نیستند بدانید که با یک خطای منطقی مواجه هستید .

سخن آخر

همان طور که ذکر کردیم هر زبان برنامه نویسی قواعد و نکات اختصاصی و مخصوص به خود را دارد و اگر قصد دارید زبان خاصی را فرا بگیرید باید با باگ های احتمالی به وجود آمده و روش های دیباگ کردن آن هم آشنا باشید و بدانید تاثیرات انواع باگ ها و خطاها در زبان های مختلف به چه میزان است .

منبع::کدفرند