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

news2024/11/27 12:39:02

○、编程语言的未来?

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

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

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

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

一、最早的程序员

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.coloradmin.cn/o/1341824.html

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

相关文章

HCIA-Datacom题库(自己整理分类的)——OSPF协议判断

1.路由表中某条路由信息的Proto为OSPF则此路由的优先级一定为10。√ 2.如果网络管理员没有配置骨干区域,则路由器会自动创建骨干区域? 路由表中某条路由信息的Proto为OSPF,则此路由的优先级一定为10。 当两台OSPF路由器形成2-WAY邻居关系时&#xff0…

【Android】使用android studio查看内置数据库信息

背景 需要用到android db 逻辑存储用户信息等等。 使用 在 App inspection 工具中查看该 app 内的 db 数据 sql执行 在新的查询框内解析查询即可知道当前的数据信息。 官方文档-使用 Database Inspector 调试数据库

k8s-cni网络 10

Flannel vxlan模式跨主机通信原理 在同一个节点上的pod 流量通过cni网桥可以直接进行转发; 在需要跨主机访问时,数据包通过flannel(隧道) 知道另一边的mac地址,就可以拿到另一边的ip地址,然后构建常规的以太网数据包,…

文件下载输出zip文件

文件下载输出成zip文件&#xff1a; 1、前端整个按钮&#xff0c;调js方法&#xff1a;&#xff08;参数&#xff1a;param,需要下载的id&#xff0c;用逗号拼接&#xff09; var param "?dto.id";//需要自己拼接param window.location.href "<%basePat…

C++ 函数模板 template

现在的C编译器实现了C新增的一项特性一一函数模板. 函数模板是通用的函数描述&#xff0c;也就是说它们使用泛型来定义函数&#xff0c;其中的泛型可用具体的类型(如int或double)替换。 通过将类型作为参数传递给模板&#xff0c;可使编译器生成该类型的函数。由于模板允许以泛…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于预训练ESPCN的轻量化图像超分辨率模型TPU部署方案

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 作品名&#xff1a;基于预训练ESPCN的轻量化图像超分辨率模型TPU部署方案 队伍名&#xff1a;Absofastlutely 蒋松儒 计算机科学与技术系 硕士 南京大学 中国-江苏 kahsoltqq.com 吕欢欢 计算…

Windows搭建RTMP视频流服务(Nginx服务器版)

文章目录 引言1、安装FFmpeg2、安装Nginx服务器3、实现本地视频推流服务4、使用VLC或PotPlayer可视化播放器播放视频5、RTSP / RTMP系列文章 引言 RTSP和RTMP视频流的区别 RTSP &#xff08;Real-Time Streaming Protocol&#xff09;实时流媒体协议。 RTSP定义流格式&#xff…

26K star! 跨平台的开源AirDrop 替品

现在大家的设备都很多&#xff0c;平时在家里手机&#xff0c;电脑&#xff0c;平板之间怎么传文件&#xff1f;如果你是苹果党&#xff0c;那肯定AirDrop最方便。但是当你需要跨平台来传输内容时&#xff0c;怎么样能更方便呢&#xff1f;各种网盘们都需要网络&#xff0c;如果…

MySQL 数据库系列课程 03:MySQL数据库相关软件的下载和安装

俗话说&#xff1a;“工欲善其事&#xff0c;必先利其器”&#xff0c;开始学习 MySQL 之前我们一定是要做环境准备的&#xff0c;接下来我们来讲解一下 MySQL 的安装。 一、MySQL下载 步骤一&#xff1a;官方入口的寻找 &#xff08;1&#xff09;大家可以尝试在官网寻找 M…

java基础-回忆性记录

java基础 Java概括 jaava是一种计算机交流的高级编程语言&#xff0c;1995年java衍生&#xff0c;詹姆斯高斯林被世人称之为java之父。 java语言具有跨平台性 java程序并非可以直接运行的&#xff0c;在java程序编译完成后会形成与编译无关的class文件。Java具有跨平台性&a…

