pdf文档 Back to Basics: The Abstract Machine

538.90 KB 91 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档详细阐述了抽象机器的概念及其在C++中的具体应用。抽象机器作为编程语言和硬件之间的桥梁,通过实现其定义、特性和组成部分,指导程序的执行。C++抽象机器在标准中有明确定义,包含implementation-defined和未定义行为,要求实现必须模拟其可观测行为。文档还讨论了抽象机器的结构、特性及其在编译和链接过程中的作用。
AI总结
《Back to Basics: The Abstract Machine》摘要 本文主要围绕C++抽象机器(Abstract Machine)的定义、结构和特性进行了详细阐述,以下是核心内容的总结: 1. **抽象机器的定义与作用** 抽象机器是介于高级编程语言和硬件之间的中间层,通过提供一种适用于源语言的指令集,实现程序的逐步执行。其目标是桥接高级语言的抽象性和低级硬件的具体性,为编译提供中间阶段。 2. **C++抽象机器的定义** - C++抽象机器在C++标准中被详细定义,其中一些行为被归类为: - **未定义(Undefined)**:这种行为没有任何要求,程序可以出现任意后果(如尝试修改const对象)。 - **未指定(Unspecified)**:允许多种可能的实现方式,但仍需符合规范。 - **实现定义(Implementation-defined)**:行为由编译器或环境决定,且需在文档中明确说明。 3. **抽象机器的结构与关键组件** - **对象**:程序中操作的核心单元,具有大小、对齐、存储时期、生命周期、类型、值等属性。对象可能共享内存地址或不占用内存地址(受“尽如其性”规则影响)。 - **指针**:代表内存地址,用于操作对象。 4. **抽象机器的特性** - **实现定义**:行为可能因编译器或环境而异。 - **非确定性**:同一程序在不同执行路径中可能产生不同结果。 - **未定义行为**:未定义操作对程序的行为无约束。 5. **工具与实现** 编译器和链接器等工具将程序验证为符合抽象机器的要求,并生成可执行代码。实现需模拟抽象机器的可观察行为,而对非观测性副作用的处理可自由选择忽略。 总结:C++抽象机器是语言规范的核心,它通过定义程序的执行模型,为实现和程序行为提供了理论框架,同时为编译器和环境的多样性留有空间。理解抽象机器对于深入掌握C++的行为和编写可靠代码至关重要。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 79 页请下载阅读 -
文档评分
请文明评论,理性发言.