当前位置: 首页 > news >正文

什么是高级编程语言?——跟老吕学Python编程

什么是高级编程语言?——跟老吕学Python编程

  • 高级编程语言简介
  • 高级编程语言发展历程
  • 高级编程语言特点
  • 高级编程语言分类
    • 命令式语言
    • 函数式语言
    • 逻辑式语言
    • 面向对象语言
  • 常见的高级编程语言及其特点和应用领域
  • 高级编程语言性能分析
  • 高级编程语言的工作方式

什么是高级编程语言?——跟老吕学Python编程

高级编程语言简介


计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。

高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。

高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。

高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。



什么是高级编程语言?——跟老吕学Python编程

高级编程语言发展历程


在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。在计算机还很稀缺的50年代,诞生了第一个高级编程语言。当时计算机的造价不菲,但是每天的计算量有有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。同时,因为资源的稀缺,计算机的运行效率也成为了那个年代工程师追寻的目标。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效简的编程语言的追求。用高级编程语言编写的程序需要经过翻译,翻译成机器所能识别的二进制数才能由计算机去执行。虽然,高级编程语言编写的程序需要一些时间去翻译代码,从而降低了计算机的执行效率,但是实践证明,高级编程语言为工程师带来的便利远远大于降低的执行效率。

经过各软件工程师和专家的不懈努力,1954年,第一个完全意义的高级编程语言FORTRAN问世了,他完全脱离了特定机器的局限性,是第一个通用性的编程语言。从第一个编程语言问世到现今,共有几百种高级编程语言出现,很多语言成为了编程语言发展道路上的里程碑,影响很大。 比如:BASIC、JAVA、C、C++、python等。 高级编程语言也从早期的控制信号变成了现在的有结构有格式的程序编写工具,C++等语言的出现更是开启了面向对象编程语言的新章。同时伴随着软件编写效率的提高,软件开发也逐渐变成了有规模、有产业的商业项目。



高级编程语言特点


因为明确的目标性以及理解容易,一个新手很容易去学习高级编程语言。同时高级编程语言因为发展的历史,拥有很多函数库,用户可以根据自身的需求在代码中加入头文件来调用这些函数来实现自己的功能,当然使用者也可以根据自己的喜好编写函数来在后续的代码中调用。

高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。同时,它更容易被初学者所掌握,很容易学习。而且容易学习掌握。但是高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。

高级编程语言,作为用户层面的编程工具,用户并不需要去了解硬件的结构,而是去用逻辑的语言去实现想要的目标,但是因为高级编程语言的架构高于汇编,所以不能编写直接访问硬件资源的系统程序,因此,高级编程语言必须要调用汇编语言编写的程序来访问硬件地址。



高级编程语言分类


命令式语言

这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。

函数式语言

这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。

逻辑式语言

这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。

面向对象语言

现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是 Smalltalk。



常见的高级编程语言及其特点和应用领域

C语言:C语言是一种广泛用于底层系统开发的高级编程语言,如微软的Windows操作系统。它以强大的性能和灵活性著称,但学习难度较高。

Java:Java主要用于企业级应用开发,如网站平台、交易网站、保险和金融网站等。Java在市场上提供了大量的工作机会,但竞争也相当激烈。

Python:Python的主要应用领域包括爬虫、数据分析、自动化测试和机器学习。它易于学习,并且被多个领域的开发者所使用,包括程序员和运营、财务等非程序员岗位。

C#:C#主要用于Windows应用、商业应用和软件开发领域,如网站应用系统、桌面应用系统、手机游戏开发等。

JavaScript:JavaScript最初主要用于前端开发,但现在它也被用于后端开发。它在Web前端开发中占据了不可撼动的地位,并且是前后端开发必学的语言之一。

PHP:PHP在Web开发领域曾经占据很大市场份额,但近年来其市场地位有所下降。PHP以其易学、开发容易和维护方便的特点而流行,但现在其他语言也能完成PHP能做的功能。



高级编程语言性能分析


