未来编程语言什么样?编译解释兼容方为王

○、编程语言的未来?

随着科技的飞速发展,编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心,为程序员提供了与机器沟通的桥梁。那么,在技术不断进步的未来,编程语言的走向又将如何呢?
 

俗话说,温故而知新,对编程语言也不例外。

要探讨编程语言的未来,我们先回溯一下编程语言的发展历史。

编程语言的发展历程, 又与计算机和程序员的诞生息息相关。

一、最早的程序员

1834年,英国数学家、发明家兼机械工程师查尔斯·巴贝其(Charles Babbage)——发明了一台差分机。

有“数字女王”之称的阿达·洛芙莱斯(Ada Lovelace)为这吧差分机编写算法,在1842年编写了历史上首款电脑程序,于1843 年公布了世界上第一套算法。阿达·洛芙莱斯因此成为世界上第一位程序员。当时程序员还不是一种职业。

二、程序员职业诞生

1946年2月14日,第一台通用计算机埃尼阿克(ENIAC:Electronic Numerical Integrator and Computer)在美国 宾夕法尼亚大学问世。程序员这种职业也随之诞生。

三、编程语言问世

为了告诉计算机我们要做什么事情,我们需要语言来跟计算机沟通,这就催生了编程语言。

(一)机器语言( machine language)

最早的编程语言的是机器语言,就是用数字0和1的不同排列组合对应不同的机器指令来进行编程。


机器语言的优缺点很明显。

1.优点:

  • 简洁
  • 可以直接执行
  • 运行速度最快


2.缺点:

  • 直观性差,不便于人类阅读理解和使用
  • 容易出错,程序的检查和调试都比较困难
  • 难以移植,因为不同的机器有不同的指令

(二)汇编语言(assembly language)

由于机器语言难读难写难检查,编程效率低,又出现了汇编语言。

在汇编语言中,用 助记符 代替 机器指令 的 操作码,用地址符号或 标号 代替指令或 操作数 的地址,从而提高程序代码的可读性。

 汇编语言的优点和缺点同样鲜明。

1.优点:

  • 指令简洁,易读易记
  • 占用资源少,运行速度快


2.缺点:

  • 表达欠佳,一些逻辑判断、循环结构不够直观
  • 难以移植,因为不同的机器有不同的汇编指令

 当然,现在的汇编语言已经可以使用.if.+ else +.endif、.while.+.endw这样的伪指令,进一步提高了代码的可读性。

(三)高级语言

一方面,随着不同硬件架构的电子计算机的出现,为提高程序代码的可移植性,避免针对不同架构的计算机重复编程,另一方面,计算机的用途日益扩大,需要编写的程序种类与日俱增,这就对编程语言的表达能力和编写代码的效率提出了更高的要求,于是高级语言应运而生。

高级语言使用较接近自然语言的语句和类似数学公式的表达式来进编程,基本脱离了机器的硬件系统,这不仅增强了语言的表达能力,而且提高了程序编写的效率,也改善了代码的可移植性。

高级语言一般分为解释型语言和编译型语言。

1.编译型语言

编译型语言的优点是编写的源程序可以一次编译成目标操作系统上的可执行程序直接运行,运行速度快。缺点是不能跨操作系统运行,需要重新编译。

即:锁定系统,一次编译,直接运行。

典型代表有C、C++、Pascal等。

2.解释型语言

解释型语言优点是编写的源程序可以在不同的操作系统上运行,缺点是每次运行都需要相应的解释程序(虚拟机)来进行解释,运行速度较慢。

即:跨越系统,次次解释,虚拟运行。

典型代表有JavaScript、Python、PHP等。

3.混合型语言

解释型语言适合用来做算法的快速验证。

编译型语言适合用来做算法的部署应用。

在云计算时代,未来的编程语言应该同时兼具解释和编译两种方式的优点,并能与其它语言兼容,即混合型语言。

现有的典型就是C#。

在2022年,C#就有望成为TIOBE 年度编程语言,但在最后一刻,却惜败于C++。

TIOBE 已近公布了 2023 年 12 月的编程语言排行榜,C#优势明显。

C# 能否夺得首个TIOBE 年度编程语言呢?拭目以待……

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux cuda环境搭建

1,检查驱动是否安装 运行nvidia-smi,如果出现如下界面,说明驱动已经安装 记住cuda版本号 2,安装cudatoolkit 上官网CUDA Toolkit Archive | NVIDIA Developer 根据操作系统选择对应的toolkit 如果已经安装了驱动,选…

顶配版SAM:由分割一切迈向感知一切

文章目录 0. 前言1. 论文地址1.1 项目&代码1.2 模型地址1.3 Demo 2. 模型介绍2.1 亮点2.2 方法 3. 量化结果、可视化展示Reference 0. 前言 现有的视觉分割基础模型,如 SAM 及其变体,集中优势在形状、边缘等初级定位感知,或依赖外部模型…

uniapp中uview组件库丰富的Calendar 日历用法

目录 基本使用 #日历模式 #单个日期模式 #多个日期模式 #日期范围模式 #自定义主题颜色 #自定义文案 #日期最大范围 #是否显示农历 #默认日期 基本使用 通过show绑定一个布尔变量用于打开或收起日历弹窗。通过mode参数指定选择日期模式,包含单选/多选/范围…

elasticsearch安装教程(超详细)

