你知道C语言中的C是怎么来的吗?

2023-11-02

为什么是C
C语言中的C怎么来的?
各位,我们天天讲C语言,学C语言,那你知道C语言中的C是怎么来的吗?今天我们就给大家简单讲一下,其实这也要从C语言的发展史或者由来说起了,让我们先来看个小视频吧! 海风教育退费

海风教育在线辅导0元一对一试听课等你来领取,领取课程方法:
1、私信留下您的手机号和姓名,需要补习的科目。
2、也可以在海风教育官网留下您的手机号领取 https://www.hfjy.com

怎么样,有些了解了吧,不过视频里讲的比较粗略,有很多东西也没讲,我们接下来给出详细版的,读完你不仅会知道C是怎么来的,也会对C语言的历史有更加详细的认识。
C的真正由来(详细版)
1958
1958年,ACM小组(美国计算机协会)和以当时联邦德国的应用数学和力学协会(GAMM)在苏黎世把他们关于算法表示法的建议综合为一,是一种编程语言,被命名为IAL(国际代数语言,International Algebraic Language),后来改称Algol 58。ALGOL家族的第一个成员。这门语言暂借被称为A语言,尽管这一叫法在当时或者现在都还没统一,但是现在很多人习惯这么叫,我们就姑且这么说吧。

