12月12, 2011

shell-script是编程语言么

什么是编程?

编程=数据结构+算法

这里的编程,指的是学校教科书上的编程,确实只有数据结构和算法。

数据结构有顺序表链式表哈希表,有树和图,这些都是信息的结构,,而算法是利用语言提供的控制流,描述求解的过程。

在实际的软件项目中呢?

我们体会到的是:
编程=语言+库(类库,函数库)

编程语言,规定了流程控制的语法,,信息结构体的定义语法,,流程控制的语法实现了算法,,而信息的结构体的定义语法,实现了数据结构。

库,是既有代码以函数或类的形式封装起来。。而库的作用有两种,一个是某些函数进行运算,比如math库封装了数学运算的细节,另一个,是对底层系统api的调用,,操作系统提供的api也可以视为库,,但最好还是和库这个概念分开,,因为操作系统提供api是语言无关的(规定了的只是调用约定和数据格式),而类库与函数库是和语言相关的(如c的标准库,在不同的操作系统平台上,就封装了不同的底层os提供的api,但在库的表面,却提供了一致性,屏蔽了底层os的api的差异性)

而回过头来,评述shell是编程语言么?

shell支持变量和控制流语句,但shell所依赖的不是函数库,而是依赖bash内置的命令,alias别名,还有PATH规定的目录里的可执行文件,,shell依赖这些,而不是依赖一个函数库封装起来的底层os向外部暴露的各种功能api,,但因为bash所能掉调用的工具非常全面强大,,使整个bash所能调用到的命令,也就相当于一个丰富的shell的函数库了。

shell是可以称为编程语言的,bash就是这门语言的解释器,if..elif..else..fi for..in..do..done等等就是控制流,,bash丰富的命令和linux丰富的工具就是库。

本文链接:https://75team.com/post/shell-script是编程语言么.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。