معرفی نویسنده

کریم رحیمیان

دانشجوی ارشد رشته بیوانفورماتیک( دانشگاه تربیت مدرس)

زبان برنامه‌‏نویسی Silq

زبان برنامه‌‏نویسی Silq

محاسبات کوانتومی طی دهه‌‏های گذشته، افزایش قابل توجهی داشته است و از آنجا که عملکرد کامپیوترهای کوانتومی بر مبنای فیزیک کوانتوم است، پتانسیل‌های زیادی دارند. بسیاری از دانشمندان اعتقاد دارند که این کامپیوترها در آینده می‌‏توانند مسائل خاصی را خیلی سریع‌تر از کامپیوترهای کلاسیک حل کنند. برتری کوانتومی هنوز در حال اثبات است، اما پیشرفت‌های فنی قابل قبولی تاکنون بوجود آمده است. برای مثال در اواخر سال 2019 یک رایانه کوانتومی توانست، یک مسئله خیلی خاص را بسیار سریع‌تر از رایانه‌های کلاسیک حل کند. محاسبات کوانتومی تنها به آخرین تکنولوژی‌ها وابسته نیست، زبان برنامه‌نویسی که بتواند الگوریتم‌های کوانتومی را توصیف کند نیز مورد نیاز است.

زبان برنامه‌نویسی Silq یک زبان برنامه‌نویسی سطح بالا برای محاسبات کوانتومی است که توسط دانشگاه ETH Zurich توسعه داده شده است.  سازندگان این زبان ادعا دارند که این زبان اولین زبان سطح بالا برای رایانه‌‏های کوانتومی است که می‌‏تواند برنامه‌نویسی را راحت‌تر، قابل اعتماد‏تر و مطمئن‌‏تر از کامپیوترهای کلاسیک انجام دهد و همچنین برنامه‌نویسان قادرند از تمامی پتانسیل رایانه‌‏های کوانتومی استفاده کنند. به گفته Martin Vechev این در حالی است که کامپیوترهای کوانتومی هنوز به عنوان یک چالش برای پژوهشگران باقی مانده است.

برای درک بهتر اهمیت این زبان جدید لازم است که گذشته را مرور کرده و به زبان برنامه‌‏نویسی C و انقلابی که در دنیای محاسبات بوجود آورد نگاهی داشته باشیم. ایجاد زبان برنامه‌‏نویسی C در اوایل سال 1370 نقطه عطف بسیار بزرگی در محاسبات کلاسیک ایجاد کرد. تا حدودی محاوره‌‏ای بودن و نزدیک بودن این زبان به زبان گفتاری انسان باعث شد که انقلاب بزرگی در صنعت نرم‌افزار و همینطور سیستم‌های محاسباتی دیگر بوجود آید. اکنون پس از گذشت 50 سال از پیداش زبان  C، دانشمندان کامپیوتر به نقطه عطف جدیدی دست پیدا کرده‌‏اند. زبان Silq همان سطح سادگی که زبان C برای برنامه‌نویسان بوجود آورده است، برای کامپیوترهای کوانتومی به ارمغان آورده است.ساختار این زبان شبیه به زبان برنامه نویسی C و پایتون است و در ادامه برخی از دستورات این زبان را مشاهده می‏‌کنید.

def solve(k:!){

  // produce uniform superposition over k-bit uints

  i:=0:uint[k];

  for j in [0..k){ i[j]:=H(i[j]); }

  // invert i-th qubits (results in correct state, but entangled with i)

  qs:=vector(2^k,0:𝔹);

  qs[i]=X(qs[i]);

  // uncompute i

  forget(i=λ(qs:𝔹^(2^k))lifted{ // function to reconstruct i from qs

    i:=0:uint[k];

    for j in [0..2^k){

      if qs[j]{ // in the superposition's summand where qs[j]==1, i==j

        i=j as uint[k];

      }

    }

    return i;

  }(qs));

  // return result

  return qs;

}

کلید واژه ها: #محاسبات کوانتومی #زبان برنامه نویسی #Silq # #

telegram