آموزش هوش مصنوعی

تفاوت بین برنامه کامپایل شده و تفسیر شده چیست؟

interpreter
عمومی خبری

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

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

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

از آنجایی که انواع مختلف کامپیوترها به زبان ماشین یکدیگر صحبت نمی کنند، یک برنامه کامپایل شده فقط بر روی پلتفرمی که برای آن طراحی شده است کار می کند. به عنوان مثال، برنامه ای که برای HP-UX نوشته شده است، معمولاً روی رایانه Mac OS یا رایانه ای که Solaris دارد کار نمی کند . با وجود این اشکال، برنامه های کامپایل شده سریعتر از برنامه هایی هستند که باید از طریق مفسر اجرا شوند. همچنین، اغلب امکان کامپایل مجدد برنامه به گونه ای وجود دارد که بر روی پلتفرم های مختلف اجرا شود. نمونه‌هایی از زبان‌هایی که معمولاً برای تولید برنامه‌های کامپایل استفاده می‌شوند عبارتند از C، Fortran و COBOL .

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

برنامه های کامپایل شده متوسط ​​تا کامپیوتر خاص و اسکریپت های تفسیر شده برنامه هایی هستند که برای محیط های زمان اجرا طراحی شده اند. برنامه های جاوا و اسمال تاک به این صورت اجرا می شوند. ساختن برنامه ها برای محیط های زمان اجرا مشابه نوشتن برنامه های کامپایل شده سنتی است. تفاوت این است که به جای کامپایل کد منبع به یک زبان ماشین، آن را به کد بایتی خروجی می دهیمبرای “ماشین مجازی” محیط زمان اجرا. این ماشین مجازی دستورالعمل های کد بایت را رهگیری می کند و آنها را به دستورات مخصوص کامپیوتر ترجمه می کند. مزیت این روش این است که محیط زمان اجرا فقط قطعات مورد نیاز کد را به سرعت کامپایل می کند (برخی از قسمت های برنامه ممکن است هرگز نیازی به اجرا نداشته باشند). به این کامپایل کردن به موقع می گویند. عیب اصلی محیط‌های زمان اجرا این است که برنامه‌ای که به خوبی طراحی نشده است، محیط زمان اجرا را مجبور می‌کند تا تقریباً تمام کدها را از قبل کامپایل کند و سپس با مفسر تماس‌های اضافی برقرار کند. این باعث می شود که بارگذاری و اجرای برنامه کندتر شود

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پروتوکلهای امن
عمومی خبری
حملات فعال و غیرفعال در امنیت اطلاعات

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

عمومی خبری
انواع ویروس ها

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

رمزنگاری و استگانوگرافی
عمومی خبری
استگانوگرافی تصویر در رمزنگاری

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