قواعد مترجم
مترجم سلام خیلی از اشتباهها را پیش از اجرا میگیرد و پیامش را به فارسی و همراه راهحل میدهد. این درس رایجترین آنها را نشان میدهد.
چرا اینقدر سختگیر؟
هر خطایی که مترجم بگیرد، خطایی است که هرگز به دست کاربر نمیرسد. سلام برای همین چیزهایی را که در زبانهای دیگر فقط هشدارند، خطا میداند. هر پیام خطا جای دقیق خطا را با شمارهی خط و ستون نشان میدهد.
رایجترین خطاها
| کد | پیام مترجم |
|---|---|
عدد := ۵ و بهکارنبردن آن | متغیر استفادهنشده 'عدد': پس از تعریف هیچجا به کار نرفته است |
عدد := ۵ سپس عدد = ۶ | نمیتوان متغیر تغییرناپذیر 'عدد' را دوباره مقداردهی کرد؛ برای این کار آن را 'ناپایا' تعریف کنید |
ناپایا عدد := ۵ بدون تغییر | متغیر 'عدد' با کلیدواژهی 'ناپایا' تعریف شده اما هرگز تغییر نکرده است |
اگر عدد: | شرط 'اگر' باید بولی باشد، اما 'صحیح' دریافت شد |
اگر نادرست: | شرط 'اگر' همیشه نادرست است: بدنهی آن هرگز اجرا نمیشود |
شاخهی خالی اگر | بدنهی 'اگر' خالی است: دستوری به آن بیفزایید یا 'اگر' را حذف کنید |
عدد = "پنج" | نمیتوان 'رشته' را به 'صحیح' نسبت داد |
| پایا پس از یک روال | پایا «نرخ» باید پیش از هر تعریف روال یا گونه اعلام شود |
| روالی که صدا زده نمیشود | روال 'کمکی' استفاده نشده است: خصوصی است و هیچجا فراخوانی نمیشود |
چند راهنمایی
- اگر چیزی را عمداً به کار نمیبرید، نامش را با
_شروع کنید. - پیام خطا معمولاً راهحل را هم میگوید؛ بخش «راهنما» را در پایان پیام بخوانید.
- سلام استثنا (exception) ندارد؛ شکست را با مقدار برگشتی مثل
منطقییا جداشمار نشان دهید.