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

○、编程语言的未来?

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

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

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

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

一、最早的程序员

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 如果已经安装了驱动,选…

uniapp uview裁剪组件源码修改(u-avatar-cropper),裁出可自定义固定大小图片

u-avatar-cropper修改后 <template><view class"index"><!-- {{userinfo}} --><view class"top"><view class"bg"><image src"../../static/electronic_card/bg.png"></image></view&g…

2023“楚怡杯”湖南省赛“信息安全管理与评估“--应急响应(高职组)

2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书第一阶段竞赛项目试题第二阶段竞赛项目试题网络安全事件响应:需要环境私聊博主:2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 第一…

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

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

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

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

elasticsearch安装教程(超详细)

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

python渗透工具编写学习笔记:8、无线网络渗透

目录 前言 8.1 概念 8.2 无线网络发现 8.3 无线网络弱点分析 8.3.1 使用Scapy来探测无线网络 8.3.2 使用Aircrack-ng工具 8.4 无线网络密码破解 8.5无线网络漏洞利用&#xff1a; 8.6 无线网络流量分析&#xff1a; 前言 因为一些原因&#xff0c;下一篇我们再来学习p…

Java线上问题排查思路

1、Java 服务常见问题 Java 服务的线上问题从系统表象来看大致可分成两大类: 系统环境异常、业务服务异常。 系统环境异常&#xff1a;主要从CPU、内存、磁盘、网络四个方面考虑。比如&#xff1a;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…

命令行终端查看当前目录下子文件和子文件夹数量

文章目录 查看当前目录下有多少子文件&#xff1a;查看当前目录下有多少子文件夹&#xff1a; 查看当前目录下有多少子文件&#xff1a; ls -lA ./ | grep "^-" | wc -l查看当前目录下有多少子文件夹&#xff1a; find ./ -mindepth 1 -type d | wc -l

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

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

IIS主机头名的用法--一个IP建多个Web站点

主机头名 我们有时候需要在一个IP地址上建立多个web站点&#xff0c;在IIS中&#xff0c;我们可通过简单的设置达到这个目标。 在IIS中&#xff0c;每个 Web 站点都具有唯一的、由三个部分组成的标识&#xff0c;用来接收和响应请求: (1) IP地址 (2)端口号 (3)主机头名。 …

CGAL的加热法

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

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

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

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

Centos7&#xff1a;Jenkinsgitlabnode项目启动(1) Centos7&#xff1a;Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7&#xff1a;Jenkinsgitlabnode项目启动(2) Centos7&#xff1a;Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7&#xff1a;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切换权限时提示错误&#xff1a; sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set该错误出现原因&#xff1a;是因为/usr/bin/sudo的权限被…

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

1、首先编辑并添加邮件配置到server.conf&#xff08;注意&#xff1a;是添加&#xff09; 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启示录丨自动驾驶这一年

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

修改文件和目录的拥有者

chown 修改文件的用户组固然重要&#xff0c;但是修改文件的拥有者可能会更常用。修改用户组使用的是chgrp命令&#xff0c;而要修改拥有者则应该使用chown命令。 $ ls -l -rw-r--r-- 1 scott scott ... libby_arrowrock.jpg -rw-r--r-- 1 scott family ... libby.jpg -rw-r--…

手把手带你死磕ORBSLAM3源代码(十七)System.cc void System::SaveDebugData类代码分析

目录 一.前言 二.代码 2.1完整代码注释分析 一.前言 这段代码是一个C++函数,其主要功能是将一些与初始化相关的数据保存为文本文件。 二.代码 2.1完整代码注释分析 // 定义一个名为SaveDebugData的函数,它接受一个整型引用参数initIdx。 void System::SaveDebugData…