现代编程语言用什么语言写成

对于脚本型语言通常是c写的,包括解析器(编译器和执行器)和大部分基础的标准库(比较高阶的库才会用本语言写)。对于编译型语言,通常编译器也是c写的(但编译器对性能要求不高,理论上可以用任何语言完成)。

脚本型语言

对于脚本型语言通常是c写的,包括解析器(编译器和执行器)和大部分基础的标准库(比较高阶的库才会用本语言写)。从这个意义上来说,脚本语言只是c的wrapper,正因为如此,所以才会有人喊python的sort居然比go快之类的说法,其实就算是python的sort快,那也只证明了c比go快。但也有一些语言的解析器用c++写(比如V8)。

编译型语言

对于编译型语言,通常编译器也是c写的(但编译器对性能要求不高,理论上可以用任何语言完成)。执行器则分为两种情况:一种编译为机器码的,执行器自然是cpu(比如c++、go这类)。另一种编译为bytecode的,这种执行器一般用c写,但是由于性能方面的考虑,通常会执行器(也就是vm)会把bytecode变成机器码让cpu直接执行。至于标准库,编译型语言通常倾向于用本语言完全重写,而不是去依赖c库。

Go语言是编译型语言里面比较奇葩的。由于Go语言的目标是成为下一个C语言,所以整个Go语言的实现过程中,尽量减少了对c语言的依赖,大部分的工具链都是用Go语言自身来完成。其基本思路是:用gcc或其他标准c的编译器,编译出一个Go特有的c编译器,然后用这个特有的c编译器,来编译Go语言工具链中那些不得不用c写的部分,包括go的编译器。

有人问c是用什么写的。实际上现在多数c编译器都是c写的,大家去看看gcc的代码就知道了。其实,现在汇编编译器一般也是c写的。

从鸡生蛋的角度,编译器的进化史应该是这样的:先用机器码直接写第一个汇编编译器,然后汇编编译器编出第一个c编译器。有c编译器后可以反过来用c重写汇编编译器和c编译器,做更多的功能增强。这个过程理论上每出现一种新cpu指令集、新操作系统就需要重新来一遍。但是人是聪明的。所以交叉编译这样的东西产生了,这就避免需要把整个编译器进化史重新演绎一遍。

延伸阅读:

什么是编程语言?

计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。从计算机诞生,计算机语言经历了机器语言、汇编语言和高级语言几个阶段。

在所有的程序设计语言中,只有机器语言编制的源程序能够被计算机直接理解和执行,用其它程序设计语言编写的程序都必须利用语言处理程序“翻译”成计算机所能识别的机器语言程序。

计算机语言是一种特殊的语言。因为它是用于人与计算机之间传递信息的,所以人和计算机都能“读懂”。具体地说,一方面,人们要使用计算机语言指挥计算机完成某种特作,就必须对这种工作进行特殊描述,所以它能够被人们读懂。另一方面,计算机必须按计算机语言描述来行动,从而完成其描述的特定工作,所以能够被计算机“读懂”。

文章标题:现代编程语言用什么语言写成,发布者:小编,转载请注明出处:https://worktile.com/kb/p/41088

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编的头像小编
上一篇 2023年2月23日
下一篇 2023年2月23日

相关推荐

  • 项目管理岗位思考问题有哪些

    项目管理是一个涉及多个领域和技能的复杂过程,因此在担任项目管理岗位时,需要考虑的问题有很多。项目的目标、时间表、预算、团队协作、风险管理、沟通与信息传递、项目质量等都是项目管理者需要思考的问题。例如,项目的目标是任何项目管理过程的起点,项目管理者需要明确项目的目标,这包括项目的具体成果、期望的业务效…

    2024年8月3日
    000
  • 一建管理检验批主控项目有哪些

    在建设项目中,管理检验批主控项目是非常重要的一环,它主要包括:一、土方开挖、填筑工程项目;二、基础工程项目;三、结构工程项目;四、建筑装饰装修工程项目;五、给排水、暖通空调工程项目;六、电气工程项目。 这些主控项目涵盖了建设项目的各个关键环节,对于保证工程质量和进度具有重要意义。 一、土方开挖、填筑…

    2024年8月3日
    000
  • 管理培训有哪些项目名称呢

    管理培训可以分为多个具体的项目名称,这些项目名称包括但不限于:领导力培训、团队管理培训、项目管理培训、财务管理培训、人力资源管理培训、战略管理培训、运营管理培训以及市场营销管理培训等。其中,领导力培训作为管理培训中的重要组成部分,旨在通过一系列的培训课程和实践活动,提升参训者的领导技能和决策能力,帮…

    2024年8月3日
    000
  • 常用项目管理软件有哪些好

    在市场上,存在许多优秀的项目管理软件,如PingCode、Worktile、JIRA、Trello、Asana等。PingCode是一款专门为软件开发团队打造的敏捷开发工具,提供代码托管、任务跟踪、持续集成/持续部署、文档管理等全流程覆盖的服务。Worktile则是一款高效协同的项目管理工具,支持任…

    2024年8月3日
    000
  • 乡村文旅项目的团队管理包括哪些

    乡村文旅项目的团队管理主要包括以下几个方面:一、团队组建与激励;二、团队协作与沟通;三、团队培训与发展;四、团队绩效管理;五、团队冲突解决。在这其中,团队组建与激励是非常关键的一环。团队组建首先需要明确团队的目标和任务,这样才能有效地引导团队成员的行为。同时,为了保证团队的稳定性和凝聚力,还需要建立…

    2024年8月3日
    000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部