تکامل سخت افزار کامپیوتر تحت تاثیر زبان های برنامه نویسی در طول تاریخ? یا برعکس?

  • 2022-08-7

طراحی یک سیستم کامپیوتری یک معاوضه بین سخت افزار کامپیوتر هزینه عملکرد از یک سو و قابلیت های برنامه نویسی در دسترس از سوی دیگر است. این تجارت کردن در تاثیر متقابل بین طراحی سخت افزار کامپیوتر و زبان های برنامه نویسی و تکنیک های منعکس شده است.

به طور کلی روند تکامل سختافزار هرگز اثرات مستقیمی بر تکامل زبان برنامهنویسی ندارد. طراحی سخت افزار و طراحی زبان برنامه نویسی هرگز روش های ترکیبی یا همکاری نکرده اند. این یک مشاهدات رایج است که با بهبود نسبت هزینه و عملکرد سخت افزار کامپیوتر, زبان های برنامه نویسی پیچیده تر و کارایی کمتری دارند.

اما این روند تکامل سخت افزاری نیست که بر پیچیدگی و کارایی زبان های برنامه نویسی تاثیر می گذارد. زبان های برنامه نویسی در طبیعت خود را در حال توسعه به پیچیده تر مطابق با رشد پیچیدگی مشکل ما تمایل به مقابله با هستند. همچنین, طراحان زبان برنامه نویسی باید به قربانی بهره وری از زبان های برنامه نویسی برای خوانایی بهتر برنامه, پیمانهای, و قابلیت استفاده مجدد.

چیزی که می توانیم بگوییم این است که با کاهش هزینه و افزایش سرعت نرم افزارهای سخت افزاری ما به سادگی می توانیم زبان برنامه نویسی را پیچیده تر کنیم و زبان برنامه نویسی را تحمل کنیم تا کارایی کمتری داشته باشد.

همچنین, این است که بهره وری کد به عنوان مهم نیست موضوع هر بیشتر. کارایی همیشه باید دغدغه اصلی طراحان زبان برنامه نویسی باشد. اولین, اندازه و پیچیدگی از مشکلات ما می خواهم برای مقابله با رشد سریع تر از توسعه فناوری های سخت افزاری, بنابراین ما به نظر می رسد هرگز قدرت محاسباتی به اندازه کافی به "زباله". دوم, در هر زمان, استفاده بهینه از امکانات محاسباتی می تواند بهره وری بهتر عملکرد.

ج مجموعه دستورالعمل

نگرانی اصلی طراح سخت افزار مربوط به عملکردی است که در اختیار کاربر برنامه نویسی و کامپایلر زبان برنامه نویسی قرار می گیرد. این قابلیت به طور مستقیم توسط انتخاب یک دستورالعمل برای کامپیوتر تحت تاثیر قرار می گیرد. یکی از عوامل تعیین کننده بهره وری مجموعه دستورالعمل سودمندی خود را به ژنراتور کد کامپایلر و پیاده سازی سخت افزار در نظر گرفتن است. اگرچه تفاوت های عملکرد واقعی در کارایی مجموعه دستورالعمل ها اندک است اما این تفاوت ها هنوز علاقه طراحان سخت افزار را برانگیخته است. در دهه گذشته بحث های مداوم در مورد مزایای هزینه-عملکرد مجموعه دستورالعمل های ریسک نسبت به مجموعه دستورالعمل های قبلی با عنوان سیسک وجود داشته است. همچنین مسایل صرفا انتخاب دستورالعملهای جدید و پیامدهای موجود نیستند بلکه موضوعات ظریفتری مانند سازگاری با مجموعههای دستورالعملهای قدیمی دیگر در زمینه برنامههای جدید مفید نیستند بلکه قابلیتشان برای اجرای برنامههای قدیمی باید در دسترس باشد. با این حال ریسک به طور مستقیم بر زبان برنامه نویسی تاثیر نمی گذارد اما زندگی طراح کامپایلر را ساده تر می کند.

ج طراحی عملیاتی در مدیریت حافظه مجازی

در طول روزهای اولیه از کامپیوتر, سخت افزار بسیار گران قیمت بود و منابع سیستم در دسترس به برنامه نویسان نسبتا محدود بود, به خصوص در مدت حافظه اصلی. در برخی از نسخههای اولیه برنامهنویسان مجبور بودند از کلمات کلیدی مانند دور و نزدیک برای تشخیص نشانگرها به نشانی حافظه درون بخشی از اشاره گرها به نشانی حافظه فراتر از سگمنت استفاده کنند. این یک بار بزرگ برای برنامه نویسان بود. تقاضای دسترسی شفاف به فضاهای حافظه قابل برنامه ریزی بزرگ الهام بخش طراحی مدیریت حافظه مجازی بود که دستاورد قابل توجهی از طراحان سخت افزار و نرم افزار بود. این توانایی سخت افزار برای ارجاع به فضاهای نشانی بسیار بزرگ موجود در دیسک به روشی که برای کاربر شفاف باشد باعث می شود ترکیبی از برنامه های نرم افزاری بسیار بزرگ در یک بستر پردازنده در دسترس باشد و عرصه خلاقیت فراوانی را در اختیار برنامه نویسان قرار دهد.

