close
تبلیغات در اینترنت
آشنایی بیشتر با کامپایلر
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • تاریخ
  • موسیقی
  • صنایع دستی
  • پایان نامه و مقاله پزشکی
  • علوم آزمایشگاهی
  • بهداشت عمومی
  • طب هسته ای
  • چشم پزشکی
  • جنین شناسی
  • روان پزشکی
  • دندانپزشکی
  • پیراپزشکی
  • دامپزشکی
  • طب سنتی
  • داروسازی
  • پرستاری
  • پزشکی
  • مامایی
  • آناتومی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • بررسی مشکلات زندانيان زن پس از آزادی از زندان (شنبه 25 فروردین 1397)
  • بررسی مردم شناسی طرح ها و نقوش لباس ها و بافته های ساسانی (شنبه 25 فروردین 1397)
  • بررسی فراوانی افسردگی در بيماران مبتلا به ديس پپسی مراجعه كننده به درمانگاه گوارش (شنبه 25 فروردین 1397)
  • بررسی عوامل مؤثر بر ميزان رضايت شغلی مديران واحد های آموزشی (شنبه 25 فروردین 1397)
  • بررسی عوامل موثر بر اختلالات يادگيری دانش آموزان (شنبه 25 فروردین 1397)
  • بررسی عوامل پرخاشگری و مشكلات دانش آموزان پرخاشگر و ارائه راه حلهای مناسب براي بهبود رفتار آنان (شنبه 25 فروردین 1397)
  • بررسی عوامل بر يادگيری دروس بخوانيم و بنويسيم پايه اول و دوم ابتدايی (شنبه 25 فروردین 1397)
  • عوامل ايجاد انگيزه معلمان و مديران مقاطع مختلف تحصيلی جهت استفاده از راه كارهاي نوين آموزش (شنبه 25 فروردین 1397)
  • بررسی عوامل اجتماعی مؤثر بر افت تحصيلی دانش‌آموزان دختر و پسر مقطع متوسطه (شنبه 25 فروردین 1397)
  • بررسی علل و انگيزه های گرايش جوانان به رشته های فنی و حرفه ای (شنبه 25 فروردین 1397)
  • بررسی علل رقابت‌های مثبت و منفی و تأثير آن بر امنيت ملی كشور ايران (شنبه 25 فروردین 1397)
  • بررسی علل اجتماعی و تربيتی دروغگويی در كودكان دبستانی و راه های درمان آن (شنبه 25 فروردین 1397)
  • بررسي شناخت غلط های املايی رايج در بين دانش آموزان (شنبه 25 فروردین 1397)
  • بررسی سنجش رابطه بین رفتار شهروندی سازمانی و ابعاد مختلف تعهد سازمانی کارکنان سازمان آموزش و پرورش (شنبه 25 فروردین 1397)
  • بررسی رضايت مندی دانشجويان دانشگاه از امكانات علمی، عملی و منابع انسانی (شنبه 25 فروردین 1397)
  • همان‌طور كه مي‌دانيم براي آن‌كه يك برنامه نوشته شده به زبان‌هاي سطح بالا، در رايانه قابل اجرا باشند بايد به زبان ماشين ترجمه شوند كه اين كار توسط دو دسته از نرم‌افزارها قابل انجام است. به يك دسته از آنها مفسر يا Interpreter گفته مي‌شود و دسته ديگر مترجم ياCompiler نام دارند.
    در ادامه قصد داريم به طريقه كاركرد يك كامپايلر بپردازيم و آن را با نگاهي جزئي‌تر بررسي كنيم. آشنايي با طرز كار كامپايلرها و مفسرها و درك مفاهيم موجود در آنها به برنامه‌نويس كمك مي‌كند تا برنامه‌هاي بهتر و بهينه‌اي بنويسد.
    يافتن خطا
    بخش مهمي از فرآيند ترجمه مربوط به يافتن خطا در برنامه و اعلام آن به برنامه‌نويس است. در يك برنامه انواع مختلفي خطا ممكن است وجود داشته باشد كه بخشي از آنها توسط كامپايلر قابل تشخيص است و بخش ديگر تنها با تست و آزمون يافت مي‌شود و بايد توسط برنامه‌نويس رفع شود.

    همان‌طور كه مي‌دانيم براي آن‌كه يك برنامه نوشته شده به زبان‌هاي سطح بالا، در رايانه قابل اجرا باشند بايد به زبان ماشين ترجمه شوند كه اين كار توسط دو دسته از نرم‌افزارها قابل انجام است. به يك دسته از آنها مفسر يا Interpreter گفته مي‌شود و دسته ديگر مترجم ياCompiler نام دارند.
    در ادامه قصد داريم به طريقه كاركرد يك كامپايلر بپردازيم و آن را با نگاهي جزئي‌تر بررسي كنيم. آشنايي با طرز كار كامپايلرها و مفسرها و درك مفاهيم موجود در آنها به برنامه‌نويس كمك مي‌كند تا برنامه‌هاي بهتر و بهينه‌اي بنويسد.
    يافتن خطا
    بخش مهمي از فرآيند ترجمه مربوط به يافتن خطا در برنامه و اعلام آن به برنامه‌نويس است. در يك برنامه انواع مختلفي خطا ممكن است وجود داشته باشد كه بخشي از آنها توسط كامپايلر قابل تشخيص است و بخش ديگر تنها با تست و آزمون يافت مي‌شود و بايد توسط برنامه‌نويس رفع شود.



    يك كامپايلر تنها در صورتي برنامه نهايي و فايل اجرايي را توليد مي‌كند كه هيچ‌گونه خطاي قابل تشخيص توسط خود را در برنامه پيدا نكند. هنگام بيان طرز كار كامپايلر، به خطاهايي كه ممكن است رخ دهد اشاره خواهيم كرد.

    هزاران زبان برنامه‌سازي با تنوع كاربرد و نحوه كار تاكنون طراحي شده است كه بسياري از آنها نيز به جاي آن‌كه زبان مبدا را به زبان ماشين تبديل كنند، آن را به زبان ديگري تبديل مي‌كنند؛ اما صرف‌نظر از اين تنوع، طرز كار كامپايلرهاي آنها از يك‌سري قواعد و اصول واحد پيروي مي‌كند و تنها تفاوت بين آنها در پياده‌سازي و جزييات كار آنهاست.

    بخش‌هاي كامپايلر
    هر كامپايلر را مي‌توان به دو بخش عمده تقسيم كرد. يك بخش آن براي عمل خواندن متن برنامه و تجزيه آن به اجزاي تشكيل‌دهنده و توليد يك نمايش مياني از برنامه مبدا است كه به آن تحليل گفته مي‌شود. در اين مرحله با استفاده از جداكننده‌ها و كاراكترهاي كنترلي موجود در برنامه، تك‌تك كلمات تشخيص داده مي‌شود و نقش آنها مشخص مي‌شود و پس از آن يك نمايش جديد از برنامه با استفاده از اين تحليل توليد مي‌شود.
    بخش دوم كار كامپايلر مربوط به ايجاد برنامه مقصد از اين نمايش مياني حاصل از بخش تحليل است كه به آن عمل سنتز گفته مي‌شود.
    بخش اول كار يعني بخش تحليل، پيچيدگي‌ چنداني ندارد و اكثر جزييات و تكنيك‌هاي خاص مربوط به بخش سنتز خواهد بود. حين تحليل برنامه، اجزا و همچنين اعمالي كه توسط برنامه انجام مي‌شود توسط كامپايلر مشخص شده و در يك ساختار سلسله مراتبي به نام درخت ثبت مي‌شود كه اين درخت در مرحله سنتز به كار گرفته مي‌شود. نرم‌افزارهاي مختلفي هستند كه برنامه‌هاي مبدا را دستكاري مي‌كنند و به عبارتي نوعي تحليل روي برنامه‌ها انجام مي‌دهند كه از جمله مي‌توان بهPretty Printer ، بررسي‌ كننده‌هاي ايستا و ويرايشگرهاي ساختار اشاره كرد.

    Pretty Printer
    يك Pretty Printer ابزاري است كه يك برنامه را تحليل مي‌كند و آن را به گونه‌اي تغيير مي‌دهد كه ساختار برنامه واضح و خوانا شود. اين وضوح و خوانايي مي‌تواند تغيير قلم (font) بخش‌هاي بخصوصي از برنامه يا ايجاد تورفتگي در ساختار برنامه باشد.
    در اينجا خوب است به اين نكته اشاره كنيم كه تورفتگي اصطلاحا به شروع نوشتن كد از چند كاراكتر جلوتر از ابتداي خط جديد گفته مي‌شود. اين كار براحتي ساختارهاي تو در تو را قابل تشخيص كرده و خوانايي برنامه را بالا مي‌برد.
    تعداد كاراكترهايي كه بايد در تورفتگي از ابتداي خط جديد در نظر گرفت، به عمق يك ساختار در برنامه بستگي دارد.

    بررسي‌‌كننده‌هاي ايستا
    يك بررسي‌كننده ايستا سعي بر آن دارد كه برنامه را خوانده و بدون اجراي برنامه بعد از تحليل، خطاهاي نهفته در برنامه را پيدا كند. به عنوان مثال، يك بررسي‌كننده ايستا ممكن است بخش‌هايي از برنامه را كه هرگز اجرا نمي‌شوند پيدا كند و به برنامه‌نويس اعلام كند. با توجه به اين اعلام يا اشكالي در برنامه وجود دارد كه اجازه نمي‌دهد برنامه هرگز به آن قسمت از كد برسد كه برنامه‌نويس با پي بردن به اين مساله، اشكال را رفع كرده و آن بخش را دسترسي‌پذير مي‌كند و يا با صلاحديد خود آن بخش را حذف مي‌كند تا از حجم كد كم كند. البته اين امكان نيز وجود دارد كه برنامه‌نويس به منظور خاصي آن بخش را به برنامه خود اضافه كرده باشد.
    يك بررسي‌كننده ايستا همچنين مي‌تواند متغيرهايي را كه قبل از تعريف به كار گرفته شده‌اند، تشخيص دهد و يا متغيرهاي تعريف شده بلااستفاده را به برنامه‌نويس اعلام كند. اين نوع بررسي‌كننده، برنامه‌نويس را در تشخيص و رفع بسياري از خطاهاي منطقي ياري مي‌رساند.

    ويرايشگر ساختار
    يك ويرايشگر ساختار، رشته‌اي از دستورات را براي ايجاد يك برنامه مبدا به عنوان ورودي دريافت مي‌كند. اين ويرايشگر نه تنها اعمال ايجاد و اصلاح يك متن از ويرايشگر متن معمولي را انجام مي‌دهد، بلكه متن برنامه را تحليل كرده و يك ساختار سلسله مراتبي مناسب روي برنامه مبدا قرار مي‌دهد. بنابراين ويرايشگر ساختار، قادر به انجام كارهاي بيشتري است كه براي آماده‌سازي برنامه‌ها مفيد هستند. براي مثال مي‌تواند بررسي كند كه ورودي به طور صحيح وارد شده باشد. قادر است كلمات كليدي را به طور خودكار در برنامه قرار دهد. به عنوان مثال زماني كه كاربر كلمه While را كه يك كلمه كليدي از ساختار گردشي است، تايپ مي‌كند، ويرايشگر، كلمه كليدي ديگر اين ساختار يعني do را به طور خودكار در متن قرار مي‌دهد و به كاربر يادآوري مي‌كند كه بين آنها بايد يك شرط قرار گيرد.
    همچنين مي‌تواند از كلمه begin كلمه end و از پرانتز باز، براكت باز يا آكولاد باز، به ترتيب پرانتز بسته، براكت بسته و آكولاد بسته را نتيجه بگيرد و آن را در متن برنامه قرار دهد تا علاوه بر سرعت بخشيدن به برنامه‌نويسي، از بسياري خطاها پيش‌گيري كند.

    پيش‌پردازشگر
    علاوه بر كامپايلر، چندين برنامه ديگر ممكن است براي ايجاد يك زبان مقصد قابل اجرا، لازم باشد. برنامه مبدا ممكن است به ماژول‌هايي تقسيم شود كه در فايل‌هاي مجزا ذخيره شده‌اند. كار جمع‌آوري برنامه مبدا گاهي اوقات به يك برنامه مجزا به نام پيش‌پردازشگر محول مي‌شود. اين پيش‌پردازشگر ممكن است بخش‌هاي خلاصه شده‌اي را به احكام زبان مبدا تبديل كند.
    برنامه مقصدي كه توسط كامپايلر ايجاد مي‌شود، قبل از اين‌كه قابل اجرا باشد، ممكن است نياز به پردازش‌هاي بيشتري داشته باشد. كامپايلر كد زبان اسمبلي توليد مي‌كند كه توسط اسمبلر به كد ماشين ترجمه شده و سپس با تعدادي روال كتابخانه‌اي ادغام شده و بعد به كدي تبديل مي‌شود كه عملا روي ماشين قابل اجراست.
    در يك جمع‌بندي كلي مي‌توان اين طور بيان كرد كه اسكلت برنامه مبدا به پيش‌پردازشگر تحويل داده مي‌شود.
    پيش‌پردازشگر پس از انجام امور اوليه، خروجي خود را به عنوان برنامه مبدا به كامپايلر مي‌دهد. كامپايلر پس از انجام امور مربوط به كامپايل، در صورتي كه با هيچ‌گونه خطاي قابل تشخيصي مواجه نشد، كد زبان مقصد يعني اسمبلي توليد مي‌كند و آن را به عنوان ورودي به اسمبلر مي‌سپارد و اسمبلر آن را به كد ماشين جابه‌جا‌پذير تبديل مي‌كند. اين كد ماشين هنوز قابل اجرا نيست. در اين مرحله ممكن است به تعدادي روال كتابخانه‌اي نيز نياز باشد.
    اين روال‌ها به همراه كد ماشين جابجا‌پذير به بار كننده و پيوند دهنده داده مي‌شود تا در نهايت كد ماشين قابل اجرا توليد شود.

     

     

    کسب درآمد با فروش فایل های سایت ما

    برچسب ها :پيش‌پردازشگر ,ويرايشگر ساختار ,بررسي‌‌كننده‌هاي ايستا ,بخش‌هاي كامپايلر ,يافتن خطا ,
    بازدید : 1161 تاریخ : نویسنده : بهرام محمدپور | نظرات ()
    ارسال نظر برای این مطلب

    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4267
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 7
  • آمار بازدید
  • بازدید امروز : 3,607
  • باردید دیروز : 7,390
  • گوگل امروز : 24
  • گوگل دیروز : 95
  • بازدید هفته : 10,997
  • بازدید ماه : 156,955
  • بازدید سال : 647,201
  • بازدید کلی : 6,500,927
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





    کدهای اختصاصی