Quipper - перша мова програмування високого рівня для квантових комп'ютерів
Людям, які цікавляться областю квантових обчислень і квантових комп'ютерів, добре відомо, що основою таких комп'ютерів є квантові біти, кубіти, які, на відміну від бітів традиційних комп'ютерів, можуть приймати значення логічної одиниці і логічного нуля одночасно. Така особливість дозволяє квантовим комп'ютера одночасно робити дві або більша кількість обчислювальних операцій. Але програмування комп'ютерних алгоритмів, які з максимальною ефективністю використовують квантовий паралелізм, є досить складною задачею, яка до останнього часу виконувалась на найнижчому рівні за допомогою елементарних інструкцій програмування квантових логічних елементів, що складаються з кубітів.
Тепер, область розробки програмного забезпечення для квантових обчислювальних систем перейшла на абсолютно новий якісно інший рівень. Поштовхом до цього стало створення першої мови програмування високого рівня, мови, отримав назву Quipper. Незважаючи на те, що на світі ще не існує реальних повноцінних квантових комп'ютерів, наявність мови програмування може стати поштовхом до їх швидкого появи і стати фактором, що визначає архітектуру цих майбутніх комп'ютерів.
Честь створення першого квантового мови програмування високого рівня Quipper належить Петеру Зелингеру (Peter Selinger) і його команді з університету Дэлхоузи в Галіфаксі, Канада. Мова Quipper розроблений для того, щоб програмісти мали можливість висловити загальні поняття, дії та концепції, не вникаючи в галузеві інструкції та операції. Це дозволить без особливих труднощів створювати бібліотеки квантових програм, об'єднувати різні алгоритми в єдине ціле модульним способом. Самим найближчим аналогом мови Quipper, що працює на звичайних комп'ютерах, є мова програмування Java, який бере на себе виконання всіх операцій нижчого рівня.
Основою мови Quipper є класичний мова програмування Haskell, який як не можна краще підходить для створення алгоритмів математичних моделей і розрахунків з галузі прикладної і теоретичної фізики. Ті зміни, яким команда Зелінгер піддала оригінальний мова програмування, повинні оптимізувати набір одержуваних кінцевих низькорівневих інструкцій для обробки їх квантовими бітами.
Розробники мови Quipper створили бібліотеку коду, яка реалізує сім існуючих квантових алгоритмів, включаючи алгоритм розрахунку енергії стандартного стану молекул. Вони сподіваються на те, що інші програмісти і колективи програмістів в майбутньому додадуть у бібліотеку свої власні алгоритми, створюючи всі разом ресурс, що дозволяє створювати програми для квантових комп'ютерів настільки ж легко, як і звичайні програмісти створюють програми на Яві.
Команда Зелингера надала загальної уваги структуру мови Quipper разом з розробленими бібліотеками на Конференції по розробці і реалізації мов програмування (the Programming Language Design and Implementation conference), яка проходила в Сіетлі в минулому місяці. Створення мови Quipper проводилося в рамках програми, що фінансується IARPA (US Intelligence Advanced Research Projects Agency), Управління перспективних досліджень розвідки США, фахівці якого поставили перед собою мету визначити мінімальну кількість кубітів, якими повинен володіти квантовий комп'ютер для ефективного вирішення певного кола завдань.
На жаль, розроблений мова програмування Quipper не може використовуватися для написання програм до єдиного виду квантових комп'ютерів, наявних в даний час, комп'ютерів компанії D-Wave, які використовують метод, званий адиабатными квантовими обчисленнями, що робить його несумісним з квантовими обчислювальними системами в їх традиційному розумінні.