首页 > 其他分享 >随记0000——从0、1 到 C语言

随记0000——从0、1 到 C语言

时间:2024-07-25 17:26:14浏览次数:17  
标签:0000 语言 编程语言 汇编语言 C语言 编译器 机器语言 随记

C语言的发展历程是计算机科学史上的一个重要里程碑。

下面是从最早的机器语言到汇编语言,再到高级语言如 C 语言的简化演进过程:

1. 机器语言

定义与特点

  • 机器语言是最底层的编程语言,由一系列二进制代码组成。
  • 直接被CPU执行,无需转换或编译。
  • 难以阅读、编写和维护。

2. 汇编语言

发展原因
人们需要一种更易于理解和使用的方式来编写程序,于是发明了汇编语言。

定义与特点

  • 汇编语言使用助记符,代表底层的机器语言指令。
  • 每条汇编语言的指令对应一条机器语言的指令。
  • 通过汇编程序(Assembler)将汇编代码转换为机器代码。

3. 高级编程语言:C语言的产生

背景

  • 1960年代末,随着计算机的飞速发展,出现了对能够进行更复杂、更抽象编程的需求。

B语言

  • 在汇编语言之后,贝尔实验室的 Ken Thompson 开发了 B 语言,这是一种影响深远的高级编程语言。
  • B语言基于另一种语言——BCPL(Basic Combined Programming Language),但它在功能上相对有限。

C语言的发展

  • 1972年,Dennis Ritchie 在贝尔实验室开发了 C 语言,部分是为了重新实现 UNIX 操作系统。
  • C语言结合了B语言的语法和其他一些高级功能,提供了更强大的数据结构和类型系统。
  • C语言允许底层内存访问,同时也支持高级抽象,如函数、控制结构等。

编译器

  • C 编程语言配合其编译器一起使用,编译器可以将 C 程序转换成机器语言,使其能够在多种硬件平台上运行。
  • C语言的跨平台性使其成为编写系统软件(如操作系统、编译器和驱动程序)的理想选择。

影响

  • C语言的设计哲学和语法影响了后来的很多编程语言,比如 C++、Java、C# 和 JavaScript。

总结

C 语言的设计介于低级汇编语言和完全的高级语言之间,提供了对硬件的直接控制,同时也允许足够的抽象,以便用更加人性化的方式编写复杂程序。
因此,C 语言成为了后来很多其他语言的基础,并在计算机编程和系统开发领域占据了核心地位。

标签:0000,语言,编程语言,汇编语言,C语言,编译器,机器语言,随记
From: https://blog.csdn.net/weixin_45705239/article/details/140690933

相关文章

  • 2个月搞定计算机二级C语言——真题(2)解析
    1.前言大家好,我是梁国庆。本篇博客讲解真题2,其中的填空题用到了指向结构体的指针访问被指结构体的成员的知识,我在下文做了讲解。其他的主要还是对数组的考察,没什么难度,搞清楚思路写程序就可以。2.程序填空题2.1题目要求2.2提供的代码#include<stdio.h>#include<st......
  • 无法连接网络打印机0x00000709原因分析及多种解决方法
          在日常办公和生活中,打印机是不可或缺的重要设备。然而,有时在连接打印机的过程中,我们可能会遇到错误代码0x00000709的提示。有更新补丁导致的、有访问共享打印机服务异常、有访问共享打印机驱动异常等问题导致的,针对访问共享打印机0x00000709提供一系列问题,小编......
  • C语言【面试】常用知识点总结之常用易错易混点解析
    第二部分:程序代码评价或者找错有符号整型和无符号整型混合运算时,有符号型自动转换成无符号型,运算的结果是无符号的。如果参与运算的数据类型不同,会自动转化为同一类再运算,这就是自动转换自动转换的规则如下:1.当参与运算的数据的类型不同时,编译系统会自动先将他们转换成......
  • 油管视频《编程思维》中的题目,使用C语言编写出来,第二集,反抗
    题目,假设要在人群中找一位领袖,领袖的相关信息有,他的眼睛是绿色的,如果他长着红头发,名字至少两个连续字母相同,如果戴眼镜的话,名字中有且仅有2个元音,否则名字中会有三个元音,只有一人附和以上条件,请下达指令涉及编程的基础原理1,结构体的使用,用于存储每个人的信息2,字符串的处理,......
  • C语言:指针1(详细讲解)
     目录指针变量和地址取地址操作符指针变量的大小指针变量类型意义指针解引⽤指针的+-整数const修饰指针const修饰变量const修饰指针变量指针的运算指针+-整数 指针的关系运算野指针指针未初始化 指针越界访问指针指向的空间被释放了避免野指针assert......
  • C语言---二维数组
    1.1概念        从逻辑上有行有列的数组,成为二维数组,相对来讲,只有行这种单一线性结构的数组称为一维数组。二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。定义由行和列组成的二维表格形式元素,二维数组其实也就是矩阵基本格式。访问二维数组需要两个值......
  • 油管视频《编程思维》中的题目,使用C语言编写出来,第三集,炉膛机器人
    题目:假设起初只有一个机器人,他的炉膛里有一个数字0,和另一个未知的任意生成的编码,随着推移,原始机器人自我复制,制造出更多一样的炉膛机器人,被原始机器人自我复制制造出的每一个子机器人的熔炉内,都继承了原始机器人未知的编码,并且有一个属于自己,独一无二的编码刻在外壳,第二代炉膛......
  • 队列及其C语言实现
    2.3队列2.3.1什么是队列队尾入队,队头出队,一个受限制性的线性表。队列(Queue):具有一定操作约束的线性表•插入和删除操作:只能在一端插入,而在另一端删除。•数据插入:入队列(AddQ)•数据删除:出队列(DeleteQ)•先来先服务•先进先出:FIFO 2.3.2队列的抽象数据类型描述 ......
  • C语言面向对象风格编程解惑-全局变量性能分析
    C语言面向对象风格编程解惑-全局变量性能分析如果你是CPP老手,但在软件开发过程中要求采用C语言作为主要语言,首先遇到的是各种设计模式不方便应用了,感到非常困扰,然后就是认命之后走向另外一个极端,常常会有过度使用全局变量和goto语句的问题。CPP既然是CWithClass,自然不会排斥面......
  • Tower Of Hanoi - 汉诺塔问题(C语言)
    ☆WelcometoHouse'sblog!☆本人主页:神王豪斯(重拾基础期)-CSDN博客所属专栏:重拾C语言——神王降世的第一步!_神王豪斯(重拾基础期)的博客-CSDN博客1.游戏规则-有三根柱子(通常分别命名为A、B、C)和若干大小不同的圆盘。-最初,所有圆盘按照从大到小的顺序堆叠在一根柱子(比如......