1.1 创建网络(单点部署) 因为我们还需要部署 kibana 容器,因此需要让 es 和 kibana 容器互联,所有先创建一个网络: docker network create es-net 1.2.加载镜像 采用的版本为 7.12.1 的 elasticsearch;…

Java线上问题排查思路

1、Java 服务常见问题 Java 服务的线上问题从系统表象来看大致可分成两大类: 系统环境异常、业务服务异常。 系统环境异常:主要从CPU、内存、磁盘、网络四个方面考虑。比如:CPU 占用率过高、CPU 上下文切换频率次数较高、系统可用内存长期处于较低值、…

Transformer模型中的Attention算法

参考【经典精读】万字长文解读Transformer模型和Attention机制 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/104393915图解Transformer_transformer模型训练准确率曲线图-CSDN博客https://blog.csdn.net/qq_41664845/article/details/84969266?appinstall0#commentBoxThe…

【人工智能Ⅰ】实验9:BP神经网络

实验9 BP神经网络 一、实验目的 1:掌握BP神经网络的原理。 2:了解BP神经网络的结构,以及前向传播和反向传播的过程。 3:学会利用BP神经网络建立训练模型,并对模型进行评估。即学习如何调用Sklearn中的BP神经网络。…

CGAL的加热法

1、介绍 热方法是一种算法,通过返回三角形网格中所有顶点到给定源顶点集合中最近顶点的测地距离近似值,解决单源或多源最短路径问题。网格中两个顶点的测地距离是指从网格表面(可能经过面的内部)行进的距离。例如,在章…

CodeWhisperer:编码世界中的声音启迪者

人烟 导语: 在数字化时代,编码已经成为了一种不可或缺的技能。而 CodeWhisperer(编码世界中的声音启迪者)则以其卓越的技术和深厚的知识为人们带来了独特的启发和指导。本文将介绍 CodeWhisperer 的背景和成就,探讨他是…

Centos7:Jenkins+gitlab+node项目启动(3)

Centos7:Jenkinsgitlabnode项目启动(1) Centos7:Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7:Jenkinsgitlabnode项目启动(2) Centos7:Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7:Jenkinsgitlabnode项目启…

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案 当我们使用sudo su切换权限时提示错误: sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set该错误出现原因:是因为/usr/bin/sudo的权限被…

GrayLog日志平台的基本使用-ssh之Email报警

1、首先编辑并添加邮件配置到server.conf(注意:是添加) vim /etc/graylog/server/server.conf # Email transport transport_email_enabled true transport_email_hostname smtp.qq.com transport_email_port 465 transport_email_use_a…

2023启示录丨自动驾驶这一年

图片|《老人与海》插图 过去的20年,都没有2023年如此动荡。 大模型犹如一颗原子弹投入科技圈,卷起万里尘沙,传统模式瞬间被夷为平地,在耀眼的白光和巨大的轰鸣声之下,大公司、创业者、投资人甚至是每一位观…

C语言字符串知识点和算法总结

目录 一、字符串遍历 1、字符串和字符数组 2、获取字符串长度 3、字符串遍历 4、大小写转换 5、字符串数组 二、字符串拷贝 三、字符串比较 四、字符串分割 五、字符串翻转 1、题目详解 2、算法详解 3、源码剖析 六、回文串 1、定义 2、例题讲解 3、算法详解 …

SSM实验室设备管理----计算机毕业设计

项目介绍 本项目为后台管理系统,分为管理员、老师、学生三种角色; 管理员角色包含以下功能: 信息管理:用户管理; 基础管理:实验室管理,实验室申请记录,设备管理,设备记录管理,耗材管理,耗材记录管理等功能…

ClickHouse基础知识(五):ClickHouse的SQL 操作

基本上来说传统关系型数据库(以 MySQL 为例)的 SQL 语句,ClickHouse 基本都支持, 这里不会从头讲解 SQL 语法只介绍 ClickHouse 与标准 SQL(MySQL)不一致的地方。 1. Insert 基本与标准 SQL(My…

windTerm 连接一段时间之后自动断开

默认是关闭会话空闲保活功能的,如所连接的SSH服务没做连接保活, 就很可能超时自动断开 开启会话保活 在 会话 -> 首选项 -> Default Session Settings -> SSH -> 连接 -> 发送空包以保持会话活动 设置15,即15秒自动发空包保…

【JAVA核心知识】分布式事务框架Seata

Seata 基本信息 GitHub:https://github.com/seata/seatastars: 20.6k 最新版本: v1.6.1 Dec 22, 2022 官方文档:http://seata.io/zh-cn/index.html 注意 官方仅仅支持同步调用。 官方在FAQ中表示对于异步框架需要自行支持。 具体的扩展思…

2012年第一届数学建模国际赛小美赛B题大规模灭绝尚未到来解题全过程文档及程序

2012年第一届数学建模国际赛小美赛 B题 大规模灭绝尚未到来 原题再现: 亚马逊是地球上现存最大的雨林,比地球上任何地方都有更多的野生动物。它位于南美洲大陆的北侧,共有9个国家:巴西、玻利维亚、厄瓜多尔、秘鲁、哥伦比亚、委…

C# ASP.NET 实验室 检验中心 医疗LIS源码

LIS系统能够自动处理大量的医学数据,包括样本采集、样本处理、检测分析、报告生成等。它能够快速、准确地进行化验检测,提高医院的运营效率。LIS系统还提供了丰富的数据分析功能,能够对医院化验室的业务流程进行全面、细致的监控。 LIS系统优…