دیباگ کردن

alidalir

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

20180629-17064678.jpg


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

ما در حین برنامه نویسی ممکن است که با 3 نوع خطا مواجه شویم.

  • خطاهای Syntax

  • خطاهای Semantics

  • خطاهای منطقی
که در زیر هر کدام را مختصر برای شما توضیح خواهیم داد .

20180629-17065037.png


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

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

20180629-17061989.jpg


خطاهای منطقی
شاید هفته ها و ماه ها زمان لازم باشد تا یک برنامه نویس بتواند خطاهای منطقی برنامه ی خود را تشخیص بدهد . ممکن است ما در تمامی مراحل کار تمامی باگ ها و خطاها را اصلاح کرده ایم ولی باز هم در حین انجام کار با برنامه به مشکل بر میخوریم و نتیجه آنگونه نیست که ما انتظارش را داریم . خطاهای منطقی جزء خطاهای سخت به شمار می آیند و یافتن و برطرف کردن آنها نیازمند زمان و تجربه است . نادرست بودن الگوریتم ها می تواند مثال بارزی از این نوع خطا به حساب بیاید . حالتی را تصور کنید که برنامه ی شما قرار است مساحت یک مربع را اندازه گیری کند . طول هر ضلع مربع 5 سانتی متر است و قاعدتا اندازه ی مساحت این مربع بر اساس فرمول و داده ها 25 سانتی متر گزارش شود ولی ما با عددی به جز 25 مواجهیم . در اینجاست که ما با یک خطای منطقی روبرو هستیم. البته این فقط یک مثال بسیار ساده بود و میزان پیچیدگی خطا ممکن است بسیار بیشتر از این حرف ها باشد . گیر کردن برنامه در حلقه های بی نهایت هم مثال دیگری می تواند باشد برای بروز خطاهای منطقی . این خطا با نام Logic Error شناخته می شود .پس هرگاه در حین اجرای برنامه متوجه شدید که تمامی قواعد و نکات دستوری و نحوی درست است ولی خروجی ها و نتایج درست نیستند بدانید که با یک خطای منطقی مواجه هستید .

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

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

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

جدیدترین ارسال ها

بالا