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

前言:

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

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

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

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

目录

1 计算机编程语言的发展

2 语言的分类

2.1 按照程序的执行方式

编译型

解释型

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

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等一般采用面向过程开发,性能是最重要的因素。

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

    • 面向对象:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/480754.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高蛋白的猫粮品牌有哪些?

亲爱的猫友们,你们是否也在寻找一款高蛋白的猫粮,希望给自家的小猫咪提供最好的营养呢?🐱 在市面上,高蛋白的猫粮品牌确实不少,但要说到真正让人信赖的,福派斯鲜肉无谷猫粮无疑是一个不错的选择…

如何自己构建 Ollama 模型

如何自己构建 Ollama 模型 0. 引言1. 下载原始模型2. 创建 Modelfile 文件3. 构建 Ollama 模型4. 运行自构建的 Ollama 模型 0. 引言 针对模型新出的大模型,可能 Ollama Models Library 不提供,或者会在今后的某个时点提供。还有可能 Ollama Models Lib…

计算机视觉之三维重建(3)---单视几何

文章目录 一、问题提出二、无穷远点、无穷远线、无穷远平面2.1 2D空间2.2 3D空间 三、影消点和影消线3.1 2D平面上的无穷远点,无穷远线变换3.2 影消点3.3 影消线 四、单视重构 一、问题提出 1. 当摄像机标定后,内部参数 K K K 已知,外部参数…

R语言逻辑回归与lasso模型

一、数据描述 数据集heart_learning.csv与heart_test.csv是关于心脏病的数据集,heart_learning.csv是训练数据集,heart_test.csv是测试数据集。 变量名称变量说明age年龄sex性别,取值1代表男性,0代表女性pain 胸痛的类型&#x…

去中心化的 AI 数据供应:认识Grass,参与Grass

去中心化的 AI 数据供应:认识Grass,参与Grass 👋:邀请链接☘️:Intro❓:看好Grass和即将推出的L2的原因有哪些?💡:展望🔍:总结 👋&…

Ubuntu 安装GPU驱动

https://www.nvidia.cn/Download/index.aspx 驱动我前面安装好啦,不做了,不过可以去看看 CUDA Toolkit 12.4 Downloads | NVIDIA Developer wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_l…

【CXL协议-事务层之CXL.io(3)】

3.1 CXL.io CXL.io 为 I/O 设备提供非一致的加载/存储接口。 图 14 显示了 CXL.io 事务层在 Flex Bus 分层结构中的位置。 交易类型、交易数据包格式、基于信用的流量控制、虚拟通道管理和交易排序规则遵循PCIe定义; 请参阅 有关详细信息,请参阅 PCI Ex…

一文读懂多模态大模型:原理、应用与挑战全解析

在这个信息交织、五彩斑斓的时代,文字、图像、视频和音频如同四条蜿蜒曲折的河流,各自流淌,却又相互交织。它们构成了我们数字生活的核心元素,每一天,我们都在与之亲密接触。然而,面对这些形态各异的信息流…

(附源码)基于Spring Boot + Vue 在线网课学习系统的设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(六)—— 二元分类

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章咱们将深度学习应用到另一个常见任务中。 前言 在…

说说webpack的构建流程?

文章目录 一、运行流程初始化流程编译构建流程compile 编译make 编译模块build module 完成模块编译 输出流程seal 输出资源emit 输出完成 二、小结参考文献 一、运行流程 webpack 的运行流程是一个串行的过程,它的工作流程就是将各个插件串联起来 在运行过程中会…

selenium自动化登录模块HTMLTestRunner测试报告

1.下载HTMLTestRunner.py放到python的Lib目录下,python3之后的,文件要修改以下内容: 第94行,将import StringIO修改成import io 第539行,将self.outputBuffer StringIO.StringIO()修改成self.outputBuffer io.Strin…

eth 交易案例分析9

交易hash: 先用0.26eth买入了多个GPT,然后用这多个GPT 在uniswap3 兑换了1.69 个eth, 疑问点:买入的 DLP 什么意思?

C++一维数组练习oj

思路分析:这题它说n是小于等于1000的,那么我们现在就需要找出1--1000的幸运数 4,7,44,47,74,77,444,447,474,477,774,747&…

OCR研究背景及相关论文分享

光学字符识别(Optical Character Recognition,OCR)是指使用光学方法将图像中的文字转换为机器可编辑的文本的技术。OCR技术的研究和应用已有数十年的历史,其背景和发展受到多方面因素的影响。 技术需求背景 1.自动化文档处理&am…

从原理到实践:深入探索Linux安全机制(一)

前言 本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面,深入探索其工作原理和使用方法。在当今数字化时代,网络安全问题备受关注,Linux作为广泛应用的操作系统之一&…

Github 2024-03-23 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework PDF: https://arxiv.org/html/2403.13248v1 1 概述 为弥补Sora不开源的缺陷,本文提出多代理框架Mora,整合先进视觉AI代理,复制Sora的全能视频生成能力。Mora能利用…

Springboot+vue的作业管理系统+数据库+报告+免费远程调试

项目介绍: Springbootvue的作业管理系统,Javaee项目,springboot vue前后端分离项目 本文设计了一个基于Springbootvue的前后端分离的作业管理系统,采用M(model)V(view)C(controller&…

docker将本地镜像推送到阿里云服务器上

目录 一、制作一个简单的Ubuntu中安装vim的镜像 二、在阿里云上面创建镜像仓库 三、从阿里云仓库中上传和拉取镜像 一、制作一个简单的Ubuntu中安装vim的镜像 docker pull ubuntu docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu …