C语言程序设计之漫谈编程语言

C语言程序设计之漫谈编程语言

1.1 信息技术发展趋势

目前信息技术主要经历了互联网、移动互联网以及以大数据、云计算、物联网、人工智能、区块链为代表的新兴技术三个阶段。

互联网主要是连接了世界各地的笔记本、台式机以及背后提供后台服务的服务器集群,其中绝大多数笔记本和台式机都运行着Windows,macOS系统,而服务器主要是以类Unix(CentOS,Ubuntu)占据主要市场优势。

移动互联网主要是连接了世界各地的移动设备(最典型的就是手机),它们绝大多数都运行着Android,IOS系统。

当然随着用户数据的爆发式增长,以海量数据为基础的大数据、云计算技术在各行各业也有一定的用武之地。

而物联网会连接所有智能设备,包括智能家居、汽车、电视等嵌入式设备。

人工智能会类似工业革命再次改变现有的工作和生活形态,例如无人自动驾驶会解放司机。

而区块链经历了比特币、以太坊、和EOS三个发展阶段,会节约成本,提高效率,改变各行各业。

1.2 编程语言发展史

计算机程序设计语言经历了机器语言到汇编语言和高级程序设计语言三个阶段,其特点是使得程序员用编程语言开发、测试、部署应用程序越来越方便、高效。

  • 机器语言
    计算机发展的最早期,程序员编写程序采用二进制的指令(010010101)来实现的,而每种CPU都有各自不同的指令系统(SPARC/Intel X86/ARM),因此在不同的机器上使用不同的机器语言实现。其特点是性能特别高效,而面向机器编程也就意味着不能移植,需要手动处理底层硬件的差异性,而且二进制的指令难以理解和维护。

  • 汇编语言
    随着时代和计算机技术的发展,汇编语言和编译器的出现解决了机器语言需要记住非常多的二进制机器指令的难题,但是还是没有从根本上解决移植性的问题,只是将机器指令转换为易懂的英文单词,然后由编译器编译成机器指令,因为计算机终归揭底只能识别0001110100110机器指令,而且汇编语言是面向机器的,不同机器(SPARC/Intel X86/ARM)的汇编指令是不相同的。

  • 高级程序设计语言
    高级程序设计语言的高级之处体现在开发人员在编写程序时无需关心计算机底层硬件差异而只需要专注于业务模块实现即可。甚至是可以实现 一次编译,到处运行,这里以Java为例子:通过实现不同平台的JVM,编译生成的字节码文件可以在任意的JVM上运行。
    高级语言通常都需要编译器或者是解释器将源码编译或者解释后执行。

高级语言主要分为面向过程和面向对象两种,其中典型的面向过程语言就是C,面向对象的编程语言有Java,C++等等。

1.3 主流编程语言及其应用场景介绍

首先从Tiobe官网获取最新(2018年7月)的编程语言排行榜的前20名,如下图所示
enter description here
从上图所知,Java/C/C++分别排在前三名, 随后紧跟着Python,C#,PHP,JavaScript等等。

在了解编程语言之后,还得得需要了解目前主流的软件有哪些。
比如说操作系统级有Windows,Linux(Ubuntu,CentOS),macOS,Android,IOS,它们的主要实现是采用C语言和汇编语言实现的。

而在操作系统之上运行着许许多多的应用程序,它们主要分为BS/CS两类。
例如电脑上通过浏览器访问 https://www.taobao.com 就是B/S版本的淘宝,通常是采用HTML+CSS+JavaScript+Java技术栈实现。

Windows上的C/S程序(例如QQ、迅雷、Office)都是采用C++实现的。

而如果是iphone上的淘宝客户端使用Objective-C和Swift实现,

如果是Android手机上的淘宝客户端则是使用Java实现。

而网站的高并发应用场景(例如秒杀)以及区块链应用开发通常使用Go语言实现。

也有部分中小型B/S网站采用Python(知乎、豆瓣)或者是PHP(论坛、企业官网)实现。

目前的人工智能主流开发语言是Python。

大数据和云计算开发语言是Java,Scala。

1.4 C语言概览

起源
1972年,贝尔实验室的Dennis Ritch和Ken Thompson在开发Unix操作系统时设计了C语言,该操作系统的90%以上的代码都是由C语言实现,后期的Linux,MacOS,Android,IOS都是基于Unix发展而来的。

特点
C语言作为面向过程的高级程序设计语言,能够轻松的实现自顶向下的规划、结构化编程和模块化设计,这样使得程序结构更加简洁,可扩展性强以及更加容易维护。

而且C语言有着高效、功能强大(嵌套汇编)以及可移植性(标准库可移植)等优点,而且也存在着对系统平台库依赖严重,由于编程风格自由,经验不足也会容易导致出错,编写代码实现周期长,同样的代码在不同的操作系统(或者编译器)下可能会有不同的表现等缺点。

应用场景
偏向操作系统、硬件驱动、底层应用、嵌入式应用开发

硬件驱动的绝大部分实现是由C语言和汇编语言实现的。

目前主流操作系统(Unix,Linxu,MacOS,Windows,Android,IOS)的底层实现都是由C语言和部分汇编实现的。

C++,Java,Python,Swift的编译器或者解释器都是由C语言实现的。

Git,Nginx,Redis,MySQL都是使用C语言实现的,而且都是开放源代码的,可以通过阅读源码提升自己的设计和编码能力。

C语言还可以开发游戏引擎、图形界面、网站后台的程序。

标准
1987年Dennis Ritch和Brian Kernighan编写了The C Programming Language第一版是公认的C标准实现,而没有定义C库。

而后期ANSI/ISO先后于1990年、1999年和2011年发布了C90标准、C99标准和C11标准,该标准定义了C语言和C标准库。

如果没有特殊说明,后面的样例代码都采用C11标准实现。

精髓
32个关键字(赋予了特殊的含义)+9种控制语句+34种运算符

学习C语言的好处
学完C语言可以快速掌握其他常用语言,例如C++,C#,Java,Python,Objective-C,Go,因为这些语言在许多方面都模仿了C语言,而且必须深入掌握C语言,才能对其他语言的底层实现有比较深入的了解。

C语言是目前众多编程语言中综合性能最好的编程语言。

猜你喜欢

转载自www.cnblogs.com/ittimeline/p/9371345.html