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