【前端学习指南】第一站 Vue 生命周期初探

&#x1f36d; Hello&#xff0c;我是爱吃糖的范同学 &#x1f534; 想把自己学习技术的经历和一些总结分享给大家&#xff01; &#x1f534; 通过这样的方式记录自己成长&#xff0c;同时沉淀自己的技术&#xff0c;我会把所有额外的时间和经历投放到CSDN和公众号&#xff0…

Flink1.17实战教程(第四篇:处理函数)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…

DDR终端匹配电阻的长度多少合适?

上次我们对不加端接电阻和加端接电阻之后的仿真结果做了分析之后我们得出在DDR采用菊花链拓扑结构的时候是需要加端接电阻的&#xff0c;这次我们看看DDR末端的端接电阻距离最后一片DDR远一点效果好一些还是近一点效果好一些。 本次采用的案例依旧是我们上期的DDR3一拖八正反贴…

Kali Linux中的十大WiFi攻击工具介绍

在这十大WiFi攻击黑客工具中&#xff0c;我们将讨论一个非常受欢迎的主题&#xff1a;无线网络攻击以及如何防止黑客入侵。无线网络通常是网络的一个弱点&#xff0c;因为WiFi信号可以随处可见&#xff0c;任何人都可以使用。还有很多路由器包含漏洞&#xff0c;可以利用正确的…

【Web API系列】使用getDisplayMedia来实现录屏功能

文章目录 前言一、认识getD该处使用的url网络请求的数据。二、使用步骤1.使用方法一实现录屏2.使用方法二实现录屏3. 运行效果 延伸 前言 Web API经过长期的发展&#xff0c;尤其是最近&#xff0c;发展相当迅猛&#xff0c;现在已经支持很多功能了&#xff0c;一些原生就支持…

使用vivado使用的方法以及遇到的错误

文章目录 前言一、Vivado运行RTL分析闪退二、在创建完工程后修改开发板型号三、引脚分配时&#xff0c;没有对应引脚或是I/O Std四、创建bit流文件五、安装Modelsim的流程&#xff08;有一步很重要&#xff09;六、和谐Modelsim七、vivado联合Modelsim进行仿真 前言 学习vivad…

Linux性能优化全景指南

Part1 Linux性能优化 1、性能优化性能指标 高并发和响应快对应着性能优化的两个核心指标&#xff1a;吞吐和延时 应用负载角度&#xff1a;直接影响了产品终端的用户体验系统资源角度&#xff1a;资源使用率、饱和度等 性能问题的本质就是系统资源已经到达瓶颈&#xff0c;但…

【模拟电路】基础电路

一、模拟电路概述 二、计算机工作原理 三、电流 四、直流电&#xff08;DC&#xff09;和交流电&#xff08;AC&#xff09; 五、开路和闭路 六、电压 七、电阻和欧姆定律 八、串联电路和并联电路 模拟电路基础PPT 一、模拟电路概述 模拟电路是一种使用电子元件&#xff08;如…

如何解决mac无法访问github

确定github能访问的ip地址 点击检测按钮&#xff0c;找到比较快的ip 修改hosts文件&#xff1a;打开终端&#xff0c;输入 open /etc/hosts 后回车&#xff0c;打开mac的文本编辑器 add github.com 140.82.121.4 github.com 199.232.69.194 github.global.ssl.fastly.net …

【GoLang】Go语言几种标准库介绍(二)

你见过哪些令你膛目结舌的代码技巧&#xff1f; 文章目录 你见过哪些令你膛目结舌的代码技巧&#xff1f;前言几种库container 库 (封装堆、列表和环形列表等容器)主要功能&#xff1a;示例 crypto (加密算法)主要的子包和功能&#xff1a;示例 database(数据库驱动和接口)主要…