برنامه سازی سيستم چيست و حول چه مسائلی می گردد؟

برنامه سازی سیستم چیست؟

از ديد افراد مختلفی كه با كامپيوتر كار می كنند اين پرسش می تواند پاسخهای متفاوتی داشته باشد. برخی به هر برنامه به ديد يك “سيستم” نگاه مي كنند و برنامه سازی سيستم را فرآيند تبديل يك مسأله به يك برنامه ی قابل اجرا می دانند. برخي به نوشتن برنامه های خاص برای يك سيستم كامپيوتری خاص، برنامه سازی سيستم می گويند.

گرچه تعريف دوم تا حدی درست است، اما به طور دقيق تر از ديد ما، برنامه سازی سيستم دارای تعريف مشخص و معينی است.

برنامه سازی سيستم

برنامه سازی سيستم نوع خاصی از برنامه سازی است كه نيازمند اطلاع از جزئيات فنی سيستم مورد نظر و دسترسی و مديريت منابع سخت افزاری سيستم به صورت دلخواه است. اين نوع برنامه سازی عموماً برای نوشتن نرم افزارهای سيستمی مورد استفاده قرار می گيرد.

برنامه سازی كاربردی در مقابل برنامه سازی سيستم

برنامه سازی كاربردی شامل مديريت و ارائه ی اطلاعات در قالب يك برنامه ی كامپيوتری بوده و نيازمند نگهداری اطلاعات در قالب ساختارهای داد های (نظير آرايه، ركورد و غيره) و پردازش آنها است.

الگوريتم های مورد استفاده در برنامه سازی كاربردی مستقل از سيستم بوده و برای اغلب كامپيوترها قابل تعريف هستند.

اما، روشی كه اطلاعات به برنامه منتقل می شود و طريقی كه اطلاعات نمايش داده می شوند يا چاپ مي شوند، وابسته به سيستم است.

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

از دهه‌ی گذشته مرز بین زبان‌های اسکریپت‌نویسی و زبان‌های برنامه‌نویسی سیستمی در حال محو شدن است. شرکت‌هایی مثل Dropbox توانستند سیستم‌های مقیاس‌پذیر و بزرگی را روی پایتون توسعه دهند. از جاوا اسکریپت برای تبدیل UI-های پیچیده و بلادرنگ (Real-Time) در میلیاردها صفحه‌ی وب استفاده شده است. طبقه‌بندی تدریجی در پایتون، جاوا اسکریپت و دیگر زبان‌های اسکریپت‌نویسی شدت پیدا کرد و به این صورت گذار از کد اولیه به کد تولیدتنها با اضافه کردن اطلاعات نوع ایستا امکان‌پذیر شد. با توجه به تعاریف بین برنامه سازی سیستم و مهندسی نرم افزار تقریبا هیچ فرقی وجود ندارد.

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