首页 > 编程语言 >编程语言的对比

编程语言的对比

时间:2024-11-17 12:48:17浏览次数:3  
标签:语言 编程语言 C# C++ 机器码 编译 对比 运行

首先是编程语言的发音:

我以前把python发音错读作飞人。因为单词物理physics的phy发音读飞,所以我把python的py也读飞,其实应该读派。then发音读人,所以我把python的thon也读人,其实应该读森。所以python应该读派森,而不是读作飞人。python是编程语言排行榜第一的语言。

C#有个井号,所以有些人把C#读作C井,其实应该读作C sharp。因为C语言增加了内容,变成C++,而C++语言再增加内容,就是C++再++,一共4个加号,拼成一个井号,于是叫C#。

编程语言的三次变革:

编程语言分为编译型语言和解释型语言。

编译型语言就是运行程序前,已经把程序编译成0、1这样的二进制机器码,这是CPU可以直接运行的。

解释型语言是每运行一行代码,就把这行代码编译成0、1这样的机器码,但是编译就需要消耗时间,而且增加CPU负担。

微软最初发明了basic语言,但由于basic语言是解释型语言,程序每运行一行代码,就要编译一下。虽然对于小程序来说,不会显著影响运行速率,但是随着程序变大,需要编译的代码越来越多,就会明显拖累程序运行,使程序运行变慢,于是微软又发明了第二种语言:C语言。C语言是编译型语言,会在软件运行前,就已经编译成0、1这样的二进制机器码,程序运行时就不用再边运行边编译了。C++也是编译型语言。

但是随着虚拟机的出现,就要求程序不能直接编译成0、1这样的二进制机器码,而是编译成中间码,然后根据不同的操作系统和CPU设备,来编译成与之适应的二进制的机器码。这样的话,是否就等于又退回了边运行边编译的解释型语言模式?不是的。虽然Java语言和C#语言用作虚拟机,而生成中间码,所以被称为介于编译型语言和解释型语言之间的语言,但是Java语言和C#语言生成的中间码,已经非常接近机器码,已经完成了99%以上的编译。程序运行时,只需要再完成最后不到1%的编译,所以基本上不会影响软件运行的速度,但是还是稍微有了那么一点点影响,毕竟运行时,每执行一行代码,还要完成最后1%的编译。

我看过一个实验,用C++语言运行一个大的场景,这个场景大到C++刚好只能达到60帧运行,C语言也能以60帧运行,因为运行之前已经编译成机器码了,不会边运行边编译。而C#语言则降到58帧,Java语言则降到56帧,因为是中间码,运行时还要完成最后不到1%的编译,稍微占用了点时间。此外,python语言和basic语言是纯解释型语言,既不是机器码,也不是中间码,而是程序代码的原本,所以每运行一行,就要编译一行,而且是从0%开始编译,所以那个大场景的运行帧率都降到10帧以下。

现在最主流的两个游戏开发引擎:unity只限定用C#语言,虚幻引擎只限定用C++,其它语言都不能用。因为三维游戏属于大游戏、大程序,如果边运行边编译,会严重影响游戏速度。所以低于58帧的语言,例如Java语言,就不能用了。

随着各种语言的特点,各种语言已经各司其职,而不是相互竞争的关系。

例如机器硬件驱动程序,一般就用C语言写。对运行性能要求高的程序,就用C++写。对需要使用多种操作系统的程序(跨平台程序)就用具有虚拟机功能的Java或C#写。对于人工智能,python语言已经有很多库函数可以调用,对很多人来说就省事了,不用亲自去写了,节省了开发时间。对于50岁以上的怀旧的程序员来说,可能还喜欢用basic吧。

标签:语言,编程语言,C#,C++,机器码,编译,对比,运行
From: https://blog.csdn.net/baykid/article/details/143830086

