|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 >
|
被考次数:2次
被考频率:低频率
总体答错率:40%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
相关知识点:28个
|
|
|
|
|
程序设计语言的发展是一个不断演化的过程,其根本的推动力就是对抽象机制的更高要求,以及对程序设计活动更好的支持。具体地说,就是把机器能够理解的语言提升到能够很好地模仿人类思考问题的形式。
|
|
|
FORTRAN(“FORmula TRANslator”的缩写)是第一个高级程序设计语言,在数值计算领域积累了大量高效且可靠的程序代码。FORTRAN语言的最大特性是接近数学公式的自然描述,具有很高的执行效率,目前广泛地应用于并行计算和高性能计算领域。
|
|
|
ALGOL(ALGOrithmic Language)诞生于晶体管计算机流行的年代,ALGOL60是程序设计语言发展史上的一个里程碑,主导了20世纪60年代程序语言的发展,并为后来软件自动化及软件可靠性的发展奠定了基础。ALGOL60有严格的公式化说明,采用巴科斯范式BNF来描述语言的语法。ALGOL60引进了许多新的概念,如局部性概念、动态、递归等。
|
|
|
PASCAL语言是一种结构化程序设计语言,由瑞士苏黎世联邦工业大学的沃斯(N. Wirth)教授设计,于1971年正式发表。PASCAL是从ALGOL 60衍生的,但功能更强且容易使用,该语言在高校计算机软件教学中曾经处于主导地位。
|
|
|
C语言是20世纪70年代初发展起来的一种通用程序设计语言,其主要特色是兼顾了高级语言和汇编语言的特点,简洁、丰富、可移植。UNIX操作系统及其上的许多软件都是用C编写的。C提供了高效的执行语句并且允许程序员直接访问操作系统和底层硬件,适用于系统级编程和实时处理应用,因此在嵌入式系统开发中得到广泛应用。
|
|
|
C++是在C语言的基础上于20世纪80年代发展起来的,与C兼容。在C++中,最主要的是增加了类机制,使其成为一种面向对象的程序设计语言。C++具有更强的表达能力,提供了表达用户自定义数据结构的现代高级语言特性,其开发平台还提供了实现基本数据结构和算法的标准库,使得程序员能够改进程序的质量,并易于代码的复用,从而可以进行大规模的程序开发和系统组织。
|
|
|
Java产生于20世纪90年代,其初始用途是开发网络浏览器的小应用程序,但是作为一种通用的程序设计语言,Java得到非常广泛的应用。Java保留了C++的基本语法、类和继承等概念,删掉了C++中一些不好的特征,因此与C++相比,Java更简单,其语法和语义更合理。进入21世纪以来,Java建立起庞大的生态体系,在常用编程语言中位列榜首。
|
|
|
各种程序设计语言都在不断地发展变化之中,也涌现出许多新的语言及开发工具,吸引了编程社区的众多用户,如Python、Visual Basic.NET、JavaScript等。
|
|
|
Python是一种面向对象的解释型程序设计语言,可以用于编写独立程序、快速脚本和复杂应用的原型。Python也是一种脚本语言,它支持对操作系统的底层访问,也可以将Python源程序翻译成字节码在Python虚拟机上运行。虽然Python的内核很小,但它提供了丰富的基本构建块,还可以用C、C++和Java等进行扩展,因此可以用它开发任何类型的程序。
|
|
|
Visual Basic.NET是基于微软.NET Framework的面向对象的编程语言。用.NET语言(包括VB.NET)开发的程序源代码不是直接编译成要执行的二进制本地代码,而是被编译成为中间代码MSIL(Microsoft Intermediate Language),然后通过.NET Framework的通用语言运行时(CLR)来执行。程序执行时,.Net Framework将中间代码翻译成为二进制机器码后,使它得以运行。因此,如果计算机上没有安装.Net Framework,这些程序将不能够被执行。
|
|
|
JavaScript是一种脚本语言,被广泛用于Web应用开发,常用来为网页添加动态功能,为用户提供更流畅美观的浏览效果。通常,将JavaScript脚本嵌入在HTML中来实现自身的功能。
|
|
|
|
程序设计语言的分类没有统一的标准,从不同的角度可以进行不同的划分。从最初的机器语言、汇编语言、结构化程序设计语言发展到目前流行的面向对象语言,程序设计语言的抽象程度越来越高。根据程序设计的方法将程序设计语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。
|
|
|
|
命令式程序设计语言是基于动作的语言,在这种语言中,计算被看成是动作的序列。程序就是用语言提供的操作命令书写的一个操作序列。用这类语言编写程序,就是描述解题过程中每一步处理步骤,程序的运行过程就是问题的求解过程,因此也称为过程式语言。FORTRAN、ALGOL、COBOL、C和Pascal等都是命令式程序设计语言。
|
|
|
结构化程序设计语言本质上也属于命令式程序设计语言,其编程的特点如下:
|
|
|
|
|
(3)程序只包含顺序、判定(分支)及循环结构,而且每种结构只允许单入口和单出口。
|
|
|
结构化程序的结构简单清晰、模块化强,描述方式接近人们习惯的推理式思维方式,因此可读性强,在软件重用性、软件维护等方面都有所进步,在大型软件开发中曾发挥过重要的作用。目前仍有许多应用程序的开发采用结构化程序设计技术和方法。C、Pascal等都是典型的结构化程序设计语言。
|
|
|
|
面向对象的程序设计语言始于从模拟领域发展起来的Simula,在该语言中首次提出了对象和类的概念。C++、Java和Smalltalk都是面向对象程序设计语言,封装、继承和多态是面向对象编程的基本特征。
|
|
|
|
函数式语言是一类以λ-演算为基础的语言,其基本概念来自于LISP,这是一个在1958年为了人工智能应用而设计的语言。函数是一种对应规则(映射),它使定义域中每个元素和值域中唯一的元素相对应。例如:
|
|
|
|
函数定义2:Plustwo[x]:=Plusone[Plusone[x]]
|
|
|
函数定义3:fact[n]:=if n=0 then 1 else n*fact[n-1]
|
|
|
在函数定义2中,使用了函数复合,即将一个函数调用嵌套在另一个函数定义中。在函数定义3中,函数被递归定义。由此可见,函数可以看成是一种程序,其输入就是定义中左边括号中的量,它也可将输入组合起来产生一个规则,组合过程中可以使用其他函数或该函数本身。这种用函数和表达式建立程序的方法就是函数式程序设计。函数式程序设计语言的优点之一就是对表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。
|
|
|
函数式语言的代表LISP在许多方面与其他语言不同,其中最为显著的是,该语言中的程序和数据的形式是等价的,因此数据结构就可以作为程序执行,程序也可以作为数据修改。在LISP中,大量地使用递归。
|
|
|
|
逻辑型语言是一类以形式逻辑为基础的语言,其代表是建立在关系理论和一阶谓词理论基础上的PROLOG。PROLOG代表Programming in Logic。PROLOG程序是一系列事实、数据对象或事实间的具体关系和规则的集合。通过查询操作把事实和规则输入数据库,用户通过输入查询来执行程序。在PROLOG中,关键操作是模式匹配,通过匹配一组变量与一个预先定义的模式并将该组变量赋给该模式来完成操作。以值集合S和T上的二元关系R为例,R实现后,可以询问:
|
|
|
|
|
|
|
逻辑型程序设计具有与传统的命令式程序设计完全不同的风格。PROLOG数据库中的事实和规则是一些Hore子句。Hore子句的形式为“P:-P1,P2,…,Pn.”,其中n≥0,Pi(1≤i≤n)为形如Ri(…)的断言,Ri是关系名。该子句表示规则:若P1,P2,…,Pn均为真(成立),则P为真。当n=0时,Hore子句变成“P.”,这样的子句称为事实。一旦有了事实与规则后,就可以提出询问。
|
|
|
PROLOG可以表达很强的推理功能,适用于编写自动定理证明、专家系统和自然语言理解等问题的程序。
|
|
|