Ученые из Массачусетского технологического института разработали язык программирования для квантовых компьютеров под названием Twist, который учитывает запутанность кубитов и в то же время понятен программистам. Материал опубликован на репозитории Zenodo.
Квантовые компьютеры используют кубиты, и это отличает их от традиционных компьютеров, в которых используются биты. Изменение состояния одного кубита может изменить состояние другого, даже если они физически не находятся в контакте, то есть разделены. Благодаря этому квантовые компьютеры обрабатывают огромные объемы данных, не сравнимые с объемами обычных компьютеров. Но до сих пор не существовало языка программирования, который учитывал бы запутанность кубитов.
Twist описывает и проверяет, какие части данных в квантовой программе запутаны. Программисту не нужно думать об этом, что позволяет интуитивно программировать с меньшим количеством ошибок. Язык также показывает, какие временные данные, созданные программой, можно отбросить, не опасаясь, что они повредят дальнейшим вычислениям.
Квантовые компьютеры могут решать трудоемкие задачи. Например, расшифровка генома на квантовом компьютере заняла всего несколько часов. В то время как обычному компьютеру для этого потребовались бы недели.
С помощью небольшого количества кубитов они способны выполнять огромное количество вычислений одновременно. Это может быть полезно для разработки криптографических и коммуникационных протоколов, а также для поиска молекулярных структур в биологии, химии и медицине.