زبان پویا در مقابل زبان استاتیک

خود برنامه نویسی به یک چیز بستگی دارد که مقادیر است.
ما از مقادیر با ذخیره آنها در حافظه، دسترسی به آن و ویرایش آن استفاده می کنیم. برای دسترسی به این مقادیر، باید یک برچسب روی آن قرار دهیم، بنابراین هر زمان که نیاز به استفاده از آن مقدار داشتیم، میتوانیم اساساً آن را با استفاده از برچسب فراخوانی کنیم.
int number = 23
به عنوان مثال در این مورد مقدار 23 را با برچسبی که یک عدد است در حافظه ذخیره می کنیم. int فقط می گوید برنامه ایجاد یک برچسب جدید است.
در حالی که ما مقادیر را در حافظه CPU (ریزتراشه) ذخیره می کنیم، باید نوع مقدار را بدانیم تا بتوانیم مقدار را در مکان صحیح ذخیره کنیم. انواع می توانند اعداد کامل، اعداد زوج، متون یا اشیاء بزرگ باشند که مقادیر دیگری در داخل آنها ذخیره شده است.
بنابراین اکنون می خواهیم برخی از داده ها را در حافظه ذخیره کنیم، اما چگونه می دانیم که این را در کجا ذخیره کنیم؟ ما باید نوع ارزش را بدانیم.
برای دانستن نوع داده دو گزینه داریم:
زبان های برنامه نویسی ایستا
در زبان های برنامه نویسی استاتیک، زمانی که ما در حال ایجاد یک برچسب هستیم، باید به آن یک نوع نیز بدهیم، به عنوان مثال در C++ که یک زبان ثابت است. وقتی می خواهید مقداری داده را ذخیره کنید.
int label1 = 3
string label2 = "hello world"
در حالی که ما در حال ایجاد label1 هستیم، کلمه کلیدی int را در جلو قرار می دهیم که نشان دهنده یک نوع است. می گوید label1 فقط می تواند اعداد صحیح (اعداد کامل) را در آن ذخیره کند.
در زبانهای استاتیک، برچسبها دارای مقادیر نوع هستند، زیرا وقتی کامپایلر کد را به اسمبلی تبدیل میکند، فقط برچسب را بررسی میکند تا اطلاعات نوع را دریافت کند تا بداند مقادیر را کجا ذخیره کند.
زبان های برنامه نویسی پویا
در زبان های برنامه نویسی پویا، زمانی که ما در حال ایجاد یک برچسب هستیم، نیازی به تعیین نوع اطلاعات نداریم، خود مقدار، نوع اطلاعات را برای مثال در جاوا اسکریپت که یک زبان پویا است، ذخیره می کند. وقتی می خواهیم مقداری داده را ذخیره کنیم.
var label1 = 3
var label2 = "hello world"
برای ایجاد یک متغیر جدید، ما همیشه از کلمه کلیدی var استفاده میکنیم، زیرا کلمه کلیدی var اطلاعات نوع را ذخیره نمیکند، فقط مسئول ایجاد یک برچسب است، در این حالت label1 و label2 نوع ندارند.
با این حال، کامپایلر برای ذخیره داده ها در مکان های صحیح به مقدار نوع نیاز دارد. برای اینکه هر بار قبل از ذخیره داده، مقدار دریافت اطلاعات نوع از آن را بررسی می کند و سپس آن را به زبان اسمبلی تبدیل می کند.
در دنیای برنامه نویسی به برچسب ها متغیر گفته می شود
از آنجایی که ما باید مقدار را هر بار در کامپایل بررسی کنیم، کامپایلر در مقایسه با زبان های استاتیک باید بیشتر کار کند.
به همین دلیل میتوان گفت زبانهای استاتیک سریعتر در کامپایل هستند. در مقایسه با زبان های پویا
در این مقاله تفاوت زبان های پویا و استاتیک را توضیح داده ام. اگر سوالی دارید در کامنت بگذارید. خوشحال میشم بهشون جواب بدم