برنامه رایانهای
برنامهٔ رایانهای (به انگلیسی: Computer Program) مجموعهای از الگوریتم یا دستورالعملها است که رایانه برای انجام یک کار مشخّص آن را اجرا میکند. رایانه برای انجام کارهایش به برنامهها نیاز دارد و معمولاً هر برنامه را در یک واحد پردازش مرکزی اجرا میکند.
معمولاً برنامههای رایانهای توسط یک برنامهنویس و تحت یک زبان برنامهنویسی نوشته میشوند. به مجموعهای از برنامهها، کتابخانهها (ماژول) و دادههای مرتبط با آنها نرمافزار میگویند. مجموعهٔ کارهایی که برنامه انجام میدهد، الگوریتم نامیده میشود.
تولید برنامه
به فرایند نوشتن و ویرایش کد منبع، برنامهنویسی گفته میشود. گاهی به فرایند طولانی مدّت برنامهنویسی، توسعه نرمافزار گفته میشود. انجام این کار در چارچوب اصول مهندسی، مهندسی نرمافزار نامیده شدهاست.
میتوان برنامهها را با توجّه به نوع زبان برنامهنویسی دستهبندی کرد. این دستهبندی میتواند بر اساس ویژگیهای زبان یا نحوهٔ اجرا باشد.
ویژگیهای زبان
کلّیترین دستهبندی زبانهای برنامهنویسی، آنها را به دو دستهٔ سطح بالا و سطح پایین تقسیم میکند. زبانهای سطح بالا مستقل از پلتفرم هستند و در آنها میتوان از کلیدواژههای انگلیسی برای نوشتن برنامه استفاده کرد. به عبارت دیگر این زبانها به توصیف مسائل به زبان انسان متمرکز هستند. در نقطهٔ مقابل زبانهای سطح پایین مستقیماً به دستورهای پردازنده دسترسی دارند.
زبانهای سطح بالا به دو دستهٔ دستوری و اعلانی تقسیم میشوند.
در زبانهای دستوری، برای اجرای یک الگوریتم از تعریفها، عبارتها و جملهها استفاده میشود.
- یک تعریف، نوع دادهٔ یک متغیّر را مشخّص میکند؛ مثلاً
;int x
- یک عبارت یک مقدار را مشخّص میکند؛ مثلاً
y + 2
- یک جمله مقدار یک عبارت را به یک متغیّر نسبت میدهد یا از یک متغیّر برای تغییر جریان کنترل برنامه استفاده میکند؛ مثلاً
;z = pow(2,5)
زبانهای اعلانی، بیشتر از نحوهٔ انجام کار بر کاری که باید انجام شود تمرکز دارند. این رویکرد باعث میشود امکان تغییردادن نواحی بیرونی به یک تابع یا عبارت دادهنشود و در نتیجه از بروز اثرات جانبی جلوگیری شود. این زبانها به سه دستهٔ اصلی تابعی، منطقی و پرسمانی تقسیم میشوند.
نحوهٔ اجرای برنامه
قسمتی از برنامه که برای انسان قابل درک است کد منبع و قسمتی که برای رایانه مستقیماً قابل اجرا است، کد ماشین نامیده میشود. وظیفهٔ تبدیل کد منبع به کد ماشین به عهدهٔ کامپایلر، مفسّر یا اسمبلر است.
تقسیمبندی عملکردی
میتوان برنامهها را با توجّه به عملکرد به دو دستهٔ اصلی تقسیم کرد:
نرمافزارهای کاربردی برای انجام یک کار مشخّص برای کاربر طرّاحی میشوند. این برنامهها بهطور مستقیم با کاربر سر و کار دارند و دارای رابط کاربری هستند. مانند نرمافزارهای واژهپرداز، صفحهگستردهها، نرمافزارهای ارتباطی، بازیهای ویدئویی و غیره.
نرمافزارهای سیستمی برای سرویسدادن به سایر نرمافزارها طرّاحی میشوند. این برنامهها عمدتاً با سختافزار در تعامل هستند و با کاربر بهطور مستقیم ارتباطی ندارند. مانند سیستم عامل، درایور، نرمافزارهای جاسازیشده، موتورهای گرافیکی و غیره. بخشهایی از سیستمعامل که دارای رابط کاربری هستند بهعنوان نرمافزار کاربردی انگاشته میشوند.
منابع
- ↑ Paul Deitel, Harvey Deitel (2017). C++ How to Program (10 ed.). Pearson. ISBN 978-0-13-444823-7.
- ↑ https://www.slideshare.net/ProjectStudent/classification-of-programming-languages