به نام خدا



کامپیوتر کوانتومی و ادغام زبانهای سطح بالا و سطح پایین



من در این وبلاگ و سایر وبلاگهایم مدام در حال مبارزه با زبانهای برنامه نویسی سطح بالا بودم و مرتبا از زبانهای سطح پایین ( ماشین و اسمبلی) تبلیغ می کردم زیرا به اصالت و ریشه دار بودن زبان ، اهمیت می دادم و معتقد بودم که زبانهای سطح پایین برای تمام اهداف و مقاصد ، کاملا کافی و کاربردی هستند . 



اما حالا که از گوشه و کنار فضای مجازی ، اخبار مربوط به ساخته شدن اولین کامپیوترهای کوانتومی تجاری ، به گوش می رسد و شرکتهای آی بی ام و گوگل و یکی دو شرکت چینی موفق به ساخت اولین کامپیوترهای کوانتومی شده اند ، تصمیم گرفته ام استراتژی ام را عوض کنم و بجای کوبیدن زبانهای سطح بالا و غیرت داشتن روی زبانهای سطح پایین ، یک ایده بدهم :


این ایده می گوید که برای آزمایش کارایی زبانهای سطح پایین یعنی  ماشین و اسمبلی خصوصا در بحث بیتهای 0 و 1 ، بر روی کامپیوتر کوانتومی که در یک لحظه ی واحد ، علاوه بر 0 و 1 ، حالت ترکیبی از 0 و 1 را نیز بکار می برد ، لازمست که بصورت تئوری تصور کنیم که کامپیوترهای کوانتومی در سطح بسیار وسیعی ساخته شده و در تمام کشورها به کار می روند و حتی مردم عادی نیز می توانند که در کنار کامپیوتر کلاسیک و باینری ( 0 و 1 ) ، حالا از کامپیوتر کوانتومی ( 0 و 1 و ترکیبی از 0 و 1 در یک زمان واحد ) ، نیز استفاده کنند . 


اینجا اهمیت زبان ماشین بعنوان زبان 0 و 1 ، صد برابر می شود . 


خیلی کنجکاو شده ام ببینم آیا در هنگام سر و کله زدن با میلیونها 0 و 1  در کامپیوتر کوانتومی ، چگونه می توانم با کمک زبان ماشین ، برای ویندوز برنامه بسازم ؟؟؟!!!


آیا چنین کاری ممکن است یا خیر ؟؟


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


من نیز تصمیم گرفتم یک آزمایش ذهنی انجام دهم :


فرض می کنم که من یک کامپیوتر کوانتومی دارم که در یک لحظه ی واحد،  هر سه حالت یعنی :  0 و 1 و ترکیبی از 0 و 1 را بر روی بیت های انفرادی اعمال می کند. 


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



من در حال تفکر هستم و دارم به این چالش فکر می کنم . 


سوال اساسی اینست که آیا کامپیوتر کوانتومی ، با زبانهای ماشین و اسمبلی امروزی ، سازگار است یا اینکه مجبوریم زبانهای اسمبلی و ماشین را از نو بسازیم ؟؟!!!!



مسلما کامپیوتر کوانتومی نیز  فقط زبان ماشین را می فهمد و زبانهای اسمبلی و سطح بالا این وسط فقط نقش واسطه را بازی می کنند . 



خب حالا زبان ماشین یک کامپیوتر کوانتومی به چه شکلی می تواند باشد ؟؟؟


1- 01010101


2- 11111111


3- 00000000


4- 01؟؟0؟100؟؟


من علامت ؟ را عمدا نوشتم زیرا دقیقا نمی دانم که کیوبیت که قرار است بجای بیت ، به دنیای دیجیتال وارد شود دقیقا چه تفاوتی با بیت دارد . 


هرکدام از این 0 ها و 1 ها  یک بیت یا کیوبیت  محسوب می شوند .


اما کامپیوتر کوانتومی ترکیبی از 0 و 1 و چیز دیگری است که هم 0 است و هم 1 است !!!!!


یعنی در هر کدام از خانه های حافظه که فعلا فقط یک بیت 0 یا یک بیت 1 را داریم ، در کامپیوتر کوانتومی علاوه بر 0 و 1 ، ترکیبی از این دو را نیز داریم که با عقل جور در نمی آید


 زیرا 0 یعنی خاموش و 1 یعنی روشن . 


حالا این کیوبیت دقیقا چه معنایی دارد ؟؟


هم روشن و هم خاموش ؟؟؟


هم درست و هم غلط ؟؟؟


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


پس ضرورتا  باید رجیسترهای پرچم و بطور کلی ، پردازنده ی کامپیوتر  از اول طراحی و ساخته شود . 



سوال : مگر می شود که یک لامپ برق ، در یک زمان واحد ، هم روشن باشد و هم خاموش باشد و هم ترکیبی از هردو حالت ؟؟؟


کامپیوتر نیز همچون لامپ است . 


0 یعنی غلط یعنی False و 1 یعنی درست یعنی True



سوال :


