خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

انواع مختلف زبان برنامه نویسی چیست؟

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

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

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

ترجمه چیست؟

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

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

کامپایلر چیست؟

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

کامپایلر کلاسیک

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

مراحل کامپایلر

  • اسکنر: این مرحله یک جریان از کاراکترها را می گیرد و آنها را به نشانه هایی که نشان دهنده شناسه ها، حروف الفبای رشته ها و غیره هستند، گروه بندی می کند.
  • تجزیه کننده: این مرحله توکن ها را بر اساس دستور زبان برنامه نویسی مبدأ گروه بندی می کند. این یک درخت نحو انتزاعی ایجاد می کند که مجموعه ای از عبارات است که برنامه را تشکیل می دهد.
  • معناشناسی: این مرحله تجزیه و تحلیل معنایی را بر روی درخت نحو انتزاعی (AST) انجام می دهد. از قواعد زبان مبدأ برای افزودن معنی با اختصاص انواع به عبارات AST و بررسی اعتبار آنها استفاده می کند. سپس AST به یک نمایش میانی تبدیل می شود.
  • نمایش متوسط ​​(IR): این مرحله کد منبع برنامه اصلی را به کد ماشین تبدیل می کند. این یک نسخه ساده از کد اسمبلی تولید می کند. IR از یک یا چند بهینه ساز برای بهبود کد IR و جمع آوری اطلاعات برای دستگاهی که روی آن کار می کند استفاده می کند. یک بهینه ساز می تواند یک برنامه را کارآمدتر، سریعتر یا حتی کوچکتر کند.
  • کد مولد: این فاز کد IR بهینه شده را مصرف می کند و آن را به کد ماشین تبدیل می کند.
مطلب مرتبط:   8 راه برای آماده شدن برای مهاجرت ابری

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

برخی از زبان های برنامه نویسی کامپایل شده محبوب عبارتند از:

  • سی
  • C++
  • برو
  • آدا
  • فرترن
  • COBOL
  • لیسپ
  • هدف-C
  • سریع

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

زبان های کامپایل شده نیز پس از کامپایل بسیار سریع اجرا می شوند.

مترجم چیست؟

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

یک مترجم

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

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

مطلب مرتبط:   چگونه با استفاده از Netlify و GitHub یک وب سایت Angular میزبانی کنیم

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

برخی از زبان های برنامه نویسی تفسیری معروف عبارتند از:

  • پایتون
  • جاوا اسکریپت
  • پرل
  • متلب
  • پایه ای

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

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

ترجمه ترکیبی چیست؟

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

ترجمه ترکیبی

ترجمه ترکیبی ممکن است از یک زبان برنامه نویسی به زبان دیگر متفاوت باشد اما از این ساختار کلی استفاده می کند. یکی از محبوب ترین زبان های برنامه نویسی که از ترجمه ترکیبی استفاده می کند جاوا است. کامپایلر جاوا کد منبع خود را به بایت کد ماشین مجازی جاوا (JVM) ترجمه می کند. سپس مفسر بایت کد JVM را به کد ماشین ترجمه می کند.

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

برخی از زبان های برنامه نویسی ترکیبی محبوب عبارتند از:

  • جاوا
  • سی شارپ
  • ویژوال بیسیک
  • ارلنگ
  • F#
مطلب مرتبط:   آموزش اضافه کردن رشته های متنی به همراه Python Concatenation

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

ارزش دانستن روش های مختلف ترجمه

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

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

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