程序设计实践:探索可移植性的艺术
需积分: 6 18 浏览量
更新于2024-08-01
收藏 869KB PDF 举报
"B.Kernighan(Addison-Wesley1999)程序设计实践(中译本)08" 关注C语言,探讨程序设计中的可移植性问题。
在编程领域,可移植性是一个重要的概念,指的是一个程序在不同的计算环境(如不同的操作系统、处理器或编译系统)中运行时,无需或只需少量修改就能正常工作的能力。 Brian W. Kernighan和Rob Pike在书中强调了可移植性的重要性,并指出理想的可移植性意味着程序在任何环境下都能无缝运行。
作者提到,虽然编写可移植的软件可能会增加初期开发的复杂性,但有以下几个原因促使我们关注这个问题:
1. **需求演变**:随着时间和用户需求的变化,原本为特定环境设计的程序往往会被要求在新的环境中运行。良好的可移植性可以减少后续的维护工作量。
2. **环境变化**:技术的更新换代,如编译器、操作系统或硬件的升级,可能导致原有程序不再兼容。具有高可移植性的程序更能适应这些变化。
3. **设计质量**:追求可移植性的过程通常会促进更好的设计和结构,因为这要求程序对特定环境的依赖减少,从而提高整体的代码质量。
实现可移植性并不意味着追求绝对的无条件可运行,而是尽可能地让程序能在多种环境的交集中工作。这需要在编程时遵循一些原则,例如:
- **利用标准**:遵循已有的编程标准,如ANSI C标准,确保代码在符合标准的环境中都能正确编译和执行。
- **抽象与封装**:通过接口抽象和封装技术,隐藏特定平台的实现细节,使得核心功能独立于平台。
- **避免依赖特定特性**:尽量不依赖特定编译器或操作系统的非标准特性,以减少移植时的修改工作。
- **模块化设计**:将程序分解为可重用的模块,每个模块尽可能具有良好的可移植性,降低整体的移植难度。
书中的内容还暗示,编写可移植的程序不仅是技术上的挑战,也是对程序员设计思维的锻炼。这种思维方式有助于编写出更加健壮、灵活和易于维护的代码,即使在最初并未预见到的场景下也能表现出色。
"B.Kernighan(Addison-Wesley1999)程序设计实践(中译本)08" 强调了可移植性在程序设计中的重要性,提倡通过良好的设计和编码实践来提升软件的可移植性,以适应不断变化的技术环境和需求。这对于提升程序员的技能和编写高质量的软件具有深远的影响。
2009-03-25 上传
2010-06-03 上传
2010-06-03 上传
2010-06-03 上传
点击了解资源详情
点击了解资源详情
2024-10-26 上传
starsoul0927
- 粉丝: 2
- 资源: 16
最新资源
- 掌握压缩文件管理:2工作.zip文件使用指南
- 易语言动态版置入代码技术解析
- C语言编程实现电脑系统测试工具开发
- Wireshark 64位:全面网络协议分析器,支持Unix和Windows
- QtSingleApplication: 确保单一实例运行的高效库
- 深入了解Go语言的解析器组合器PARC
- Apycula包安装与使用指南
- AkerAutoSetup安装包使用指南
- Arduino Due实现VR耳机的设计与编程
- DependencySwizzler: Xamarin iOS 库实现故事板 UIViewControllers 依赖注入
- Apycula包发布说明与下载指南
- 创建可拖动交互式图表界面的ampersand-touch-charts
- CMake项目入门:创建简单的C++项目
- AksharaJaana-*.*.*.*安装包说明与下载
- Arduino天气时钟项目:源代码及DHT22库文件解析
- MediaPlayer_server:控制媒体播放器的高级服务器