آیا کامپیوتر کوانتومی به حیات زبانهای ماشین و اسمبلی پایان می دهد و زبانهای سطح بالا تا ابد جای این دو زبان را خواهند گرفت ؟؟


آیا کامپیوترهای کوانتومی ، پردازنده های سطج بالا و اسمبلی سطح بالا دارند که خوانایی و قابلیت حمل دارد ؟؟؟!!!


آیا کامپیوترهای کوانتومی ، به جنگ بین زبانهای سطح پایین و زبانهای سطح بالا خاتمه می دهند و این دو گروه را با همدیگر ادغام می کنند ؟؟؟


دقیقا چه اتفاقی رخ می دهد و تکلیف برنامه نویسان چه می شود و برنامه ها به چه شکلی باید نوشته و تولید شوند ؟؟؟



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



دقیقا شبیه به ورزشهای رزمی ترکیبی که امروزه طرفداران بسیاری دارد ، شاید زبانهای برنامه نویسی ترکیبی نیز بتوانند در آینده طرفداران فراوانی برای خود دست و پا کنند !!



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


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


من قبلا ، اسمبلی سطح بالا را بعنوان راه حل نهایی ، معرفی کرده ام . 


بنظر می آید که اسمبلی سطح بالا این توانایی را داشته باشد که همزمان هم زبان ماشین باشد هم زبان اسمبلی و هم زبانهای سطح بالا ! 


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


این حرف اصلا به این معنا نیست که زبان اسمبلی در مقابل کامپیوتر کوانتومی ، رنگ می بازد و خودش را بازنشسته می کند !!


خیر . من کماکان معتقدم که زبان اسمبلی هنوز هم این قابلیت را دارد که همچون آب ، در هر ظرفی که ریخته شود شکل همان ظرف را در خود بگیرد . یعنی انعطاف پذیری . 




انعطاف پذیری ، مانع از جمود فکری شده و ذهن ما را باز می کند و بر قدرت و بصیرت ما می افزاید . 


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



صرف نظر از اینکه غولهای فناوری ، به زبان اسمبلی اهمیت بدهند یا ندهند ، من کار خودم را انجام می دهم و سعی می کنم در ذهن خودم ، زبان اسمبلی را با زبانهای سطح بالا ترکیب کنم تا ببینم آیا انقلابی بزرگ در دنیای کامپیوترها و محاسبات رخ می دهد یا خیر . 


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


1- طراحی کامپایلرهای جدید زبان اسمبلی برای سازگاری با کامپیوترهای کوانتومی 


2- ادغام زبان اسمبلی کلاسیک با زبان اسمبلی کوانتومی


3- ادغام زبان اسمبلی کلاسیک با زبانهای سطح بالای کلاسیک 


4- اسمبلی سطح بالا و قابل حمل 


5- پردازنده ی قابل حمل و سطح بالا !!!



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


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


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


باید بتوانیم شباهتها و تفاوتهای بین بیت و کیوبیت را درک کنیم . 


شاید اینطوری بتوانیم بسیاری از ابهامات ذهنی را حل کنیم . 


شاید با ورود رسمی کامپیوترهای کوانتومی به دنیای فناوری اطلاعات ، لازم باشد تمام دروس رشته ی مهندسی کامپیوتر ، از اول تا آخر بازطراحی و بازنویسی شوند !!!



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


باید بتوانیم تصور کنیم که حضور کامپیوتر کوانتومی در خانه های مردم یا در ادارات و سازمانها و شرکتها ، باعث بروز چه رخدادهایی می شوند و آینده ی دنیای فناوری اطلاعات به شکلی خواهد بود . 



بهرحال من دارم روی ادغام زبانهای برنامه نویسی سطح پایین ( ماشین و اسمبلی ) و زبانهای سطح بالا  ،  فکر می کنم و به محض اینکه منابع معتبر و رسمی و دقیق از معماری و باینری و زبان ماشین و اسمبلی کامپیوترهای کوانتوم را بدست آوردم مطالعه می کنم و آنوقت باید ببینم که این ایده ی ادغام ، حقیقتا به کار می آید یا خیر ؟؟؟


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


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



بنابراین ، زبانهای ماشین و اسمبلی عمر جاودانه دارند و فرقی نمی کند که بیت های این زبانها ، کلاسیک باشد یا کوانتومی !!!!


توجه داشته باشید که زبان ماشین ، یک زبان ازلی - ابدی است و هرگز نمی میرد و منسوخ نمی شود و مادر تمام زبانهای برنامه نویسی و انسانی است . 


زبان ماشین ، یک فلسفه و ایدئولوژی و جهان بینی است و بسیار فراتر از یک زبان برنامه نویسی می باشد . 


بنابراین ، زبان ماشین شامل همه چیز می شود و تمام موضوعات را در بر می گیرد و یک زبان جهانی و بین المللی است . 



اگر  تمام زبانهای برنامه نویسی و انسانی از بین بروند ، زبان ماشین هرگز از بین نمی رود و عمری جاودانه دارد . فقط ممکن است با ورود کامپیوترهای کوانتومی ، قدری تغییر کند و مدرنیزه و مکانیزه شود!!!


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


به امید آن روز