编程语言分类_从计算机系统划分编程语言-程序员宅基地

技术标签: 面向过程 面向对象  声明式 命令式  编译型 解释型  分类  

一.按编程的核心:面向过程 面向对象

二.按语言的功能特性:声明式 命令式

三.按翻译的方式:编译型 解释型

四.按编程语言的历史发展程度:机器语言  汇编语言  高级语言

五.脚本语言介绍


一.按编程的核心:面向过程 面向对象

面向过程:C语言

面向对象:JavaScript、C++、python、java

过程 是一个早期的编程概念,类似于函数,都是对一段功能独立的代码进行封装,但没有返回值

函数 不仅能执行,还可以利用return关键字返回结果。

面向过程:强调怎么做(函数),把完成某一个需求的所有步骤从头到尾逐步实现,根据开发需求,将某些功能独立的代码封装成一个又一个函数,最后完成的代码,就是在一个主函数中顺序的调用不同的函数。面向过程的编程语言,注重步骤与过程,不注重职责分工,如果需求复杂,代码会变得很复杂,开发复杂项目,没有固定套路,难度大。

 

面向对象:强调谁来做(对象),相比函数,面向对象是更大的封装,根据职责在对象中封装多个方法。在完成某一个需求前,首先确定职责———要做的事(方法),根据职责确定不同的对象,在对象中封装不同的方法(多个),最后完成的代码就是顺序的让不同的对象调用不同的方法。面向过程的编程语言,不同对象担任不同职责,更加适合复杂项目开发,提供固定思路,需要在面向过程的基础上在学习一些面向对象的语法。

 

注:而且面向对象更加方便,eg:生命值这一个方法,不同的对象都可以调用

二.按语言的功能特性:声明式 命令式

声明式语言:html 、css 、 sql、Vue、React

声明式编程:告诉”机器“你想要的是什么,让机器去想如何做这件事,而不关注具体该怎么实现。

就像告诉你朋友画一幅什么样的画,而不用管他怎么画出来的。

命令式语言:JavaScript 、 java、 c#、JQuery

命令式编程:命令“机器”如何做这件事,按照你的命令一步一步实现,计算机会严格遵循你的指令,而不理会最后的结果是不是你所想要的。

可以简单的理解为,声明式的语言,告诉它需要放一个图片,它就会显示一个图片;而命令式的语言,会严格遵循代码所写逻辑,最后结果是不是自己想要的,需要看自己所写代码逻辑是否正确。

注:1.总体上,语言可以分为 声明式语言 和 命令式语言,在某一种语言中,可以分为 声明式编程方式 和 命令式编程方式。

2.声明式编程方式其实就是把一些功能封装成一个函数,用的时候直接调用该方法即可,或是直接利用第三方的函数实现某些功能。开发过程中,尽量使用声明式编程方式编程,把一些复用率高的功能抽象成一个个函数,使代码更加优雅。

三.按翻译的方式:编译型 解释型

按照翻译代码的方法可以分为 编译型语言 和 解释型语言,其实解释型语言不会转化成二进制语言

编译型语言 解释型语言
优点 速度快 跨平台
缺点 移植性不好(不跨平台) 稍慢
eg C 、 C++ JavaScript、Python、PHP

注:Java既不是编译型语言也不是解释型语言,.java文件通过javac(Java编译器)阅读编译成.class文件,在通过jvm虚拟机解释执行程序(Java程序要在JVM上解释运行)。因此Java语言需要编译,并且具有较好的跨平台性。

.java ----javac编辑器---- .class ----jvm虚拟机----

(1)编译型语言

通篇翻译,计算机阅读完一整篇代码一起翻译,生成文件,最后程序执行翻译出来的文件 (eg:C语言 .c文件 生成 .obj文件 然后生成 .exe文件 ,然后执行程序)

由于编译型语言快的特点,所以可以做 操作系统 、游戏引擎之类的程序

(2)解释型语言

计算机阅读一行代码,翻译一行代码,不生成文件,直接执行程序

大多数家用的操作系统都为Windows系统,但是大多数服务器都是Linux 、Unix,因为Linux 、Unix操作系统稳定

四.按编程语言的历史发展程度

  • 机器语言:0和1,人类几乎没办法阅读、理解

  • 汇编语言:由一些特定指令构成,学习成本比较高;在底层做一些驱动,体积小,运行效率高

  • 高级语言:c、c++、java、php、python、javascript等

 

五.脚本语言介绍

脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。

脚本的用意是为了可再现的重复一个设定好的规程。

不管是哪种脚本,能实现的功能都差不多,只是每种脚本语言都有自己特定的语法

脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间,也是一种编程语言。JavaScript、Python都是脚本语言。

脚本语言一般都是以文本形式存在,类似于一种命令。

优点: 快速开发:脚本语言极大地简化了“开发、部署、测试和调试”的周期过程。 容易部署:大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_60939507/article/details/125228534

智能推荐

leaflet基本使用_leaflet中文文档-程序员宅基地

文章浏览阅读3.5k次,点赞3次,收藏10次。官网(英文):https://iclient.supermap.io/examples/leaflet/examples.html#iServer。高德官网的名词解释:https://lbs.amap.com/api/javascript-api/guide/abc/components。项目地址 gitee:https://gitee.com/philippines-kisses-snow/leaflet-map。(1)直接添加,官网当中是直接建立一个标记,并添加到地图(不推荐,不好管理)_leaflet中文文档

