تفاوت اصلی بین Source Program و Object Program در این است که برنامه Source یک برنامه قابل خواندن برای انسان است که توسط یک برنامه نویس نوشته شده است در حالی که برنامه شی یک برنامه اجرایی ماشینی است که با کامپایل یک برنامه منبع ایجاد می شود.
برنامه های منبع را می توان برای اجرا کامپایل یا تفسیر کرد. Decompilers کمک می کند تا برنامه های شی را به برنامه های منبع اصلی خود تبدیل کنید. توجه به این نکته ضروری است که اصطلاحات برنامه منبع و برنامه شیء به عنوان اصطلاحات نسبی استفاده می شوند. اگر یک برنامه تبدیل برنامه (مانند یک کامپایلر) را انتخاب کنید، چیزی که وارد می شود یک برنامه منبع است و آنچه بیرون می آید یک برنامه شی است.بنابراین، یک برنامه شی تولید شده توسط یک ابزار می تواند به یک فایل منبع برای ابزار دیگر تبدیل شود.
برنامه منبع چیست؟
برنامه نویس برنامه منبع را با استفاده از زبان سطح بالاتر می نویسد. بنابراین برای انسان به راحتی قابل خواندن است. برنامههای منبع معمولاً حاوی نامهای معنیدار متغیر و نظرات مفید برای خوانایی بیشتر هستند. یک ماشین نمی تواند مستقیماً یک برنامه منبع را اجرا کند. یک کامپایلر به تبدیل برنامه منبع به کد اجرایی برای اجرا توسط ماشین کمک می کند. روش دیگر، استفاده از مترجم است. این برنامه یک برنامه منبع را خط به خط بدون پیش کامپایل اجرا می کند.
شکل 01: یک برنامه منبع
Visual Basic نمونه ای از یک زبان کامپایل شده است، در حالی که جاوا نمونه ای از یک زبان تفسیری است. فایلهای منبع ویژوال بیسیک (فایلهای vb.) به کد exe کامپایل میشوند، در حالی که فایلهای منبع جاوا (فایلهای جاوا.) ابتدا (با استفاده از دستور javac) به کد بایت (یک کد شی موجود در فایلهای کلاس.) کامپایل میشوند و سپس با استفاده از مفسر جاوا (با استفاده از دستور جاوا). هنگامی که برنامه های نرم افزاری توزیع می شوند، معمولاً شامل فایل های منبع نمی شوند. با این حال، اگر برنامه منبع باز باشد، منبع نیز توزیع می شود و کاربر می تواند کد منبع را ببیند و تغییر دهد.
برنامه شی چیست؟
برنامه Object معمولاً یک فایل اجرایی ماشینی است که نتیجه کامپایل یک فایل منبع با استفاده از یک کامپایلر است. جدای از دستورالعملهای ماشین، ممکن است شامل اطلاعات اشکالزدایی، نمادها، اطلاعات پشته، جابجایی و اطلاعات پروفایل باشد.از آنجایی که آنها حاوی دستورالعمل هایی در کد ماشین هستند، به راحتی توسط انسان قابل خواندن نیستند. اما گاهی اوقات، برنامه های شیء به یک شیء واسط بین فایل های منبع و اجرایی اشاره می کنند.
ابزارهایی که به عنوان پیوند دهنده شناخته می شوند به پیوند دادن مجموعه ای از اشیاء به یک فایل اجرایی (مثلاً زبان C) کمک می کنند. همانطور که در بالا ذکر شد، فایلهای exe و فایلهای بایت کد، فایلهای شی هستند که به ترتیب هنگام استفاده از ویژوال بیسیک و جاوا تولید میشوند. فایلهای exe مستقیماً روی پلتفرم ویندوز اجرا میشوند در حالی که فایلهای بایت کد برای اجرا به یک مفسر نیاز دارند.
بیشتر برنامه های نرم افزاری فقط با شی یا فایل های اجرایی توزیع می شوند. امکان تبدیل شی یا فایل های اجرایی به فایل های منبع اصلی خود با دیکامپایل وجود دارد. برای مثال، ابزار دکامپایلر میتواند فایلهای java.class (بایت کد) را در فایلهای java اصلی آن دکامپایل کند.
تفاوت بین برنامه منبع و برنامه شی چیست؟
برنامه Source یک برنامه قابل خواندن برای انسان است که توسط یک برنامه نویس نوشته شده است. این برنامه به زبان های سطح بالاتری مانند جاوا یا C نوشته شده است. بنابراین، یک برنامه منبع قابل خواندن برای انسان است. توسط دستگاه قابل درک نیست.
از سوی دیگر، برنامه Object یک برنامه اجرایی ماشینی است که پس از کامپایل یک برنامه منبع ایجاد می شود. این شامل زبان های سطح پایین تر مانند اسمبلی یا کد ماشین است. بنابراین، برنامه شیء توسط انسان قابل خواندن نیست. توسط دستگاه قابل درک است.
خلاصه - برنامه منبع در مقابل برنامه شی
تفاوت بین Source Program و Object Program در این است که برنامه Source یک برنامه قابل خواندن توسط انسان است که توسط یک برنامه نویس نوشته شده است، در حالی که برنامه شی یک برنامه اجرایی ماشینی است که با کامپایل یک برنامه منبع ایجاد می شود.