c语言起源故事,c语言起源史

dfnjsfkhak 28 0

大家好,今天小编关注到一个意思的话题,就是关于c语言起源故事的问题,于是小编就整理了3个相关介绍c语言起源故事的解答,让我们一起看看吧。

  1. C语言是根据什么原理和机制生产汇编的?
  2. 计算机语言是如何开发出来的?
  3. C语言是用什么编出的?

C语言是根据什么原理和机制生产汇编的?

C语言是一种高级编程语言,它的代码需要通过编译器将其转化为汇编语言,再由汇编器将其转化为机器码,最终在计算机运行。C语言中的每个语句都会被编译器翻译成一条或多条汇编指令

在C语言中,每个变量都有一个内存地址,在程序使用变量时,实际上是在操作这个内存地址。C语言的变量类型和内存分配方式都可以直接映射到底层硬件结构上。

c语言起源故事,c语言起源史-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

C语言与汇编之间的关系是通过编译器实现的。编译器将C代码转换为汇编代码时,会根据C语言的规则和约定来生成对应的汇编指令。而汇编指令则是直接操作计算机硬件的指令,它们可以被CPU直接执行

总之,C语言通过编译器将高级代码转换成底层机器码执行,而这个过程中涉及到了许多底层原理和机制。

用C/C++语言这类高级编程语言所编写的程序源码是利用一种叫做“编译原理”的技术,经过一些列的处理步骤,最终转变为汇编指令,再最后翻译机器指令。我们知道计算机只能处理和识别二进制指令,而我们所编写的程序包含各种较复杂的结构,例如 if语句、循环语句、继承、多态、虚函数等。其实,在很早的时候,计算机科学家们就已经在研究如何把接近人类语言的高级语言所编写的程序转换成机器指令了。这些研究成果都归属于“编译原理”领域,并且“编译原理”是计算机专业学生的必修课。

c语言起源故事,c语言起源史-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

那么根据编译原理,C语言是怎么转换成汇编语言,总共分以下几个步骤:

1. 预处理 -> 2.词法分析 -> 3.语法分析 -> 4.语义分析 -> 5.优化 -> 6.链接

注意,我上面列出的过程是目前实际中真正***用的步骤,编译原理课程可能没有把完整步骤列出来,只列举了核心的几个步骤。

c语言起源故事,c语言起源史-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

上面每个步骤在编译原理课程中都有一个专门的章节来讲述。这里大概说一下每个步骤的作用吧。

1. 预处理:负责执行C语言中的#include, #if, #else 等预处理指令。注意,这里是去执行这些预处理指令。这些预处理指令的作用是根据你的系统环境配凑出最终版的源代码

2. 词法分析:把你定义的函数名、变量名、预留的关键字等抽象化,用一个符号来代替,方便编译程序处理。例如上图中的main, return, printf单词,都被看作一个符号,转换成M, R, P。在这个过程中,会检查你的变量名、函数名名称是否正确。

3. 语法分析:经过词法分析处理之后,程序代码已经变成一堆符号了,例如 I S T F ... M I R P(放心,人已经不认识了,但是计算机能认识)。这时的符号是打散的,语法分析负责把这些符号按照一定的结构组织起来,形成一个抽象语法树(这个结构跟你写的程序代码的结构是对应起来的)。

计算机语言是如何开发出来的?

1.“开发编程语言”这样的表述不正确,编程语言是“设计”出来的,设计只需要思考和写文档,而该语言的编译器才是“开发”出来的。

2.编译器也是程序,所以也需要用编程语言来编写,至于用什么语言就随开发者的便了。很多编程语言是用别的更基础的语言开发的,其中用最多的就是C语言。

3.C语言编译器很多,大部分都是用别的C语言编译器编译出来的,而最早的C语言编译器是用汇编语言写出来的,最早的汇编语言编译器是通过“编译器自举”开发出来的

C语言是用什么编出的?

首先答案是c语言是用c语言编写。

一个语言能否自己编写自己实现自己编译,这叫自编译,自举性。目前能实现自举性的语言没有几个,而自举性也就成了一个语言能否真实强大的标志。

来说图灵完备的语言,编译型语言,虚拟机语言可以实现自举。而解释型语言基本上很难。

现代很多语言都没实现自举,Java(jvm),J***ascript, python,ruby,lua,php,perl……一堆。这些语言编译器、解释器都是c语言。

一个语言能自举是他们社区和开发一直梦寐以求的事情,也是他们情怀和追求所在。有一个语言为了实现自举成功,花了近20年,前年圣诞节才正式推出了第一个正式[_a***_]。它就是perl6,perl的下一代语言。perl6支持过程、OO、函数式三种程模式,支持虚拟机的语言(自己的虚拟机和jvm)。为了做好perl6,社区搞了一个功能启示录,把要实现的功能好点子都录进去。后来一个日本人参考这个启示录自己实现了一个语言,这就有了ruby语言,但是ruby没有自举。

我在以前的回答中,曾说过c语言的来历:

上世纪70年代,为了实现unix,教主Tomphson和Ritchie开发了B语言,但是b语言性能不行,编写也较繁琐,所以又在B语言的基础上开发出了现在的C语言。

到此,以上就是小编对于c语言起源故事的问题就介绍到这了,希望介绍关于c语言起源故事的3点解答对大家有用

标签: 语言 编译器 指令