گیر یا باگ(Bug) نوعی خطا یا اشتباه در اجرای نرمافزار است که موجب نتایج اشتباه یا اجرا نشدن نرمافزار میشود. علت این اشکالات میتواند اشتباه در هنگام برنامهنویسی باشد. شرکتهای سازنده نرمافزارها برای حل این مشکل قبل از ارائه نسخه نهایی نسخههایی تحت نام بتا یا آلفا انتشار میدهند تا افرادی آنها را بررسی کنند و این باگها را گزارش کنند. به این افراد بتا تستر (Beta Tester) میگویند.
بعضی اوقات شرکتهای سازنده نرمافزار به عمد یک یا چند اشکال در نسخههای قابل بازی قبل از انتشار، که رایگان پخش میکنند، میگذارند تا از کپی غیرمجاز آنها جلوگیری کنند مانند بازی کیش یک آدمکش.
انواع اشکال
این خطاها انواع مختلفی دارند و هر کدام از این نوعها در زمان خاصی تشخیص داده میشوند، انواع خطاهای برنامهنوسی به شرح زیر میباشد:
-
خطاهای زمان اجرا Runtime errors
-
خطاهای زمان کامپایل Compile-time errors
-
خطاهای لغوی Lexical errors
-
خطاهای نحوی Syntax errors
-
خطاهای معنایی Semantic errors
-
خطاهای منطقی
-
خطاهای منطقی
که از بین همهٔ این خطاها، خطاهای نحوی رایجترین میباشد.
خطاهای دیرهنگام
بعضی اوقات خطا لغوی است ولی به جای اینکه تحلیلگر لغوی آن را تشخیص دهد، در یک مرحله بعد تشخیص داده میشود که به این نوع خطاها، خطاهای دیرهنگام گویند.
فسا-پسا