TGViewer
HPC Nerds | High Performance and Scientific Computing HPC Nerds | High Performance and Scientific Computing @hpcnerds · 243 subscribers
Post #33 436
زبان C++ چطور توسعه پیدا میکنه؟

هر تغییری که قراره در C++ انجام بشه باید ابتدا در استاندارد این زبان تصویب و اضافه بشه. استاندارد زبان C++ قواعد و ویژگی های این زبان رو توصیف می‌کنه و کلا نقش قانونگذاری داره. مثلاً میگه که باید یه ساختمان داده به نام vector با فلان مشخصات وجود داشته باشه اما پیاده سازی مواردی که توصیف شده در استاندارد نمیاد.

پس اگه ما بخواهیم یه کتابخانه به C++ اضافه کنیم باید یک پروپوزال بنویسیم که پیشنهادات ما رو خیلی دقیق توصیف کنه. مثلاً این پروپوزال که اخیرا تحت بررسی کمیته استاندارد سازی هست، موضوعش اضافه کردن یک کتابخانه برای کار با گراف ها در C++ هست

🔴 P1709R5 | Graph Library
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p1709r5.pdf

این پروپوزال توسط 8 نفر پیشنهاد شده و چند سالی هست که تحت بررسی قرار گرفته و الان ویرایش پنجم داره نقد میشه. کمیته برای بررسی هر نوع پروپوزال یک زیر گروه مخصوص داره مثلاً پروپوزال بالا عمدتا توسط زیرگروه SG6 یا گروه مطالعاتی Numeric مورد نقد قرار میگیره. در کل پروپوزال های مربوط به محاسبات عددی میاد زیر دست اینا. کمیته استانداردسازی بسیار سخت گیره و تصویب یک پروپوزال به راحتی چندین سال طول می‌کشه و به عنوان نویسنده خیلی نرماله که قبل از تصویب پروپوزال بمیریم 😐. در طول این مدت پیشنهاد دهندگان پروپوزال میتونن پیاده سازی های غیر رسمی هم از کتابخانه ای که مطرح کردن، منتشر کنند تا با بازخوردی که از کاربرها و کمیته استاندارد سازی میگیرن کارشون رو بهبود بدن.

نهایتا وقتی تصویب شد کمیته اعلام می‌کنه که مثلاً از نسخه C++26 که سال 2026 منتشر میشه ، این پروپوزال دیگه رسما جزیی از زبان C++ هست . حالا پیاده سازی وظیفه توسعه دهنده های کامپایلر C++ هست که بهترین ها در نوع خودشون هستن. مثلاً وقتی  کامپایلر GCC میگه ما در نسخه بعدی تمام ویژگی های C++26 رو پشتیبانی میکنیم، شامل تمام پروپوزال هایی که برای اون نسخه تصویب شدن هم میشه. البته معمولا هر کامپایلر ممکنه قابلیت هایی اضاف بر استاندارد هم پیاده سازی کنه که در اینصورت در مستندات گفته چه مواردی خارج از استاندارده.

اگه کنجکاوید میتونید لیست اعضای کمیته استاندارد سازی رو اینجا ببینید
https://isocpp.org/wiki/faq/wg21

@hpcnerds
  • 👍 3
  • ❤ 1
More from @hpcnerds
  1. Jun 10, 2024قراره یک ورکشاپ یک روزه در مورد کاربرد های Julia در HPC توسط Oak Ridge National Laboratory…
  2. Jun 6, 2024این تیکه کد رو ببینید، وقتی اجرا بشه 7 تا عمل ضرب انجام میده: x = x*x*x*x*x*x*x*x; به صورت…
  3. Jun 1, 2024قبلا در مورد BLAS گفتم یکی از تکنیک هایی که پیاده سازی های سریع ازش استفاده قابل توجهی کرد…
  4. May 31, 2024در ایران برای دسترسی به سرور های محاسبات سنگین چه گزینه هایی داریم؟ فرض کنید که یک پروژه د…
  5. May 31, 2024چند سالی میشه که Intel داره روی یک مجموعه ابزار مخصوص HPC کار میکنه به نام oneAPI . بعضی ا…
  6. May 30, 2024برای سال ها محبوب ترین استاندارد برای انجام محاسبات توزیع شده MPI بوده. یکی از پروژه های ک…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →