close
تبلیغات در اینترنت
آشنایی بیشتر با کامپایلر
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • روانشناسی و علوم تربیتی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • هنر
  • گرافیک
  • موسیقی
  • صنایع دستی
  • تاریخ
  • بیمه
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • جزوه دستنویس و ترجمه درس داده کاوی - دکتر مجید خلیلیان (یکشنبه 22 بهمن 1396)
  • پاورپوینت راهنمای استفاده از نرم افزار weka (یکشنبه 22 بهمن 1396)
  • ترجمه مقاله انگلیسی: یک مطالعه تطبیقی از الگوریتم اجتماع زنبور مصنوعی (یکشنبه 22 بهمن 1396)
  • ارائه روشي براي ذخيره سازي امن داده ها در رايانش ابري (یکشنبه 22 بهمن 1396)
  • ترجمه مقاله انگلیسی: عوامل تأثیرگذار در انتخاب نرم افزار به عنوان یک سرویس مبتنی بر وب معنایی (چهارشنبه 18 بهمن 1396)
  • ترجمه مقاله انگلیسی: پردازش موازی گراف های بزرگ (چهارشنبه 18 بهمن 1396)
  • Opportunities and challenges for cage culture in the Caspian sea (چهارشنبه 18 بهمن 1396)
  • ترجمه مقاله انگلیسی:ترکیب خدمات محاسبه‌ ابری: یک بررسی سیستماتیک سازمان یافته (چهارشنبه 18 بهمن 1396)
  • ترجمه مقاله انگلیسی:مروری بر مسئله امنیت در اینترنت اشیا (چهارشنبه 18 بهمن 1396)
  • ترجمه مقاله انگلیسی: نظریه های مدیریت دولتی توسعه هایی در نظریه مدیریت دولتی (چهارشنبه 18 بهمن 1396)
  • پایان نامه نحله و اجرت المثل از منظر فقه و حقوق ایران (سه شنبه 17 بهمن 1396)
  • ترجمه مقاله انگلیسی:مواد و روش ها برای افزایش عملکرد جستجو برای رمزگذاری پایگاه داده ها (یکشنبه 15 بهمن 1396)
  • ترجمه مقاله انگلیسی:کاربرد شبکه های اجتماعی و تکنولوژی وب معنایی در مهندسی نرم افزار (یکشنبه 15 بهمن 1396)
  • قابلیت اطمینان میکروالکترونیکی-الگوریتم های موازی برای پیدا کردن نمونه های بزرگ (یکشنبه 15 بهمن 1396)
  • ترجمه مقاله انگلیسی : چارچوبی برای انتقال مجموعه داده های رابطه ای به NoSQL (یکشنبه 15 بهمن 1396)
  • همان‌طور كه مي‌دانيم براي آن‌كه يك برنامه نوشته شده به زبان‌هاي سطح بالا، در رايانه قابل اجرا باشند بايد به زبان ماشين ترجمه شوند كه اين كار توسط دو دسته از نرم‌افزارها قابل انجام است. به يك دسته از آنها مفسر يا Interpreter گفته مي‌شود و دسته ديگر مترجم ياCompiler نام دارند.
    در ادامه قصد داريم به طريقه كاركرد يك كامپايلر بپردازيم و آن را با نگاهي جزئي‌تر بررسي كنيم. آشنايي با طرز كار كامپايلرها و مفسرها و درك مفاهيم موجود در آنها به برنامه‌نويس كمك مي‌كند تا برنامه‌هاي بهتر و بهينه‌اي بنويسد.
    يافتن خطا
    بخش مهمي از فرآيند ترجمه مربوط به يافتن خطا در برنامه و اعلام آن به برنامه‌نويس است. در يك برنامه انواع مختلفي خطا ممكن است وجود داشته باشد كه بخشي از آنها توسط كامپايلر قابل تشخيص است و بخش ديگر تنها با تست و آزمون يافت مي‌شود و بايد توسط برنامه‌نويس رفع شود.

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



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

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

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

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

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

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

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

     

     

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

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

    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4075
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 8
  • آمار بازدید
  • بازدید امروز : 1,687
  • باردید دیروز : 4,763
  • گوگل امروز : 16
  • گوگل دیروز : 120
  • بازدید هفته : 18,097
  • بازدید ماه : 106,205
  • بازدید سال : 280,623
  • بازدید کلی : 6,134,349
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





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