Quipper - первый язык программирования высокого уровня для квантовых компьютеров

Язык программирования 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, которые используют метод, называемый адиабатными квантовыми вычислениями, делающий его несовместимым с квантовыми вычислительными системами в их традиционном понимании.




Ключевые слова:
Квантовый, Компьютер, Вычисления, Бит, Кубит, Язык, Программирование, Верхний, Уровень, Quipper, Haskell, Инструкции

Первоисточник

Другие новости по теме:
  • Cello - язык, позволяющий программировать живые клетки
  • Сервис Google Quantum Computing Playground позволит каждому попробовать сво ...
  • Язык Wolfram Alpha - революция в области программирования
  • Alb - новый язык программирования, основанный на арабской вязи
  • Компания Google собирается анонсировать новый язык WEB-программирования.




  • 10 июля 2013 09:01
    #1 Написал: FomaNeverujuwij

    Публикаций: 0
    Комментариев: 3867
    стать фактором, определяющим архитектуру этих будущих компьютеров

    Сомневаюсь в правильности такого подхода, ведь то, что может быть оптимальным со стороны языка программирования, может быть далеко от оптимума реализации аппаратных средств. И теперь, разработчики квантовых компьютеров волей-неволей загнаны в рамки созданного языка программирования, притом, созданного пока еще непонятно для чего.


    --------------------
        
    11 июля 2013 01:44
    #2 Написал: KaAnubis

    Публикаций: 0
    Комментариев: 0
    Придумали язык для несуществующих компьютеров. Ладно. На тех квантовых компьютерах, которые уже есть - это не работает. Странно.
    В общем, сделали что-то ненужное, но "квантовое". Круто.
        

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.