تفاوت بین زبانهای رایانه تفسیر شده و ترجمه شده چیست؟


پاسخ 1:

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

یک مترجم "خالص" فایل منبع برنامه را ذخیره می کند (به عنوان متن ASCII یا یونیکد). یک خط در هنگام اجرا خوانده می شود و سپس آنچه در خط نوشته می شود انجام می شود. بسیار شبیه آنچه انسان انجام می داد. در عمل ، مترجمان ناب (اگر وجود داشته باشد) اندک هستند. درعوض ، کلمات کلیدی زبان اغلب با نشانه های ویژه جایگزین می شوند تا فضای ذخیره سازی کاهش یابد و اندکی سرعت اجرا شود. مرحله بعدی جایگزینی متن برنامه ذخیره شده با نمایشگر در لهستانی معکوس است. این باعث می شود فضای بیشتری صرفه جویی شود و حتی سریعتر انجام شود ، اما اکنون ما در حال دور شدن از مفسر خالص هستیم.

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

بعضی از کامپایلرها ممکن است برنامه را به یک نمایش داخلی تبدیل کنند ، به عنوان مثال ب) معکوس لهستانی ، و سپس RP را به کد دستگاه ترجمه کنید. این یک "طعم" خاص به تفسیر می بخشد ، حتی اگر کامپایلر باشد.

در وسط سیستم UCSD Pascal P از دهه 1980 وجود دارد. این کامپایلر پاسکال است که یک کد (کد P) را برای دستگاه فرضی تولید می کند. با اجرای برنامه ، در واقع به روشی مشابه سیستم لهستانی معکوس که در بالا گفته شد ، تفسیر می شود. این مزیت بسیار خوبی دارد که بسیار قابل حمل است ، بنابراین می توانید برنامه هایی بنویسید که بر روی چندین رایانه مختلف اجرا شود. مایکروسافت به دلایل مختلف تقریباً همین کار را انجام می دهد: قابلیت حمل.

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

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