تلاش برای متحد کردن محیط محاسبات

با کاهش سریع هزینه و افزایش عملکرد سخت افزار کامپیوتر, هزینه توسعه نرم افزار بخش قابل توجهی از هزینه سیستم های کامپیوتری شد. بنابراین بهره وری برنامه نویسی به موضوعی مهم تر تبدیل می شود که منجر به ایده به اشتراک گذاری برنامه ها در سیستم عامل های مختلف سخت افزاری برای صرفه جویی در وقت و هزینه در توسعه برنامه می شود. انگیزه اولیه به طراحی خانواده های سازگار ماشین هایی مانند سیستم 360 ای بی ام اس تعلق گرفت که بسیاری از نکات طراحی هزینه-عملکرد را در اختیار همه قرار می داد که یک مجموعه دستورالعمل مشترک را به اشتراک می گذاشتند. از نرم افزار سازگار در تمام پیاده سازی شد, این فوق العاده بهبود دسترسی کاربران به برنامه های به اشتراک گذاشته. با این حال, ماهیت تکامل از کامپیوتر تمایل به نفع همکاری موجود و رقابت در میان سیستم عامل های سخت افزاری همه کاره و غیر عملی است که همه از این سیستم عامل را می توان یکپارچه. با توسعه اینترنت و محاسبات وب, به اشتراک گذاری برنامه ها در سیستم عامل های ناهمگن, ایجاد یک محیط برنامه نویسی و محاسبات یکپارچه در سراسر شبکه جهانی وب اساسا ناهمگن به موضوعات مهمی تبدیل می شود, که منجر به رونق زبان های برنامه نویسی کاملا جدید مانند جاوا می شود. جاوا ممکن است در نوع برنامه نویسی متمایز نباشد اما قطعا در اجرای برنامه های خود بر روی سیستم عامل های سخت افزاری مختلف موجود در حال حاضر متمایز است یا حتی ممکن است در حال حاضر وجود نداشته باشد. روند احتمالی دیگر محبوبیت زبان اسکریپت در اینترنت است. زبان های اسکریپت مانند جاوا اسکریپت و پرل دارای قابلیت های برنامه نویسی ساده و اصلاح و نگهداری هستند. با در دسترس بودن امکانات محاسباتی بیشتر و قوی تر, زبان اسکریپت اجرا شده توسط مترجم ممکن است عملی دوباره.

خوانایی, قابلیت استفاده مجدد, و ساختار برنامه

به طور کلی, با بهبود چشمگیر سخت افزار کامپیوتر در مورد هزینه-عملکرد, زبان های برنامه نویسی پیچیده تر و کارایی کمتری دارند. از هزینه عملکرد نسبت سخت افزار کامپیوتر تمایل به حفظ روند خود را از بهبود سریع, طراح زبان برنامه نویسی نیز ممکن است امکان استفاده از این برای طراحی زبان برنامه نویسی با بهره وری کمی کمتر اما خوانایی خوب, قابلیت استفاده مجدد, و ساختار برنامه. با این حال, هنوز هم باید در ذهن توسط طراحان زبان نگه داشته شود که سادگی و بهره وری همیشه نگرانی های اصلی به دلیل بزرگی اندازه و پیچیدگی از وظایف ما تمایل به مقابله با در حال رشد است سریع تر از مقرون به صرفه بودن کامپیوتر.

زبانهای برنامه نویسی توزیع شده و موازی

یکی دیگر از پیشرفت های معماری که خواستار ابداع زبان برنامه نویسی است محاسبات موازی و توزیع شده است که به دلیل کاهش هزینه سخت افزار و توسعه سریع شبکه کامپیوتری عملی تر می شود. زبان های برنامه نویسی جدیدی که می توانند از این نوع فعالیت های محاسباتی پشتیبانی کنند تقاضای زیادی دارند. در حال حاضر دو رویکرد برای این موضوع ویژه وجود دارد. یکی این است که زبانهای برنامه نویسی محبوب در حال حاضر موجود مانند سی و فرترن را تطبیق داده و به کتابخانه ویژه مجهز کنید. نتایج زبان های برنامه نویسی موازی و توزیع شده مانند سی سی++, کامپیوتر++, و اچ پی اف (فرترن با کارایی بالا). رویکرد دیگر طراحی زبان مفهومی جدید است که از اصل اساسی محاسبات موازی و توزیع شده بهره برداری می کند. نتایج زبان های برنامه نویسی مانند لیندا هستند.

[1] مایکل جی فلین. مقدمه ای بر"تاثیر تکنیک های برنامه نویسی در طراحی رایانه ها". جلد 467 - 469 جلد. 85, شماره 3, مارس 1997.

[2] ج. ا. هور. نکاتی در مورد طراحی زبان برنامه نویسی. واسرمن, ویرایشگر, طراحی زبان برنامه نویسی, صص 43 - 52, اینترنت اکسپلورر, اکتبر. 1980.

  • نویسنده : حسین ابراهیمی الوند
  • منبع : joinilluminati-society.online
  • بدون دیدگاه

برچسب ها

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.