qcl (Quantum Computing Language) ، شبیه ساز رایانه های کوانتومی
شبیه سازی رایانه های کوانتومی بر روی یک رایانه ی کلاسیک سنتی مسئله ی مشکلی است.
منابعی که برای شبیه سازی یک رایانه کوانتومی مورد نیاز است، با توجه به میزان حافظه کوانتومی تحت شبیه سازی، به طور نمایی افزایش پیدا می کنند. با این وجود شبیه سازی یک رایانه ی کوانتومی حتی با تعداد محدودی کوبیت، قابلیّتی فراتر از رایانه های امروزی دارد.
qcl تنها رایانه های کوانتومی بسیار کوجک را شبیه سازی می کند، اما خوشبختانه به اندازه کافی قدرتمند می باشد تا بتواند ایده ی پشت چند الگوریتم کوانتومی مفید را نمایان کند.
احتمالا مانند ابررایانه های دیروز، اولین رایانه های کوانتومی آینده مرکب از چند سخت افزار عجیب و غریب خواهند بود که بر روی یک هسته مرکزی قرار دارند که ماشین حالت کوانتومی را نگهداری و دستکاری می کند و در اطراف آن ها سخت افزارهایی حیاتی خواهند بود که آن ها را حمایت کرده و به کاربران محیط برنامه نویسی متعارفی را ارائه خواهند داد. qcl بوسیله فراهم کردن ساختار برنامه ای ِ کلاسیک با نوع داده کوانتومی و همچنین توابع بخصوصی برای اجرای عملیات بر روی آن ها، یک چنین محیطی را شبیه سازی می کند. qcl مفسری محاوره ای با گرامری شبیه به C دارد.
Initializing qcl and dumping a qubit :
$ qcl --bits=5
[0/8] 1 |00000>
qcl> qureg a[1];
qcl> dump a
: SPECTRUM a: |....0>
1 |0>
A Boolean function on a qubit :
qcl> Not(a);
[2/8] 1 |00001>
Some more qubit operators (CNot) :
qcl> qureg b[2];
qcl> Not(b[1]);
[3/8] 1 |00100>
qcl> CNot(b[0], b[1]);
[3/8] 1 |00110>
qcl> dump b[0];
: SPECTRUM b[0]: |...0.>
1 |1>
qcl> dump b[1];
: SPECTRUM b[1]: |..0..>
1 |1>