ترجمه کدمنبع با مترجم

ترجمه کدمنبع با مترجم


در روزگار گذشته، عموما کامپایلرها آهسته و کُند بودند. در آن موقع ها هنگامی که کدمنبع را به یک کامپایلر می دادید باید صبح روز بعد برمی گشتید تا ببینید آیا کار کامپایلر تمام شده است یا نه؟! اگر یک اشتباه در نوشتن برنامه خود انجام می دادید، مجبور بودید که آنرا اصلاح کنید و مجددا برنامه خود را کامپایل کنید باید یک بار دیگر تا شارژ کامل صبر می کردید تا فقط ببینید برنامه درست کار می کند یا خیر.

تلاش برای نوشتن یک برنامه با چنین کامپایلرهای آهسته ای باعث کلافگی برنامه نویسان می شد، بنابراین دانشمندان کامپیوتر چیزی سریعتر به نام مترجم (interpreter) ایجاد کردند. مترجم کامپیوتر درست همان کاری را انجام می دهد که یک مترجم خارجی هنگام صحبت، یک فرد گوش می دهد و سپس آن را به زبان دیگر ترجمه می کند.

یک دستور برنامه را به مترجم بدهید، مترجم بلافاصله آن فرمان را به دستور زبان ماشین معادل خود ترجمه می کند. فرمان دیگری را وارد کنید و مترجم فرمان دوم را به درستی ترجمه می کند.

مشکل کار با مترجمان این است که آنها فقط دستورات زبان ماشین معادل را به جای اینکه در یک فایل جداگانه مانند کامپایلر قرار دهند، در حافظه جای می دهند. اگر می خواهید برنامه خود را بفروشید یا توزیع کنید، باید یک کد منبع را همراه با یک مترجم که بتواند آن را به زبان ماشین تبدیل کند به مشتری بدهید. از آنجا که دادن کد اصلی شما اساسا به معنی تحویل دادن برنامه شماست، هرکسی که می خواهد برنامه خود را به فروش برساند از یک مترجم به جای کامپایلر استفاده می کند.

علت اصلی اینکه دانشمندان کامپیوتر، مترجمین را توسعه دادند این است که: کامپایلرها خیلی کند بودند. اما بعد از اینکه دانشمندان کامپیوتر شروع به ایجاد کامپایلرهای سریع تر کردند بسیاری از برنامه نویسان استفاده از مترجم را متوقف کردند و به استفاده از کامپایلرها بازگشتند. امروزه دانشمندان کامپیوتر از مترجمان برای اجرای برخی از انواع زبان برنامه نویسی که به عنوان زبان های اسکریپت نویسی شناخته می شوند استفاده می کنند. در مورد زبان های برنامه نویسی در فصل سوم این آموزش ها بیشتر توضیح خواهیم داد.

 p-code

ترکیب کامپایلر با مترجم برای ساخت P-Code

ایجاد فایل های اجرایی جداگانه برای هریک از پردازنده ها می تواند ناهموار باشد و کد منبع خود را با یک مترجم ارائه دهد غیرمنطقی است، بنابراین سومین روش این است که برنامه خود را به یک فرمت متوسط bytecode یا pseudocode که اغلب به صورت مخفف p-code بیان می شود بسازیم. برخلاف کامپایل کد منبع به طور مستقیم به زبان ماشین، برنامه خود را در فایل p-code کامپایل کنید.

می توانید این فایل پی-کد را بگیرید و آنرا برروی هرکامپیوتر دیگری کپی کنید. برای اجرای فایل p-code نیاز به یک مترجم خاص p-code یا ماشین مجازی (virtual machine) دارید. ماشین مجازی مانند مترجم عمل می کند و دستورالعمل هایی را که در فایل p-code کامپایل شده اند را اجرا می کند.

- مزیت p-code این است که می توانید یک نسخه p-code برنامه خود را که می تواند در چندین کامپیوتر اجرا شود، توزیع کنید.

- p-code چندین عیب نیز دارد که عبارتند از:

1- برنامه های p-code به سرعت اجرا نمی شوند، زیرا باید به زبان ماشین کامپایل ترجمه شوند.

2- اگر برروی یک کامپیوتر ماشین مجازی به درستی نصب نشده باشد، نمی تواند برنامه شما را اجرا کند.

محبوبترین زبان برنامه نویسی که از p-code استفاده می کند جاوا (Java) است. پس از نوشتن یک برنامه جاوا، می توانید آنرا به یک فایل p-code کامپایل کنید که بتواند برروی هر کامپیوتر که برروی آن ماشین مجازی جاوا نصب است مانند ویندوز، مک و لینوکس اجرا شود.

تئوری p-code این است که شما یک برنامه را یک بار بنوسید و بتوانید آنرا هرجایی اجرا کنید. واقعیت این است که هر سیستم عامل توانایی های خود را دارد، بنابراین برای نوشتن برنامه در سیستم عامل های مختلف مجبور هستید که آنرا به صورت جداگانه آزمایش کنید. در اغلب موارد، یک برنامه p-code در یک سیستم عامل (مانند ویندوز) کاملا خوب عمل می کند امّا هنگام اجرای یک سیستم عامل دیگر (مانند لینوکس) مکشلات اسرار آمیز دارد. زبان هایی مانند جاوا به شما اجازه می دهند که یک برنامه را در چندین سیستم عامل مختلف اجرا کنید اما مراقب باشید! چون p-code همیشه به همان خوبی که ممکن است فکر کنید کار نمی کند.

در نظر گرفتن زمان برای درک

برنامه نویسی مهارتی است که هرکسی می تواند به دست آورد. مانند هر مهارت، بهترین راه برای درک این است که زمان را برای آزمایش، اشتباه خود داشته باشید و از شکست های خود عبرت بگیرید. بعضی از برنامه نویسان ترجیح می دهند وقت خود را برای تسلط بر یک زبان برنامه نویسی صرف کنند. برخی دیگر ترجیح می دهند که پیچیدگی های برنامه نویسی یک سیستم عامل خاص مانند ویندوز را به کار گیرند. و برخی دیگر نیز وقت خود را صرف کشف زبان های مختلف برنامه نویسی و نوشتن برنامه ها برای سیستم عامل های مختلف می کنند.

هیچ راه تشخیص درست یا غلطی برای برنامه نویسی وجود ندارد. تنها راه "درست" روشی است که برای شما کارساز باشد. به همین دلیل است که برنامه نویسان اغلب می توانند برنامه هایی را بنویسند که دقیقه مشابه (یا حتی بهتر) از برنامه های نوشته شده توسط دانشمندان کامپیوتر با مدرک PhD باشد.

مانند هر مهارتی، هرچه وقت بیشتری را صرف بنویسی کامپیوتر کنید، بهتر است. این آموزش به شما برای شروع کارتان در برنامه نویسی اماده شده است، اما در نهایت می توانید با آنچه که یاد میگیرید برنامه نویسی کامپیوتر خود را آغاز کنید.

باورکنید یا نه، برنامه نویسی کامپیوتر در واقع کاملا ساده است. بخش سخت آن نوشتن برنامه ای است که واقعا کار کند و مشکلی را حل کند.

کم کم به انتهای فصل اول آموزش برنامه نویسی کامپیوتر نزدیک شدیم، در جلسه آینده با موضوع شروع برنامه نویسی با شما همراه خواهیم بود.

جلسه قبل | جلسه بعد

تبلیغات در پایین ادامه ی مطلب

نظرات شما


    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
    کد امنیتیرفرش کد امنیتی