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

前言:

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

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

在这之后,我们会以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等一般采用面向过程开发,性能是最重要的因素。

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

    • 面向对象:

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

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

相关推荐
wjs20241 分钟前
R 绘图 - 饼图
开发语言
buyue__1 分钟前
Kotlin/Android中执行HTTP请求
android·开发语言·kotlin
Jerry_正弦2 分钟前
Kotlin模仿Rxjava进行数据的流式转换实现
开发语言·kotlin·rxjava
向宇it8 分钟前
【unity实战】使用Unity实现动作游戏的攻击 连击 轻重攻击和打击感
开发语言·游戏·unity·游戏引擎
会翻身的嵌入式咸鱼10 分钟前
蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——新建工程
stm32·学习·蓝桥杯
yexiaoyex11 分钟前
nginx的重定向(rewrite)
运维·nginx
lxw100519240113 分钟前
LINUX 安装MINIO文件服务
linux·运维·服务器·minio
Cpdr15 分钟前
pytorch自适应的调整特征图大小
pytorch·python·深度学习
写代码的中青年18 分钟前
Semantic Kernel:微软大模型开发框架——LangChain 替代
人工智能·python·microsoft·langchain·大模型·llm
ZJ_.22 分钟前
Node.js 使用 gRPC:从定义到实现
java·开发语言·javascript·分布式·rpc·架构·node.js