《 嵌入式系统设计与实践》一一1.1 编译器、编程语言以及面向对象编程

简介: 本节书摘来自华章出版社《 嵌入式系统设计与实践 》一 书中的第1章,第1 . 1节,作者:Elecia White 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.1 编译器、编程语言以及面向对象编程
嵌入式系统的另一个特点就是在开发中都使用交叉编译器。虽然交叉编译器运行在台式计算机或者笔记本计算机上,但编译出来的代码却不是。交叉编译的映像文件在目标嵌入式系统上运行。由于编译完的代码需要在嵌入式处理器上运行,所以目标系统的供应商通常会提供一个交叉编译器或者一系列的交叉编译器供选择。不少大的处理器供应商使用基于GNU工具系列的交叉编译器。
嵌入式软件编译器通常只支持C或者同时支持C和C++。而且,许多嵌入式C++编译器只实现了C++语言的子集(一般来说,多重继承、异常处理以及模板都没有实现)。Java在嵌入式系统中日益流行,但其内在的内存管理问题使得它只能使用在大型系统中。
不管你在软件中使用什么语言,都可以使用面向对象的设计。封装、模块化以及数据抽象的设计原则可以应用在几乎任何应用程序和任何语言中。目的是让设计健壮、易维护和灵活。我们应该使用面向对象技术的所有优点。
从总体上说,嵌入式系统可以看做是对象,尤其是作为一个更大系统的一部分时(如,与机顶盒通信的遥控器、工厂的分布式控制系统、汽车上的气囊展开传感器)。从更高的层面上说,一切都是面向对象的,因此把这一结论向下扩展到嵌入式软件是合乎逻辑的。
另一方面,我不主张严格地遵循所有面向对象的设计原则。嵌入式系统有太多的设计目标,因此不可能确立一个一成不变的原则。一旦我们认识到了需要权衡之处,就可以在软件设计目标和系统设计目标之间进行权衡。
本书中的大部分例子都使用C或者C++。我认为概念比语言更重要,所以即使不熟悉语法,阅读代码也没有太大问题。本书不介绍任何编程语言(除了一些汇编语言之外)。正如我所说,设计原则高于编程语言。

相关文章
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
安全 Java Go
Go语言基础与面向对象编程概念
【2月更文挑战第10天】本文旨在介绍Go语言的基本特性和面向对象编程(OOP)的核心概念,以及如何将这两者结合起来。通过Go语言的结构体和方法实现封装、继承和多态,让读者深入理解面向对象编程在Go中的实现方式。文章适合对Go语言感兴趣的初学者和想要了解OOP在Go中如何应用的开发者。
|
1月前
|
存储 编译器 C++
嵌入式中C++ 编程习惯与编程要点分析
嵌入式中C++ 编程习惯与编程要点分析
18 1
|
3月前
|
JavaScript Go Python
我愿称之为最容易上手的编程语言——Yaklang(I)
我愿称之为最容易上手的编程语言——Yaklang(I)
46 0
|
11月前
|
传感器 存储 设计模式
嵌入式C语言之策略模式简单说明
嵌入式C语言之策略模式简单说明
|
11月前
|
传感器 设计模式 存储
嵌入式C语言工厂模式
嵌入式C语言工厂模式
|
存储 开发框架 Cloud Native
【C#基础】初识编程语言C#
编程语言C#和.NET平台的介绍以及如何写出自己第一个C#程序。
84 0
|
缓存 Java
java面向对象的超度,高级语言的灵魂
1.面向对象基本使用 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 Java 中的类: 类可以看成是创建 Java 对象的模板
83 0
java面向对象的超度,高级语言的灵魂
|
架构师 Java 编译器
Java编程语言特性和优势
## 1 前言 Java是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。 从首次发布开始,Java 就跃到了 `Internet `编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手,`Android`编程采用的就是 Java 语言。 ## 2 Java语言特性 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多
223 0
Java编程语言特性和优势
|
C# 索引
【全栈计划 —— 编程语言之C#】总结深入面向对象三大特性之二 —— 继承性
【全栈计划 —— 编程语言之C#】总结深入面向对象三大特性之二 —— 继承性
78 0
【全栈计划 —— 编程语言之C#】总结深入面向对象三大特性之二 —— 继承性