解决在VS2019中创建不了网站_visual studio无法新建空白网站-程序员宅基地

文章浏览阅读611次。VS2019无法新建网站,怎么办?_visual studio无法新建空白网站

ROS 机器人操作系统:Ubuntu 安装 ROS Noetic_ubuntu系统安装ros noetic包-程序员宅基地

文章浏览阅读3k次,点赞6次,收藏43次。本文介绍如何在 Ubuntu 20.04 安装 ROS Noetic 软件包,并进行简单的测试。安装步骤1、配置 Ubuntu 软件仓库配置 Ubuntu 软件仓库支持 “restricted” “universe” 和 “multiverse” 来源,最简单的方法是在「软件和更新」配置窗口进行勾选,如下图所示。扩展阅读:Ubuntu 软件源、Ubuntu Repositories2、设置 sources.list执行下面命令,设置从官方源(packages.ros.org)下载 ROS 软件_ubuntu系统安装ros noetic包

Error:too many padding sections on bottom border.-程序员宅基地

文章浏览阅读8.5k次。异常信息:Error:too many padding sections on bottom border.原因:使用andoridstudio制作.9图错误。 解决只怪我把线画多了。修改后的.9图片 这样问题就解决了..._too many padding sections on bottom border

Django-Redis-程序员宅基地

文章浏览阅读554次,点赞10次,收藏10次。NoSQL:(不支持sql语句)RedisMongoDBkey-value数据库(非关系性数据库)

蓝桥杯实战应用【算法知识篇】-快速排序算法(附Java、Python和C++代码)_蓝桥杯快速排序蓝桥杯java-程序员宅基地

文章浏览阅读189次。快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。_蓝桥杯快速排序蓝桥杯java

随便推点

【Bug解决】ImportError: C extension: No module named ‘pandas._libs.tslibs.base‘ not built._importerror: c extension: none not built. if you w-程序员宅基地

文章浏览阅读4.3k次,点赞6次,收藏11次。问题描述笔者用Pyinstaller打包成exe文件,在其他电脑端运行时出现如下问题ImportError: C extension: No module named 'pandas._libs.tslibs.base' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --force' to build the C exten_importerror: c extension: none not built. if you want to import pandas from

tf.tile,tf.gather,t f.concat,t f .expand_dims,tf.add_n, tf.stack,tf.sparse_to_dense_tf add_n concat-程序员宅基地

文章浏览阅读345次。temp = tf.range(0,10)*10 + tf.constant(1,shape=[10])temp2 = tf.gather(temp,[1,5,9])with tf.Session() as sess: print (sess.run(temp)) print (sess.run(temp2))输出结果[ 1 11 21 31 41 51 61 ..._tf add_n concat

用linux脚本插入10w级的数据数据库为mysql-程序员宅基地

文章浏览阅读177次。插入大量数据到MySQL数据库可以使用以下步骤:准备数据:你需要一个数据文件,包含需要插入的所有数据。每行都是一条记录,字段之间使用适当的分隔符分开。创建数据库:如果没有相应的数据库,请先创建一个。创建表:创建一个表来存储数据。导入数据:使用MySQL的"LOAD DATA INFILE"命令导入数据。该命令可以从文件中快速加载大量数据到MySQL表中。以下是使用bash脚本..._linux sql插入大量数据

腾讯云域名免费SSL证书怎么获取?HTTPS免费配置_腾讯 域名证书-程序员宅基地

文章浏览阅读316次,点赞5次,收藏4次。总之,通过腾讯云免费SSL证书申请教程,您可以轻松为自己的域名获取免费SSL证书,并实现HTTPS的安全配置。同时,结合腾讯云的服务器购买优惠政策,您还可以以更经济的成本搭建起安全、高效的网站环境。腾讯云将为您的域名生成免费的SSL证书,并通过您提供的邮箱发送相关通知。这样,您就成功获取了免费的SSL证书,为您的网站加上了一把安全锁。那么,如何在腾讯云上为自己的域名免费获取SSL证书,并实现HTTPS的安全配置呢?此外,如果您在配置SSL证书的过程中需要购买服务器,不妨关注腾讯云的促销活动。_腾讯 域名证书

R语言ggplot2包绘制双坐标轴图(双Y轴图)实战:两个Y轴分别使用不同的刻度范围_ggplot双侧轴,两侧轴起始高度不一样,数值刻度也不一样-程序员宅基地

文章浏览阅读146次。R语言ggplot2包绘制双坐标轴图(双Y轴图)实战:两个Y轴分别使用不同的刻度范围_ggplot双侧轴,两侧轴起始高度不一样,数值刻度也不一样

优化图像处理中均值和方差计算_图像方差-程序员宅基地

文章浏览阅读7.2k次。图像处理中均值和方差计算优化一、均值和方差的普通优化图像处理中,有时候会需要计算图像某区域的均值和方差。在我之前的博客中《图像比较之模板匹配》,对计算方差有做简化计算的介绍。详细介绍可以参考我之前的博文。在此,我简单的介绍下计算方差的简化方法:按照上述方式计算均值和方差,很多应用场景下都比较合适。但是有两个缺陷:如果均值远大于标准差,意味着方差计算中相减的两个数非常接近,将引入过度舍入的问题; 对于新增加一个统计变量重新计算其均值和方差的时候,需要对所有统计变量再重新计算,做了大量的重_图像方差

推荐文章

热门文章

相关标签