ما در این مقاله می خواهیم به موضوع انواع زبان های سطح بالا و سطح پایین برنامه نویسی بپردازیم و هر آنچه که نیاز است را بگوییم پس با ما همراه باشید. زبانهای برنامهنویسی به دو دسته انواع زبانهای سطح بالا و پایین تقسیم میشوند. هر نوع زبان برنامهنویسی برای مقاصد خاصی طراحی شده است. به عنوان مثال، زبان برنامه نویسی c#که زبانی سطح بالاست، کاربردهای تجاری در مقیاس وسیع دارد. یادگیری تفاوت برنامه نویسی سطح بالا و پایین یک گام مهم برای درک کارکردهای هر یک از زبانهای برنامهنویسی به حساب میآید.
زبان های برنامه نویسی مجموعه ای از دستورالعمل ها را برای CPU (واحد پردازش مرکزی) برای انجام هر کار خاص تعریف و گردآوری میکنند. هر زبان برنامه نویسی دارای مجموعه ای از کلمات کلیدی همراه با نحو است که از آنها برای ایجاد دستورالعمل استفاده میکند.
تا کنون هزاران زبان برنامه نویسی شکل گرفته اند. همه آنها اهداف خاص خود را دارند. همه این زبان ها از نظر سطح انتزاعی که همه آنها از سخت افزار ارائه میدهند، دارای تنوع هستند. تعداد کمی از این زبان ها انتزاع کمتری ارائه میدهند یا اصلاً انتزاع ندارند، در حالی که بقیه انتزاع بسیار بالایی ارائه میدهند. بر اساس این سطح از انتزاع، دو نوع زبان برنامه نویسی وجود دارد:
. زبان سطح پایین
. زبان سطح بالا
تفاوت اصلی بین زبان های سطح پایین و سطح بالا این است که هر برنامه نویسی می تواند یک زبان سطح بالا را در مقایسه با ماشین درک، کامپایل و تفسیر کند. از سوی دیگر، ماشینها در مقایسه با انسانها قادر به درک زبان سطح پایینتر هستند.
زبان های سطح بالا چیست؟
در علوم کامپیوتر، یک زبان برنامه نویسی سطح بالا، یک زبان برنامه نویسی با انتزاع قوی از جزئیات کامپیوتر است. برخلاف زبانهای برنامهنویسی سطح پایین، ممکن است از عناصر زبان طبیعی استفاده کند، استفاده از آن آسانتر باشد، یا ممکن است بخشهای قابل توجهی از سیستمهای محاسباتی (مانند مدیریت حافظه) را خودکار کند (یا حتی کاملاً پنهان کند) و فرآیند توسعه یک برنامه را سادهتر کند و قابل درک تر از استفاده از زبان سطح پایین تر. مقدار انتزاع ارائه شده مشخص می کند که یک زبان برنامه نویسی چقدر “سطح بالا” است.
اولین زبان برنامه نویسی سطح بالا که برای کامپیوترها طراحی شد Plankalkül بود که توسط Konrad Zuse ایجاد شد. با این حال، در زمان او اجرا نشد و مشارکت های اولیه او به دلیل جنگ جهانی دوم، جدا از تأثیر این زبان بر زبان “Superplan” توسط هاینز روتیشاوزر و همچنین تا حدی ALGOL، تا حد زیادی از پیشرفت های دیگر جدا شد.
“زبان سطح بالا” به سطح بالاتر انتزاع از زبان ماشین اشاره دارد. زبانهای سطح بالا بهجای پرداختن به ثباتها، آدرسهای حافظه و پشتههای فراخوانی، با متغیرها، آرایهها، اشیاء، عبارات پیچیده حسابی یا بولی، زیر روالها و توابع، حلقهها، رشتهها، قفلها و سایر مفاهیم انتزاعی علوم رایانه سر و کار دارند. تمرکز بر قابلیت استفاده بیش از بازده برنامه بهینه. بر خلاف زبانهای اسمبلی سطح پایین، زبانهای سطح بالا دارای عناصر زبانی کمی هستند که مستقیماً به کدهای اولیه ماشین ترجمه میشوند.
زبانهای سطح بالا قصد دارند ویژگیهایی را ارائه دهند که وظایف رایج را استاندارد میکند، اشکال زدایی غنی را امکانپذیر میسازد، و اگنوستیک معماری را حفظ میکند. در حالی که زبان های سطح پایین اغلب کد کارآمدتری را از طریق بهینه سازی برای یک معماری سیستم خاص تولید می کنند. جریمه انتزاعی هزینه ای است که تکنیک های برنامه نویسی سطح بالا به دلیل ناتوانی در بهینه سازی عملکرد یا استفاده از سخت افزار خاص به دلیل عدم استفاده از برخی منابع معماری سطح پایین پرداخت می کنند.
زبان های سطح پایین چیست؟
یک زبان برنامه نویسی سطح پایین زبان برنامه نویسی است که انتزاعی کمی از معماری مجموعه دستورات رایانه ارائه می دهد – دستورات یا عملکردهایی در نقشه زبان که از نظر ساختاری مشابه دستورالعمل های پردازنده هستند. به طور کلی، این به کد ماشین یا زبان اسمبلی اشاره دارد. به دلیل انتزاع کم (از این رو کلمه) بین زبان و زبان ماشین، زبان های سطح پایین گاهی اوقات به عنوان “نزدیک به سخت افزار” توصیف می شوند. برنامههایی که به زبانهای سطح پایین نوشته میشوند، به دلیل بهینهسازی برای نوع خاصی از معماری سیستم، نسبتاً غیرقابل حمل هستند.
زبانهای سطح پایین میتوانند بدون کامپایلر یا مفسر به کد ماشین تبدیل شوند – زبانهای برنامهنویسی نسل دوم از پردازنده سادهتری به نام اسمبلر استفاده میکنند و کد حاصل مستقیماً روی پردازنده اجرا میشود. برنامه ای که به زبان سطح پایین نوشته شده است را می توان بسیار سریع اجرا کرد و حافظه کمی دارد. یک برنامه معادل در یک زبان سطح بالا می تواند کارایی کمتری داشته باشد و از حافظه بیشتری استفاده کند.
زبان سطح پایین مزایای زیادی دارد. این یک کد ساده و بسیار سازگار است، با دستورالعمل های مستقیم که به راحتی قابل تبدیل است و گویی این کافی نیست، با سرعت بالایی اجرا می شود.
از سوی دیگر، زبان سطح پایین معایبی نیز دارد. به عنوان مثال، این زبان بسیار نزدیک به سخت افزار است، که ساختار برخی از برنامه ها را سخت تر می کند. هنگام استفاده از آن باید بسیار مراقب باشید تا از اشتباهاتی که می تواند کار و تجدید نظر کد را به میزان قابل توجهی افزایش دهد، جلوگیری کنید.
تفاوت بین زبان های سطح بالا و سطح پایین
زبان بهترین راه ارتباطی است و از آن برای به اشتراک گذاشتن ایده ها و نظرات استفاده می شود. به طور مشابه، یک زبان برنامه نویسی یک زبان کامپیوتری است که توسط برنامه نویس یا توسعه دهندگان برای برقراری ارتباط با رایانه های خود استفاده می شود. زبان برنامه نویسی مجموعه ای از دستورالعمل های نوشته شده است که برای انجام برخی وظایف خاص استفاده می شود. تعداد کمی از زبان های برنامه نویسی C، C++، Java، Python و غیره هستند.
این زبان های برنامه نویسی عمدتاً برای توسعه برنامه های دسکتاپ، وب سایت ها، برنامه های کاربردی تلفن همراه و غیره استفاده می شوند. تفاوت عمده بین انواع زبان های سطح بالاوسطح پایین این است که دانش سخت افزاری مورد نیاز است.
کد ماشین تنها زبانی است که یک کامپیوتر می تواند مستقیماً بدون تغییر قبلی پردازش کند. در حال حاضر، برنامه نویسان تقریباً هرگز برنامه ها را مستقیماً در کد ماشین نمی نویسند، زیرا نیاز به توجه به جزئیات زیادی دارد که یک زبان سطح بالا به طور خودکار آنها را مدیریت می کند. علاوه بر این، به حفظ کردن یا جستجوی کدهای عددی برای هر دستورالعمل نیاز دارد و تغییر آن بسیار دشوار است.
۱-قابل درک بودن زبان برنامه نویسی سطح بالا به دلیل زبان نزدیک به زبان انسان.
۲-در زبان برنامهنویسی سطح پایین نیاز به دانش خاص پایه کامپیوتر احساس میشود حال آنکه در زبان برنامهنویسی سطح بالا اینگونه نیست.
۳-قابل حمل بودن و انتقال برنامه در زبان برنامهنویسی سطح بالا و در مقابل قابل انتقال نبودن برنامه نوشته شده در زبان برنامه نویسی سطح پایین.
۴-سرعت بالا در زبان برنامه نویسی سطح پایین در مقابل با سرعت کمتر در زبان برنامهنویسی سطح بالا.
۵-استفاده از حافظه کمتر در زبان برنامهنویسی سطح پایین و در مقابل نیاز به حافظه بیشتر در زبان برنامهنویسی سطح بالا.
ویژگی های زبان سطح بالا
۱. می توان به راحتی این زبان ها را در مقایسه با زبان های سطح پایین تفسیر و ترکیب کرد.
۲. درک آنها بسیار آسان است.
۳. چنین زبان هایی برنامه نویس پسند هستند.
۴. اشکال زدایی خیلی سخت نیست.
۵. آنها با نگهداری آسان عرضه می شوند و بنابراین ساده و قابل مدیریت هستند.
۶. به راحتی می توان آنها را روی پلتفرم های مختلف اجرا کرد.
۷. آنها به یک کامپایلر/مفسر برای ترجمه به کد ماشین نیاز دارند.
۸. کاربر می تواند آنها را از یک مکان به مکان دیگر منتقل کند.
۹. چنین زبان هایی از بازده حافظه پایینی برخوردار هستند. بنابراین نسبت به زبان های سطح پایین، حافظه بیشتری مصرف می کند.
۱۰. آنها در زمان های امروزی بسیار مورد استفاده و محبوب هستند.
۱۱. جاوا، سی، سی پلاس پلاس، پایتون و غیره چند نمونه از زبان های سطح بالا هستند.
ویژگی های زبان سطح پایین
۱. به آنها زبان های سطح ماشین نیز می گویند.
۲. ماشین ها به راحتی می توانند آن را درک کنند.
۳. زبان های سطح بالا بسیار ماشین پسند هستند.
۴. اشکال زدایی آنها بسیار دشوار است.
۵. درک آنها خیلی آسان نیست.
۶. همه زبان ها با تعمیر و نگهداری پیچیده ارائه می شوند.
۷. قابل حمل نیستند.
۸. این زبان ها به ماشین ها بستگی دارند. بنابراین، می توان آن را بر روی پلتفرم های مختلف اجرا کرد.
۹. آنها همیشه به اسمبلرها برای ترجمه دستورالعمل ها نیاز دارند.
۱۰. زبان های سطح پایین در دوران امروزی کاربرد چندان گسترده ای ندارند.
۱۱.برنامه نویسی سطح پایین در زبان های سطح بالا
سخن پایانی
در اواخر دهه ۱۹۶۰، زبان های سطح بالا مانند PL/S، BLISS، BCPL، ALGOL توسعه یافته (برای سیستم های بزرگ باروز) و C شامل درجاتی از دسترسی به توابع برنامه نویسی سطح پایین بودند. یک روش برای این کار اسمبلی Inline است که در آن کد اسمبلی در زبان سطح بالایی که از این ویژگی پشتیبانی می کند تعبیه شده است. برخی از این زبانها همچنین به دستورالعملهای بهینهسازی کامپایلر وابسته به معماری اجازه میدهند تا نحوه استفاده کامپایلر از معماری پردازنده هدف را تنظیم کنند.
به طور کلی می توان گفت که با شناسایی زبان های سطح بالا و سطح پایین استفاده از کاربرد آن ها کمک زیادی در یادگیری زبان های برنامه نویسی می کند.
منبع : www.cs.mtsu.edu
سلام
مطلب خوبی بود
فقط اینکه عبارت زبان های سطح پایین به این معنی هست که این زبان نسبت به زبان برنامه نویسی سطح بالا ارزش کمتری داره؟
ممنون میشم راهنماییم کنید
سلام Daniel جان
متشکرم از لطفت
ببین عبارت سطح پایین به این معنی نیست که این زبان نسبت به زبان برنامهنویسی سطح بالا ارزش کمتری داره بلکه به معنای عدم وجود انتزاع بین این زبان و ساختار ریزپردازنده هست از این جهت گاهی به این زبانها نزدیک به سختافزار هم میگن.