一.程序语言介绍
1.1程序语言的演变
编程就是把人类的需求用计算机语言表达。、
程序:计算机能执行的一组命令
计算机语言(Computer Language)是人与计算机之间通信的语言,是人与计算机之间传递信息的媒介。
计算机语言经历从机器语言、汇编语言到高级语言的演变过程。
机器语言
用二进制代码表示的计算机能直接识别和执行的一种指令的集合,是计算机设计者通过计算机的硬件结构赋予计算机的操作功能。
机器语言是计算机唯一能够识别的语句,由0和1构成指令的集合。
汇编语言
汇编语言是经过符号化的计算机语言,用一些简介的英文字母和符号代替二进制指令,更加易于读写、调试和修改。
汇编语言需要一个专门的程序将这些符号翻译成相应的二进制机器指令,这种翻译程序称为汇编程序。
汇编语言直接面现处理器,与硬件关系密切,通用性和可移植性差,但是它的程序代码短、执行速度快、执行效率高。
高级语言
高级语言主要是相对汇编语言而言,是一种比较接近自然语言和数学公司的编程语言。
高级语言用人民更容易理解的方式编写程序,基本脱离了机器的硬件系统,有更强的表达能力,可以方便地表示数据的运算和程序的控制结构,可以更好地描述各种算法,基于学习和掌握。
eg:C、C++、Python、Java等
三者对比表
| 语言 | 编写方式及要素 | 特点 |
|---|---|---|
| 机器语言 | 二进制编码 操作码、地址码 |
速度快、效率高、占用内存少 直观性差、难以纠错、编写需要很强的专业性 |
| 汇编语言 | 助记符号 操作码、地址码 |
速度快、效率高、占用内存少、直观性较强 编写专业性较强 |
| 高级语言 | 接近自然语言的语法 源程序、编译或解释程序 |
占用内存多、执行需要编译 易于掌握、可读性强、独立性、共享性及通用性强 |
1.2 高级语言的运行机制
编译型语言
编译型语言是通过专门的编译器,将源程序(高级语言代码)一次性翻译成可执行的目标程序(机器码)的编程语言。Compile (编译)
优点:
1.可独立运行。源代码经过编译形成的目标程序可以脱离开发环境,在特定的平台上面运行。
2.运行效率高。编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。
缺点:
编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型语言
解释型语言是通过解释器对高级语言代码(源程序)一行一行翻译成机器码并执行的语言。
优点:
1.易于修改和测试,逐句解释过程中便于对代码进行修改和测试,可以快速部署,不用停机维护。
2.可移植性好,有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。
缺点:每次运行的时候都要解释一遍,运行速度是不如编译后的程序运行的快的,性能上不如编译型语言。
1.3 动态语言和静态语言
动态语言
动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
静态语言
静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
1.4 强类型定义语言和弱类型定义语言
强类型定义语言
强制数据类型定义的语言
一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。
强类型定义语言是类型安全的语言。
弱类型定义语言
数据类型可以被忽略的语言。
它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)
二.Python概述
https://www.python.org/dev/peps/
https://www.python.org/
2.1 介绍
python是一门动态解释型的强类型定义语言。
python是用C语言实现的,而且可以调用C库,具有类(class)、函数(function)、异常处理(expection),包括了列表(list)和词典(dictionary)等数据类型,以及以模块(module)为基础的拓展系统。
2.1 特性
1.语法简单
Python没有太多的语法细节和规则要求,采用强制缩进的方式,使得代码的可读性更好,编写代码的指令更高。
2.可移植性强
3.黏性拓展
Python又被称为胶水语言,具有优秀的可拓展性。
Python可以在多个层次上拓展,既可以在高层引入py我呢见,也可以在底层应用C语言的库。
4.开源理念
Python语言是一种开源语言,使用者可以自由地发布这个软件的复制、阅读它的源码、对它进行改动,把它的一部分用于新的自由软件中。
5.面现对象
Python既支持面向过程的函数编程,也支持面向对象的抽象编程。
在面向过程的语言中,程序是由过程或可重用代码的函数构建起来的。
在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。
