- مقالات متفرقه
- معرفی کامپایلر (compiler)
معرفی کامپایلر (compiler)
compiler به تعدادی از برنامههای کامپیوتری گفته میشود که با استفاده از آنها میتوانیم زبان برنامهنویسی که از سطح بالایی برخوردار است (زبان مبدا) را به زبان برنامهنویسی که از سطح پایین تری (زبان متصدی) برخوردار است، تبدیل کنیم. در واقع کدهایی که در ماشین وجود دارد برای افراد قابل فهم نیستند، با توجه به این موضوع باید با استفاده از زبانهای سطح بالا که برای انسانها قابل فهمتر هستند برنامه نوشت، این زبانها را با استفاده از برنامه کامپایلر به یک زبان سطح پایین تری تغییر خواهد کرد.
فهرست مطالب
Toggleتاریخچه کامپایلر
در اوایل ظهور کامپیوترهای امکان استفاده کردن از compiler وجود نداشت، دلیل این موضوع این بود که این کامپیوترها با توجه به ضعف در حافظه و کوتاهی برنامههایی که داشتند قادر به اجرای این برنامه نبودند و کاربران با استفاده از نوارمغناطیسی و به صورت مستقیم باید کد باینر را داخل سیستم وارد میکردند. طولی نکشید که توسعه دهندگان و برنامه نویسان از این شرایط خسته شدند و عزم خودشان را جزم کردند تا برنامهای را بسازند که قابلیت تبدیل کردن نویسههای الفبایی را به تعداد دستورات ماشین داشته باشد، طولی نکشید که در زبان (اسمبلر که بعدها به کامپایلر) تغییر کرد به وجود آمد.
در اواخر سال 1950 میلادی بود که استفاده کردن از ماشینهای دارای زبان برنامهنویسی در میان فعالان این حوزه رواج پیدا کرد و به صورت آزمایشی کامپایلر به وجود آمد. شرکتی به اسم آی بی ام توانست با مدیریت شخصی به نام جان باکوس یک زبان کامل compiler را در سال 1957 میلادی معرفی کند و در سال 1960 میلادی اولین زبان کامپایلر که از یک معماری چند گانه تشکیل شده بود به وجود آمد.
در سال های 1960 تا 1970 میلادی کامپایلرهای زیادی تولید شد ولی از کیفیت بالایی برخوردار نبودند و با توجه به اینکه زبانهای برنامهنویسی نیز در حال پیشرفت و تکامل بودند، پیچیدگی در کامپایلرها زیاد میشد.
در سال 1962 در دانشگاه MTI اولین compiler خود محوری که توانایی کامپایل کردن کدهای خود را داشت توسط دو فرد به نامهای HART و LEVIN معرفی شد، این کامپایلر برای زبان LISP ساخته شده بود.
چگونگی کارکرد کامپایلر
این برنامه با قابلیتی که دارد میتواند برنامههای سطح بالا را خوانده و یک شکل میانی از آن را ایجاد کند، سپس این شکل را به یک زبان دیگری مانند زبان اسمبلی تبدیل کند و بعد این زبان اسمبلی را به شکل میانی برنامه در آورد، بعد از انجام این کارها آن را به یک کد ماشین تبدیل کند. روش ایجاد کردن این کد برای سخت افزار به این شکل است که کامپایلر آن را در قالب Memory Word که با توجه به قواعد زبان سطح بالایی نوشته است، انجام خواهد داد.
انواع کامپایلر
در ادامه به برسی انواع کامپایلر میپردازیم:
۱_ compiler تک فاز و چند فاز
با توجه به اینکه فاز بندی compiler در اجرا بستگی به منابع سخت افزار خواهد داشت اما در کل کامپایلرها را از نظر فاز به compiler تک فاز و compiler چند فاز دسته بندی میشوند. کامپایلرها برای اینکه هر کدام بتوانند به خوبی آنالیز و پروسه ترجمه کردن را انجام دهند، به برنامههای کوچکتری دستهبندی میشوند.
۲_ Compiler تفسیری وکامپایلی
زبانهایی که داری سطح بالایی هستند به دو روش کامپایلی و تفسیری دستهبندی میشوند.
۳_ Compiler عبوری و محلی
Compiler عبوری و محلی از دیگر مدلها این سیستم هستند که تعداد زیادی از کامپایلیها جزوه همین دو دسته هستند.
سخن پایانی
وقتی که یک برنامهنویس اقدام به نوشتن یک برنامه که ازسطح بالایی برخوردار است مانند C++ و یا JAVA میکند، سیستم کامپیوتر شما قابلیت این را ندارد که این زبان را درک کند، در واقع دلیلش این است که کدهایی که در ماشین استفاده شده است کد صفر و یک هستند. زمانی که میخواهیم برنامه قابل فهمی را برای ماشین تعریف کنیم باید از نرمافزاری استفاده کنیم که قادر باشد برنامههای دارای سطح بالا را به کد ماشین تبدیل کند، برای این کار میتوانیم از compiler استفاده کنیم.