【测试开发学习历程】计算机编程语言

前言:

学习完数据库,我们便要进入到编程语言的内容当中了。

这里先对编程语言写出大致的分类,

在这之后,我们会以Python为重点,

开始测试开发为重点的编程语言学习。

目录

[1 计算机编程语言的发展](#1 计算机编程语言的发展)

[2 语言的分类](#2 语言的分类)

[2.1 按照程序的执行方式](#2.1 按照程序的执行方式)

编译型

解释型

编译型与解释型的优劣势对比:

[2.2 按照程序的设计思想来分](#2.2 按照程序的设计思想来分)

面向对象


1 计算机编程语言的发展

机器语言:计算机只能识别二进制(计算机内部的元件通过高低电压来表示信息,高电压是1,低电压是0),早期编程用二进制实现,比如:10100010;

面试问题:什么是二进制?

二进制逢二进一

  • 汇编语言:通过指令集来表示具体的操作,不同硬件的指令集不同,程序可移植性差,比如mov ax bx;
  • 高级语言:跟人的自然语言接近,易于理解,比如C/C++/Java/Python等。

2 语言的分类

2.1 按照程序的执行方式

编译型

  • 编译型语言以C/C++为代表;

  • 编译型语言的程序在运行前需要先编译成机器语言,机器语言能够被计算机识别,因此不需要解释就直接运行;C语言的编译器有GCC,C++的编译器有G++

解释型

  • 解释型语言以Python/Ruby/Perl为代表

  • 解释型语言的程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次;

    Java语言较为特殊,先把.java文件编译成.class字节码文件(十六进制),然后再由JVM解释运行,所以Java既是编译型也是解释型;

编译型与解释型的优劣势对比:

  1. 编译型语言的优势在于运行效率更高,对系统的资源要求更低,一般来说编译型语言用于实现后台的复杂逻辑,比如MySQL数据库、Nginx服务器、CPython等都是用C语言编写的;

  2. 解释型语言的优势在于跨平台性更好(相对而言编译型的可移植性差,C语言程序进行移植后,要重新编译),经常用于脚本的开发。

2.2 按照程序的设计思想来分

  • 面向过程(Procedure Oriented Programming,简称POP)

    • 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。

    • 举个例子,下五子棋,面向过程的设计思路是首先分析解决这个问题的步骤: (1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤2,重复步骤2到7 (9)输出最后结果。

    • 代表语言:C语言

    • 应用场景:

      • 适合编写系统软件:编译器,JVM,驱动,操作系统内核

      • 嵌入式设备的编程

面向对象

  • (Object Oriented Programming,简称OOP)

  • 面向对象是一种以对象为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(简单说面向对象是完成一件事情,只需要找到某个或某些对象,一一组装完成即可)

  • 在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象: (1)黑白双方,这两方的行为是一样的 (2)棋盘系统,负责绘制画面 (3)规则系统,负责判定犯规、输赢等 然后赋予每个对象一些属性和行为:第一类对象(黑白双方)负责接受用户输入,并告知第二类对象(棋盘系统)棋子布局的变化,棋盘系统接收到了棋子的变化,并负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

  • 代表语言:Java ,C++,C#,PHP,JavaScript,Python

    • Java

      • 面向对象的语言

      • 跨平台

    • web开发

      • Android应用开发

      • 服务端应用接口开发

      • 微信公众号开发

    • C++

      • 主要用于底层代码的开发(比如一些大型的游戏,比如lol

      • 一个不完全面向对象的编程语言,也可以面向过程

      • 之前用作MFC界面的开发

      • 现在更多用于数据计算

      • 数据仓库的开发

    • C#

      • 读音:Csharp

      • 微软公司的面向对象的语法

      • 运行在.NET framework

      • 主要开发Windows桌面应用,Windows store 应用

      • 配合asp.net,开发基于Windows Server服务器的web应用

    • PHP

      • 脚本语言,慢慢走向标准化面向对象语言

      • 主要开发动态网页

      • web开发

    • JavaScript

      • Java没有关系

      • 脚本语言

      • 主要用作网页的交互以及动效

    • Python

      • 脚本语言

      • 语法很简单,优美

      • 可以做web开发

      • 数据计算开发

      • 非常适合做自动化测试

  • 面向过程语言和面向对象语言优缺点对比

    • 面向过程:

      • 优点:性能比面向对象高,因为面向对象的类调用时需要实例化;比如单片机、嵌入式开发、linux/unix等一般采用面向过程开发,性能是最重要的因素。

      • 缺点:没有面向对象易维护、易复用、易扩展。

    • 面向对象:

      • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护,适合开发复杂、庞大的大型系统。

      • 缺点:性能比面向过程低。

相关推荐
谷晓光2 分钟前
在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南
python·elasticsearch·macos
CAT_cwds6 分钟前
使用MybatisPlus实现sql日志打印优化
数据库·python·sql
twj_one8 分钟前
SpringBoot+ELK 搭建日志监控平台
spring boot·后端·elk
ZFJ_张福杰9 分钟前
【Flutter】多语言适配-波斯语RTL从右到左
java·开发语言
tanyongxi6611 分钟前
C++ 继承详解:基础篇(含代码示例)
开发语言·c++
yaoxin52112313 分钟前
86. Java 数字和字符串 - 数字
java·开发语言
猛犸MAMMOTH19 分钟前
Python打卡第34天
人工智能·python·深度学习
咖啡啡不加糖24 分钟前
Sentinel原理与SpringBoot整合实战
spring boot·后端·sentinel
是乐谷1 小时前
2025-05-19 代码人生 - 精选文章周刊
人工智能·python·程序人生·面试·职场和发展
早日退休!!!1 小时前
道德经总结
程序人生