زبان های سطح بالا
این دسته از زبانها به زبان انسانی نزدیک تر بوده و در طراحی اونها سعی شده تا بر اساس یک سری قوانین ساده زبان انسانی رو به زبان ماشین ترجمه کنند. مثلا اگر در یک زبان متغیر ها به این صورت تعریف شوند
Int32 myVar;
کامپایلر (مترجم زبان) این خط از برنامه را به EQU myVar 0x2F ترجمه میکند و برای این متغیر در جافظه های 16 بیتی دو خانه تعلق می دهد. البته حافظه های کامپیوتر ها امروزی 32 یا 64 بیت هستند که نسبت به اندازه آنها کامپایلر فضای مخصوص را برای متغیر حفظ می کند. البته در سیستم عامل های امروزی ادرس های ذخیره شده به صورت داینامیک هستند و سیستم عامل مکان اصلی متغیر را تعریف میکند.
زبانهای سطح بالا به دسته های متفاوتی دارند که دسته استراکچرال و ابجکت ارینتد از دسته های پر کاربرد به شمار می ایند البته برای پروژه های بزرگ دیگر از این دسته بندی ها کمتر استفاده می شود اما برای شروع و برنامه های ساده این زبانها ترجیح بیشتری دارند
1- استراکچرال Structural -
این دسته از برنامه ها به روش خطی اجرا می شوند و اولویت اجرا دستور نسبت به مکان ان تعیین می شود. زبانهای C, Qbasic و غیره از جمله این برنامه ها هستند. در این دسته از برنامه ها معمولا متغیر ها 4 مشخصه در خود ذخیره میکنند.
· نوع متغیر
· اندازه متغیر
· اسم متغیر
· ادرس متغیر
به عنوان مثال
Float myVar = 0.5;
نوع متغیر فلوت هستش که شامل اعداد اعشاری می شوند
معمولا برای این متغیر ها فضایی معادل 128 بیت تعلق میگیرد
اسم متغیر myVar است
ادرس متغیر نیز بر اساس تنظیم حافظه سیستم عامل به صورت خودکار تعیین می شود
در این دسته از برنامه ها متغیر به مانند یک اشاره گر عمل می کند که به یک سری از خانه های حافظه (رم) اشاره میکند. پس عمل = مقدار تعیین شده را در حافظه قرار می دهد
2- ابجکت ارینتد Object Oriented (OO) –
زبانهایی مثل جاوا و خانواده دات نت(.NET) مثل VB.Net یا C# و یا غیره از جمله این برنامه ها هستند. در این زبانها هرچند ممکن است متغیر ها به یک صورت تعریف شوند اما دامنه استفاده انها بسیار وسیع تر گردیده. دیگر متغیر ها به عنوان یک اشاره گر عمل نمی کنند و به طور عمومی نمی توان گفت که هر متغیر چند ویژگی در خود ذخیره میکند. مانند یک خانواده که پسر از پدر یک سری ویژگی به ارث میبرد متغیر ها نیز ممکن است از کلاس پدر ویژگی هایی به ارث ببرد. به عنوان مثال در یک زبان استراکچرال برای تبدیل استرینگ ( رشته جروف) به عدد نیاز داریم عملیاتهای زیادی انجام دهیم اما در زبانهای ابجکت ارینتد تنها با صدا کردن کلاس پارس (پارس عملیات تبدیل یک نوع متغیر به نوع دیگر میگویند) و سپس کلاس فرزند مثلا فلوت و در اتها صدا کردن وریبل یک وریبل را از یک نوع به نوع دیگر می توان تبدیل کرد.
String myStr = new String(“12.23f”);
Float myFloat;
Char myChr;
myFloat = myStr.parsToFloat();
myChr = myStr.charAt(0);
همانگونه که میبینیدی یک وریبل می تواند اعمال متفاوتی را انجام دهد در برنامه بالا ابتدا یک متغیر از نوی استرینگ تعریف کردیم و بعد دو متغیر دیگر از نوع فلوت و کاراکتر. و در انتها مقدار عددی استرینگ را در متغیر فلوت قرار دادیم و اولین کاراکتر استرینگ را در متغیر کاراکتر.