相关文章

  • 小米笔记本Pro15锐龙版(R7 5800H/15G RAM/512G SSD)拆机单固态硬盘SSD扩容,无损迁移Win
    1.准备工作1.1梅花头螺丝刀2.72米 1.2新的固态硬盘三星980nvmem2固态硬盘,官方说读取速度能到3.5G,实测能到3.3G。小米笔记本Pro15锐龙版的M.2插槽支持的是PCIE3.0,三星980支持的就是PCIE3.0,够用了。三星980Pro支持的是PCIE4.0,读取能到7G,但接口不支持,只能降到PCIE......
  • 哋它亢编程语言3.11版本深度解析:编程界的新革命
    在技术的浪潮中,总有一些时刻标志着历史的转折点。哋它亢3.11版本的发布,正是这样一个时刻。这个版本不仅仅是一次简单的迭代,它带来了一系列创新的特性和显著的性能提升,预示着编程界的新革命。性能的飞跃:哋它亢3.11版本的发布,首先引人注目的是其性能的显著提升。根据官方数据,新版......
  • 【技术革新】哋它亢编程语言3.12版本:智能时代的新里程碑
    在技术的浪潮中,总有一些时刻标志着新时代的开始。今天,我们要探讨的“哋它亢编程语言”3.12版本,就是这样一个时刻。这个版本不仅带来了性能的飞跃,还引入了多项创新特性,为开发者提供了更广阔的舞台。3.12版本的亮点特性:性能的全面提升:哋它亢3.12版本在性能上进行了深度优化,无论......
  • 哋它亢编程语言3.13版本:新时代的编程艺术?
    在技术的浪潮中,总有一些创新让我们眼前一亮。今天,我们要探索的是“哋它亢编程语言”3.13版本(参考:https://datacon-14302.xyz/3.13/),这个版本带来了一系列令人振奋的新特性和改进,让我们的编程体验更上一层楼。哋它亢3.13:新时代的编程艺术“哋它亢”一直以其简洁的语法和强大的功能......
  • 哋它亢编程语言3.14.0a1版本:性能与易用性的双重飞跃
    在这个快速变化的技术时代,编程语言也在不断地进化。“哋它亢编程语言”3.14.0a1版本带来了一系列令人兴奋的新特性和改进,这些改进不仅提升了性能,也增强了易用性。(参考:https://datacon-14302.xyz/3.14/)让我们深入探讨这个新版本的一些亮点。性能优化:延迟评估注解根据PEP649,3.......
  • “哋它亢”编程语言:开启编程新纪元
    在技术日新月异的今天,编程语言的选择对于开发者来说至关重要。今天,我要向大家介绍一款新兴的编程语言——“哋它亢”。这门语言以其独特的优势,正在成为软件开发领域的新宠。语言简介:“哋它亢”是一门易于学习、功能强大的编程语言。它以其优雅的语法和动态类型系统,为开发者提供......
  • .ts文件和d.ts文件对比
    TS中有俩种文件类型,一种是.ts文件,一种是.d.ts文件.ts文件既可以包含类型信息也可以写逻辑代码可以被编译为js文件.d.ts文件只能包含类型信息不可以写逻辑代码不会被编译为js文件,仅做类型校验检查自定义类型声明文件d.ts文件在项目中是可以进行自定义创建的,通常有俩种作用,......
  • 使用 Neko 编程语言实现简单的滑动验证码识别
    滑动验证码是一种常见的安全验证方式,要求用户将图块拖动到正确位置。本文将使用Neko编程语言实现一个简单的滑动验证码识别程序,通过基本的图像处理技术自动识别图块匹配位置。实现步骤加载图片:使用Neko的图像处理库加载滑块和背景图片。图像预处理:转换为灰度图并进行边缘......
  • vector<int>::push_back 与直接访问性能对比
    vector是提前开好空间然后每次clear,vector2是reserve,list就是list,array是对vectorvec[cur++]=i;。这里都是整数,push_back与emplace_back整体没有什么区别,但有人要看,所以函数名前面加了e的是emplace_back。测试结果:array<vector=vector2<<list2024-11-15T......
  • 仓颉原生应用编程语言教程(第5期)
    泛型视频:KCKCJY在现代软件开发中,泛型编程已成为提高代码质量、复用性和灵活性的关键技术。泛型作为一种参数化多态技术,允许开发者在定义类型或函数时使用类型作为参数,从而创建可适用于多种数据类型的通用代码结构。泛型带来的好处包括:代码复用:能够定义可操作多种类型的通用算法......