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



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


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


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


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


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


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


در برنامه نویسی ممکن است که با ۳ نوع خطا مواجه شویم:
خطاهای Syntax
خطاهای Semantics
خطاهای منطقی
در ادامه به توضیح خطاهای ذکر شده در بالا خواهیم پرداخت.


خطاهای Syntax


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


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


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


پیشنهاد شگفت انگیز کدفرند،دسترسی به تمامی دوره های آموزشی کدفرند تنها با ۵۹ هزار تومان


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


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


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


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


خطاهای منطقی

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


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


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


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


سخن آخر


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



منبع : [تنها اعضای سایت قادر به دیدن لینک‌ها هستند. ]