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

○、编程语言的未来?

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

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

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

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

一、最早的程序员

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://xiahunao.cn/news/2661336.html

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

相关文章

基于人类反馈的强化学习(RLHF)

1. 监督微调(SFT):为了训练语言模型(LM)掌握基本的任务执行技能,首先需要构建一个监督数据集。这个数据集包含了指令性的输入提示和期望的输出结果,通过这些数据对LM进行精细调整。为了保证任务…

C#中的Attribute详解(上)

C#中的Attribute详解(上) 一、Attribute是什么二、Attribute的作用三、Attribute与注释的区别四、系统Attribute范例1、如果不使用Attribute,为了区分这四类静态方法,我们只能通过注释来说明,但这样做会给系统带来很多…

突破PHP disable_functions方法

1. 利用 LD_PRELOAD 环境变量 知识扫盲 LD_PRELOAD:是Linux系统的一个环境变量,它指定的*.so文件会在程序本身的*.so文件之前被加载。putenv():PHP函数,可以设置环境变量mail(),error_log():PHP函数&…

Python面向对象高级与Python的异常、模块以及包管理

Python面向对象高级与Python的异常、模块以及包管理 一、Python中的继承 1、什么是继承 我们接下来来聊聊Python代码中的“继承”:类是用来描述现实世界中同一组事务的共有特性的抽象模型,但是类也有上下级和范围之分,比如:生物 => 动物 => 哺乳动物 => 灵长型…

模式识别与机器学习-半监督学习

模式识别与机器学习-半监督学习 半监督学习半监督学习的三个假设半监督学习算法自学习算法自学习的步骤:自学习的优缺点:优点:缺点: 协同训练多视角学习生成模型半监督SVM 谨以此博客作为复习期间的记录 半监督学习 半监督学习&…

浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用

摘要:随着社会经济的发展及网络技术、通信技术的提高,人们对照明设计提出了新的要求,它不仅要控制照明光源的发光时间、 亮度,而且与其它系统来配合不同的应用场合做出相应的灯光场景。本文介绍了马亚西亚石油公司智能照明项目的应…

大数据前馈神经网络解密:深入理解人工智能的基石

文章目录 大数据前馈神经网络解密:深入理解人工智能的基石一、前馈神经网络概述什么是前馈神经网络前馈神经网络的工作原理应用场景及优缺点 二、前馈神经网络的基本结构输入层、隐藏层和输出层激活函数的选择与作用网络权重和偏置 三、前馈神经网络的训练方法损失函…

蓝牙物联网智能安防系统设计方案

1概述 安防系统(安全防护)的作用是预防损失,是人们保障人身和财产安全最重要的工具之一。近年来,伴随经济的飞速发展和城市人口的急剧增加,盗窃、入室抢劫等事件的增多给人们的安定生活带来了很大的影响,同时,交通的快…

three.js绘制网波浪

无图不欢&#xff0c;先上图 使用方法&#xff08;以vue3为例&#xff09; <template><div class"net" ref"net"></div> </template><script setup> import { ref, onMounted } from vue import NetAnimation from /utils…

新能源汽车冷却系统的水道管口类型有哪些?格雷希尔针对这些管口密封的快速接头有哪些?

对于新能源汽车&#xff0c;不仅电池&#xff0c;还有电机、电控、充电单元部件&#xff0c;都需要处于适宜的工作温度&#xff0c;才能维持整车的正常运行。而这些部件在运行过程中会产生大量的热量&#xff0c;如果不及时散热会对汽车的性能、寿命产生影响&#xff0c;甚至可…

兔子目标检测数据集VOC格式3900张

兔子是一类可爱的哺乳动物&#xff0c;拥有圆润的脸庞和长长的耳朵&#xff0c;身体轻盈柔软。它们通常是以温和和友善的形象出现在人们的视野中&#xff0c;因此常常成为童话故事和卡通形象中的角色。 兔子是草食性动物&#xff0c;主要以各种草本植物为食&#xff0c;包括草…

深算院与新数科技达成战略合作,共筑国产数据库新生态

近日&#xff0c;深圳计算科学研究院&#xff08;以下简称“深算院”&#xff09;与北京新数科技有限公司&#xff08;以下简称“新数科技”&#xff09;达成战略合作。双方将融合发挥资源优势与技术优势&#xff0c;基于深算院自主研发设计的崖山数据库系统YashanDB&#xff0…

VD6283TX环境光传感器(2)----移植闪烁频率代码

VD6283TX环境光传感器----2.移植闪烁频率代码 闪烁定义视频教学样品申请源码下载参考代码硬件准备开发板设置生成STM32CUBEMX串口配置IIC配置X-CUBE-ALSADC使用定时器触发采样KEIL配置FFT代码配置app_x-cube-als.c需要添加函数演示结果 闪烁定义 光学闪烁是指人造光源产生的光…

conda环境下Could not build wheels for dlib解决方法

1 问题描述 在安装模型运行的conda环境时&#xff0c;出现如下问题&#xff1a; Building wheels for collected packages: basicsr, face-alignment, dlib, ffmpy, filterpy, futureBuilding wheel for basicsr (setup.py) ... doneCreated wheel for basicsr: filenamebasi…

【小程序】如何获取特定页面的小程序码

一、进入到小程序管理后台&#xff0c;进入后点击上方的“工具”》“生成小程序码” 小程序管理后台 二、进入开发者工具&#xff0c;打开对应的小程序项目&#xff0c;复制底部小程序特定页面的路径 三、粘贴到对应位置的文本框&#xff0c;点击确定即可

JMeter逻辑控制器之While控制器

JMeter逻辑控制器之While控制器 1. 背景2.目的3. 介绍4.While示例4.1 添加While控制器4.2 While控制器面板4.3 While控制器添加请求4.3 While控制器应用场景 1. 背景 存在一些使用场景&#xff0c;比如&#xff1a;某个请求必须等待上一个请求正确响应后才能开始执行。或者&…

C语言——指针题目“指针探测器“

如果你觉得你指针学的自我感觉良好&#xff0c;甚至已经到达了炉火纯青的地步&#xff0c;不妨来试试这道题目&#xff1f; #include<stdio.h> int main() {char* c[] { "ENTER","NEW","POINT","FIRST" };char** cp[] { c 3…

docker 安装可视化工具 Protainer 以及 汉化

一、创建保存数据的卷 安装网址&#xff1a;Install Portainer BE with Docker on Linux - Portainer Documentation docker pull portainer/portainer二、根据portainer镜像创建容器 docker run -d -p 8000:8000 -p 9000:9000\ --name portainer --restartalways \ -v /var/r…

缺失的第一个正数(LeetCode 41)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力4.2 排序4.3 哈希表4.4 空间复杂度为 O(1) 的哈希表4.5 置换 参考文献 1.问题描述 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级…

网络MAC

网口框架 关键字 MAC&#xff1a; media access controller RMI: reduced media interface SMI&#xff1a;serial media interface N/A: Not applicable 全双工 & 半双工 3.1、在全双工模式下&#xff0c;8网根线都要分别接到水晶头相应的线序位置上&#xff1b; 3.2在…