接口分析
接口主要指高级语言与汇编语言之间的联系性,Ada语言在应用的过程中可以访问汇编语言,访问情况的实现只需要程序功能,程序功能在使用的过程中破解所设定的环节,进行访问工作。对C语言而言,将汇编语言作为整体看成一个独立的部分,将独立的部分加入C的程序中,具有通讯功能。对于Macros的应用,可以应用在汇编语言中,借助编译器完成各种工作。语言的性能并没有改变,Java语言与汇编语言的 关系可以将其作为一个代码,此代码具有移植性,直接移植便可以进行操作,操作的过程方面并没有过多复杂程序。
寻址分析
Ada寻址情况主要借助的是SYSTEM实现,可以准确的寻址;C的寻址需要借助指针实现,可以精确的实现寻址,对于存储器寻址情况需要应用peek完成,Modula-2的寻址情况与 Ada所借助的情况一致,可以吸纳绝对的寻址。
位操作分析
对于不同语言具有不同的位情况,所表达的从句中可以明确指出Ada的位,会存在很多位的情况,将其组合,通过逻辑原理进行处理。C的主要功能是位操作,对于Modula-2主要借助BIYSTE,应用这样的方式可以准确进行位操作。
任务支持分析
不同的语言任务功能不一样,对于Ada具有较多的任务, 其支持性强,可以实现多种任务同时工作的情况。C与Ada相 比不具有这样的优势,Modula-2与Ada相比并没有其完善性,需要借助机制实现。对于这样的优势是Ada,可以独立的完成。
控制程序分析
系统的设定需要控制程序,对于高级语言会涵盖一定的控制结构,像Ada中具有控制能力,对于其分支可以完全掌控其运行。C中并没有完善的控制结构,主要是对分值方面使用灵活,并且简单易操作,在使用的过程中应严格按照其规定操作,避免人为原因造成问题出现。Modula-2的控制系统只是控制分支,转移需要应用FXIT,操作的过程中应严格审查操作环节,避免其操作的过程中造成出现问题,操作时应兢兢业业,因为这方面的人为操作易引起问题的形成。



高级编程语言的工作方式


高级语言设计的程序必须经过“翻译”以后才能被机器执行。“翻译”的方法有两种,一种是解释,一种是编译。解释是把源程序翻译一句,执行一句的过程,而编译是源程序翻译成机器指令形式的目标程序的过程,再用链接程序把目标程序链接成可执行程序后才能执行。

解释翻译过程。对高级语言程序进行解释并执行的程序称为解释程序(软件)。它的功能是读入源程序,按源程序动态逻辑顺序进行逐句分析、翻译,解释一句执行一句,不产生任何中间代码,最终得到程序的执行结果。



如若本文能帮您, 希望您能关注Python老吕的CSDN博客 ;
您可以在本文进行评论,老吕将努力快速回复,和您近距离交流各种问题;
博主ID:Python老吕,希望大家点赞、评论、收藏。


相关文章:

  • 单例模式及线程安全的实践
  • 20个常用的Python脚本
  • Java开发与配置用到的各类中间件官网
  • MongoDB聚合运算符:$dateFromString
  • SQL中如何添加数据
  • 【kubernetes】关于k8s集群的pod控制器
  • 华为ce12800交换机m-lag(V-STP模式)配置举例
  • OD_2024_C卷_200分_9、园区参观路径【JAVA】【动态规划】
  • 【SpringCloud微服务实战02】Ribbon 负载均衡
  • 是什么原因影响到服务器的稳定性
  • L1阶段题解方法总结
  • 游戏中主流的护甲计算
  • 微信聊天助手
  • HarmonyOS系统开发基础环境搭建
  • 年轻人退休或失业?藏在身边的冷门暴利行业,2024适合年轻人轻资产创业项目!
  • [PHP内核探索]PHP中的哈希表
  • [译] 怎样写一个基础的编译器
  • 0基础学习移动端适配
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Angular4 模板式表单用法以及验证
  • HTML-表单
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • js学习笔记
  • Linux后台研发超实用命令总结
  • mongodb--安装和初步使用教程
  • Mybatis初体验
  • vue脚手架vue-cli
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 关于 Cirru Editor 存储格式
  • 将回调地狱按在地上摩擦的Promise
  • 面试总结JavaScript篇
  • 批量截取pdf文件
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 学习笔记:对象,原型和继承(1)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 原生JS动态加载JS、CSS文件及代码脚本
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 函数计算新功能-----支持C#函数
  • ​Spring Boot 分片上传文件
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #pragma multi_compile #pragma shader_feature
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (7)摄像机和云台
  • (9)目标检测_SSD的原理
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十八)SpringBoot之发送QQ邮件
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .form文件_一篇文章学会文件上传
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core使用NPOI导出复杂,美观的Excel详解