第一章 引言 1
1.1 何谓量子程序设计语言 1
1.1.1 何谓语言 1
1.1.2 自然语言与人工语言 1
1.1.3 经典程序设计语言 2
1.1.4 量子程序设计语言 2
1.2 为何要研究量子程序设计语言 3
1.2.1 适应量子计算机之需 3
1.2.2 Shor算法及Grover算法的出现 4
1.2.3 南京大学之工作 4
1.3 如何研究量子程序设计语言 4
1.3.1 学习研讨 4
1.3.2 进行实验 5
1.4 本书之结构 6
第二章 数学基础 7
2.1 集 7
2.1.1 表述 7
2.1.2 子集 7
2.1.3 运算 7
2.2 群 9
2.2.1 代数系 9
2.2.2 群的定义 9
2.2.3 半群 10
2.2.4 群的阶 10
2.2.5 群元素的阶 10
2.2.6 子群 10
2.2.7 不变子群(正规子群) 10
2.2.8 陪集 10
2.2.9 群的同态 10
2.2.10 群的同构 11
2.3 环 11
2.3.1 环的定义 11
2.3.2 非结合环 11
2.3.3 交换环(可换环) 11
2.3.4 零环 11
2.3.5 数环 11
2.3.6 子环 12
2.4 域 12
2.4.1 域的定义 12
2.4.2 源流 12
2.4.3 子域 12
2.4.4 扩域 12
2.4.5 素域 12
2.5 向量空间(线性空间) 13
2.5.1 向量(矢量) 13
2.5.2 向量空间(线性空间) 15
2.5.3 矩阵 20
2.5.4 特征值和特征向量(本征值和本征向量) 24
第三章 计算机科学基础 26
3.1 计算模型 26
3.1.1 线路 26
3.1.2 图灵机(Turing机) 30
3.1.3 递归函数 34
3.1.4 λ演算 39
3.2 不可计算性 44
3.2.1 沿革 44
3.2.2 胜弈机之不存在性 45
3.2.3 不可计算函数的存在性 45
3.3 计算复杂性 45
3.3.1 缘起 46
3.3.2 理解 46
3.3.3 复杂性类 46
第四章 量子力学基础 49
4.1 基本问题 49
4.1.1 量子 49
4.1.2 量子化 50
4.1.3 波粒二象性 50
4.1.4 不确定性关系(测不准原理) 50
4.1.5 波粒二象性和不确定性关系二者之关系 50
4.1.6 量子力学的数学基础 51
4.2 叠加原理 51
4.2.1 叠加 51
4.2.2 原理 52
4.3 量子测量 53
4.3.1 力学量的测量 53
4.3.2 塌缩 53
4.4 量子纠缠 54
4.4.1 量子纠缠的数学表述 54
4.4.2 量子纠缠的物理表现 55
4.4.3 纠缠和关联的区别和联系 56
4.4.4 量子纠缠的本质和空间非定域性 56
4.4.5 量子纠缠在量子信息和量子计算中的作用 59
第五章 语言风范 61
5.1 何谓语言风范 61
5.1.1 语言风范反映了语言所基以的计算机的结构 61
5.1.2 语言风范反映了语言之刻画重点 61
5.1.3 语言风范影响了语言所书写的程序之程序结构 62
5.2 命令式语言风范 62
5.2.1 利弊分析 62
5.2.2 语言举例:XCY语言 62
5.3 申述式语言风范 64
5.3.1 利弊分析 64
5.3.2 语言举例:FP语言 65
第六章 量子程序设计语言举例 68
6.1 量子伪码 68
6.1.1 量子计算 68
6.1.2 硬件平台 68
6.1.3 伪码约定 69
6.2 Qgol 71
6.2.1 量子计算机体系结构 72
6.2.2 量子计算机的形式描述 72
6.2.3 通用量子计算机的不存在性 73
6.2.4 Qgol模拟系统 73
6.2.5 量子电报 76
6.3 QCL 77
6.3.1 混成式结构 77
6.3.2 语言主要成分 78
6.4 qGCL 83
6.4.1 qGCL程序 84
6.4.2 程序示例 85
6.5 QML 86
6.5.1 设计要点 86
6.5.2 量子数据和控制 87
6.5.3 QML的语法和定型规则 87
6.5.4 QML的操作语义 91
6.5.5 QML的指称语义 92
第七章 量子程序设计语言NDQJava 93
7.1 工作动因 93
7.1.1 有感于量子计算与量子计算机的诱人潜力 93
7.1.2 有感于一旦实用的通用量子计算机问世,对人类文明与社会进步的巨大推动 93
7.2 设计准则 93
7.2.1 实用性 93
7.2.2 简明性 94
7.2.3 严谨性 94
7.3 语言概貌 94
7.3.1 语言风范 94
7.3.2 硬件平台 95
7.3.3 语言结构 95
7.3.4 量子成分 95
7.4 实现途径 98
7.4.1 途径 98
7.4.2 难点 99
7.5 处理系统 99
7.5.1 词法分析程序 99
7.5.2 语法分析程序与代码转换程序 107
7.5.3 量子汇编程序与解释程序 112
7.6 示例 119
第八章 量子程序设计语言NDQFP 121
8.1 研究动因 121
8.2 设计准则 121
8.2.1 实用性 121
8.2.2 简练性 121
8.2.3 功效性 122
8.3 语言概貌 122
8.3.1 要点 122
8.3.2 成分定义 125
8.4 处理系统 128
8.4.1 设计思路 128
8.4.2 组成 129
8.5 示例 130
8.5.1 随机整数生成 130
8.5.2 无序数据库搜索Grover算法 131
第九章 量子程序设计语言NDQJava2 134
9.1 工作动因 134
9.2 设计准则 134
9.3 语言概貌 134
9.3.1 量子条件语句 134
9.3.2 量子循环语句 136
9.3.3 量子子程序 136
9.3.4 量子模块 138
9.3.5 量子程序 139
9.3.6 量子异常处理 139
9.3.7 量子表达式 140
9.4 处理系统 141
9.4.1 设计思路 141
9.4.2 系统概述 141
9.5 示例:大数质因子分解的Shor算法 155
9.5.1 算法描述 155
9.5.2 NDQJava2程序 157
9.5.3 汇编指令列 159
9.5.4 机器指令列 160
9.5.5 输出 162
第十章 发展展望 163
10.1 量子计算机结构 163
10.2 量子程序设计语言风范 164
10.3 量子程序设计语言成分之分析与选定 164
10.4 发展前景 165
主要参考文献 167
索引 170