1960
图灵奖获得者:艾伦.佩利(Alan J.Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了"算法语言Algol 60报告",确定了程序设计语言Algol 60。Algol60语言的第一个编译器由Edsger W. Dijkstra来实现,它是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科。

1963
CPL (Combined Programming Language)是1963年英国剑桥大学提出的一种编程语言。CPL 语言在 ALGOL 60 的基础上更接近于计算机硬件一些,但规模是比较大的,很难以实现。当时并没有把它命名为B语言,它算是对A语言的改进,我们暂且叫做A+语言吧!

1967
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。BCPL有些类似于Fortran,也是典型的面向过程的高级语言。注意此时并没有叫做B语言。

20世纪60年代
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,想玩一个他自己编的,模拟在太阳系航行的电子游戏—Space Travel。他背着老板,找到了台空闲的机器—PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来这个操作系统被命名为大名鼎鼎的UNIX。

1970
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。此时B语言就来了。

1971
1971年,一个重量级人物出现了,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。此人也就是我们今天所说的C语言之父。

1972
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,而并不是由前面的A和B语言排着来的,这就是C语言。至此C语言诞生,这也是字母C的由来了。

1973
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用,机器语言和汇编语言都不具有移植性。这也为C语言时至今日强大的移植性(Portability)奠定了基础。

1977
1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978
1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》,很多年来被当作 C语言的非正式的标准说明。这本书就是今天我们所说的大名鼎鼎的K&R C。

1989
1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 “Programming Language C”。因为这个标准是1989年通过的,所以一般简称C89标准,也简称ANSI C。

1990
1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages – C [5] 。因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。

1999
1999年1月,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C语言的新标准,名叫ISO/IEC 9899:1999 - Programming languages – C [8] ,简称C99标准。这是C语言的第二个官方标准。

2011
2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C语言的新标准,名叫ISO/IEC 9899:2011 - Information technology – Programming languages – C [10] ,简称C11标准,原名C1X。这是C语言的第三个官方标准,也是C语言的最新标准。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你知道C语言中的C是怎么来的吗? 的相关文章

  • 序列密码,最安全的密码体制

    序列密码体制是理论上最安全的密码体制 因为Shannon证明了一次一密密码体制是绝对安全的 每个字节明文都对应这一个字节的密钥 而序列密码的设计就是基于此而设计 序列密码 明 文 密 文 密
  • Mysql可变长度列VARCHAR、BLOB和TEXT问题

    在对这些可变长度类型的列进行大量的增删后可能会出现碎片 建议定期执行 OPTIMIZE TABLE 表名 以优化性能 但以上命令只对MyISAM BDB和InnoDB存储引擎的表生效 以下方式也可以优化innodb存储引擎的表中的碎片 al
  • oc swift 混编

    oc 和 swift 互调 swift 中使用 oc swift 中调用 oc 的类 创建一个oc的项目 在项目里创建swift文件的话 Xcode会自动提示 要不要创建桥接文件 如下图所示 选择Create Bridging Header
  • Python大数据-对淘宝用户的行为数据分析

    目录 一 项目背景 二 项目目标 三 分析思路 四 数据清洗 1 读取查看数据的基本信息和数据的完整性 2 一致化处理 3 查看是否有缺失值 五 数据分析 1 不同时间下PV UV的流量变化情况 2 不同购物行为在不同时间维度下的变化情况
  • 可惜了,昔日硬核神器已停止服务……幸亏还有这款开源工具撑着

    大家好 我是小莫理 不知道有多少朋友还记得一个叫Magi的搜索引擎 它比传统的搜索引擎更智能 但是很遗憾 服务已经暂停了 无论是比较知名的F搜 密搜还是多吉搜 服务模式都因为各种原因发生了变化 第三方的搜索引擎似乎是被某种神秘力量所牵绊着
  • 统计学习方法学习1.0

    决策树 决策树是一种分类和回归方法 优点 模型可读性 分类速度快 过程 特征选择 决策树的生成 决策树的剪枝 损失函数 正则化的极大似然函数 特征选择 多个特征时 如何选择某个特征作为判断的依据 信息增益 熵定义 熵越大 随机变量的不确定性
  • Java中calendar类常用方法介绍 (获取年月日星期)

    概述 Calendar 类是一个抽象类 它为特定瞬间与一组诸如 YEAR MONTH DAY OF MONTH HOUR 等日历字段之间的转换提供了一些方法 并为操作日历字段 例如获得下星期的日期 提供了一些方法 构造 父类引用指向子类对象
  • BDS - Chapter - 3 - Remedial Unix Shell

    This book assumes you re familiar with basic topics such as what a terminal is what the shell is the Unix filesystem hie
  • 自动化测试很容易学,是你的方法用错了

    目录 一 初识自动化测试 二 自动化测试和手工测试有什么不同 三 什么是自动化测试 四 自动化测试和手工测试应用范围的对比 五 区别对待不同的测试阶段 六 如何评估测试工具 七 如何选择合适的测试工具 八 如何学习自动化测试 一 初识自动化
  • 高德地图组件在Android的应用以及Android与JavaScript的交互(一)

    最近在慕课网学习了关于高德地图组件的课程 其实就是一个广告 内容和官网的API完全一样 发现这个JavaScript API比Android API简单方便多了 于是就打算放在Android APP上来实现 花了一点小功夫 但是最终还是实现
  • idea调试怎么跳出循环_你不知道的 IDEA Debug调试小技巧(小结)

    一 多线程调试断点 Intellij IDEA 的debug断点调试是有一个模式的选择的 就像下面这张图 平时我们都使用的是默认的 ALL 在Eclipse中默认是线程模式 这种模式我们只能将一个线程断下来 但其他线程却已经执行过了 而将其
  • 校园网防PROXY代理原理与方法分析

    一 概述 本文针对园区网尤其是校园网存在的RPOXY代理问题 进行了详细的技术说明 并针对不同的应用情况提出了多种解决方案 其实 PROXY问题存在于两个方面 一是利用PROXY发表反动言论 二是利用PROXY逃避计费 利用PROXY发表反
  • FPGA按键防抖

    文章目录 basys3按键电路 按键消抖 软件消抖原理 软件消抖代码 仿真结果 basys3按键电路 按键消抖 按键消抖通常的按键所用开关为机械弹性开关 当机械触点断开 闭合时 由于机械触点的弹性作用 一个按键开关在闭合时不会马上稳定地接通
  • react+electron从环境搭建到项目整合全过程

    您好 如果喜欢我的文章 可以关注我的公众号 量子前端 将不定期关注推送前端好文 Electron是什么 Electron 是一个由 GitHub 开发的开源库 通过将 Chromium 和Node js 组合并使用 HTML CSS 和 J
  • 安装PowerDesigner后,office2007中鼠标不能用

    由于PowerDesigner的com插件造成Office word 2007鼠标无法正常使用 只要删除此加载项目就ok Word 2007 删除其中PowerDesigner的com加载项 HKEY CURRENT USER Softwa
  • 冒泡排序(C++)完整代码

    算法学习 本人机械科研dog一枚 对算法感兴趣 这是我自学算法的记录 第一天 冒泡排序 文章目录 算法学习 一 冒泡排序原理 二 核心代码 三 算法复杂度分析 一 冒泡排序原理 1 从后往前依次比较相邻的元素 若是要按照升序排序 则后面的元
  • 中科院jcr分区2020_中科院SCI期刊分区(又称JCR期刊分区)知多少

    SCI期刊常用的评价指标是IF 考虑到IF指标是洋指标 中国科研工作者进一步根据国情设立了中科院JCR期刊分区表来对期刊的管理进行补充 中科院期刊分区其实就是把所有的期刊按照一定指标划分为四个层次 类似 优 良 及格 等 最开始 这个分区只
  • 以太网眼图测试整改案例分析

    故障现象 以太网眼图测试中 出现不通过现象 结果如下 由上可知 主要是眼图模板下方不能通过 更换不同的PHY芯片 结果依旧 故障分析 眼图测试 其测试内容为MAC芯片 经过变压器到网口之间的原理设计 PCB布局及走线 故障电路设计如下 PC
  • 机器学习之线性回归:OLS 无偏估计及相关性python分析

    戳上面的蓝字关注我们 作者 alg flody 编辑 Emily 0 回顾 在最近的推送中 先后总结了最小二乘法的原理 两个求解方法 直接法和梯度下降 最后利用这两种思路进行了python实战 在用直接法求出权重参数时 有一个假设是某个矩阵
  • 用BF写一个根据位置值实现指针自增的代码

    BF代码 根据位置值实现指针自增 BrainFuck 实现指针会根据目前位置存储的值来自增 比如 4 8 则指针会移动到 12 即 4 8 目前位置 n 的前3个位置 n 1 n 2 n 3 需要为0以便转移数据 代码 gt lt lt l

随机推荐

  • vue平滑滚动到指定位置

    需求 锚点导航问题 点击导航跳到对应的模块 两种方式 1 滚动盒子滚动到指定高度 scrollTo offsetTop每个模块顶部距离可滚动盒子的顶部偏移的像素值 goAnthor selector const height documen
  • windows中如何将已安装的nodejs高版本降级为低版本

    第一步 先清空本地安装的node js版本 1 按健win R弹出窗口 键盘输入cmd 然后敲回车 或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出 输入cmd再点击回车键 然后进入命令控制行窗口 并输入where node查看之前本地
  • 关于两重viewpager+fragment,再重回第二个viewpager消失问题

    问题 第一次进入第二个viewpager中时没有问题 当第二次次进入第二个viewpager中时 viewpager显示空白 解析 1 在第二个fragment中设置viewpager的适配器时 调用了 ViewPagerAdapter n
  • 大数据导论三——大数据技术

    大数据技术层面及其功能 数据采集和预处理 功能 利用ETL工具将分布的数据 抽取到临时中间层后进行处理 最后加载到数据仓库中 成为联机分析处理 数据挖掘的基础 利用日志采集工具把实时采集的数据作为流计算的输入 进行实时处理分析 利用网页爬虫
  • ruoyi-vue整合tdengine多数据源

    ruoyi vue整合tdengine多数据源 实现方式一 在application druid yml配置从库数据源 多数据源使用 注意事项 实现方式二 在application druid yml配置从库数据源 添加TDengineCo
  • 旋转链表(图解说明)

    Leetcode题目描述 题目链接 旋转链表 题目很简洁 就是移动节点 但其中有隐含的意思 要将链表的每个节点向右移动 使每个节点在新的位置 由于尾结点后面没有了节点 要移动就要形成环 所有的节点在环里面转 移动完后又把环断开 形成新的链表
  • Linux -- 线程(一)

    线程 一 线程概念 Linux内核线程实现原理 线程共享资源 线程非共享资源 线程的优点 线程的缺点 创建一个线程 线程的退出 线程退出的注意事项 线程的回收 多线程练习 杀死线程 取消点 线程分离 线程属性 线程属性 分离态 Native
  • C++简单人机交互——走迷宫

    一个简单的小方块走迷宫程序 include
  • webpack 配置介绍

    一 webpack webpack 仅是一个打包工具 不会处理打包过程的东西例如 es6等新特性 如果需要处理这些新特性需要配置单独的加载bebblle loader 等 devDependencies webpack 5 76 3 打包工
  • Android攻城狮—全套必备神级工具(开发,插件,效率)

    http www jianshu com p 0911efbf8009
  • Centos6.4 用rpm方式安装MySql5.6

    1 查看系统是否安装了MySQL 使用命令 rpm qa grep mysql 2 卸载已安装的MySQL 卸载mysql命令如下 rpm e nodeps mysql libs 5 1 61 4 el6 x86 64 要将 var lib
  • 第14.15节 爬虫实战1:使用Python和selenium实现csdn博文点赞

    写在前面 本文仅供参考学习 请勿用作它途 禁止转载 在开始学爬虫时 学习了csdn博客专家 id 明天依旧可好 柯尊柏 实战项目二 实现CSDN自动点赞 的文章 文章介绍了通过Python和selenium模块实现csdn指定文章点赞的过程
  • argis sde 服务连接,arcgis9.3版本场合,arcgis10.2采用直接连接数据库

    1 arc gis 9 3 sde 需要创建 服务 即需要安装arcsde 2 台 或者 多台 机器通过服务连接 2 通过服务连接数据服务
  • JMeter websocket接口测试

    前言 在一个网站中 很多数据需要即时更新 比如期货交易类的用户资产 在以前 这种功能的实现一般使用http轮询 即客户端用定时任务每隔一段时间向服务器发送查询请求来获取最新值 这种方式的弊端显而易见 有可能造成数据更新不及时 如果前端轮询频
  • 黑马程序员----职工管理系统(c++)

    目录 一 项目概要 二 代码 三 演示效果 四 项目注意点 五 一点点感悟 一 项目概要 1 面向角色 普通员工 经理和老板 2 主要功能 增加员工信息 显示员工信息 删除离职员工信息 修改员工信息 查找员工信息 按照编号排序 清空所有文档
  • PVE虚拟化平台之创建虚拟机流程

    PVE虚拟化平台之创建虚拟机流程 一 PVE介绍今天 2022 年 11 月 17 日 有236篇文章可用 二 登录PVE平台 三 登录PVE系统检查环境 1 进入PVE底层系统的shell命令终端 2 检查系统版本 3 检查本地磁盘存储
  • SQLMAP中文翻译详细解读

    H 1 5 5 stable V http sqlmap org 使用示例 python3 sqlmap 选项 选项 h help 显示基础帮助信息然后退出 hh 显示更详细的帮助信息然后退出 version 显示程序版本号然后退出 v V
  • JavaScript:异步编程

    异步编程是一种编程模式 JavaScript 是单线程的 只有一个线程可以执行代码 这意味着 所有代码都只能在一个线程中按顺序执行 这很容易导致代码执行的阻塞 代码的每一个语句都需要被执行 为了完成某个计算任务需要一定的执行时间 不同任务的
  • js判断设备是PC端还是移动端

    方法一 function IsPC var userAgentInfo navigator userAgent var Agents Android iPhone SymbianOS Windows Phone iPad iPod var
  • 你知道C语言中的C是怎么来的吗?

    为什么是C C语言中的C怎么来的 各位 我们天天讲C语言 学C语言 那你知道C语言中的C是怎么来的吗 今天我们就给大家简单讲一下 其实这也要从C语言的发展史或者由来说起了 让我们先来看个小视频吧 海风教育退费 海风教育在线辅导0元一对一试听