Skip to content

Latest commit

 

History

History
354 lines (245 loc) · 8.15 KB

047-1163691-[趣味拓展]c语言发祥史_c是如何成为第一系统语言的.sy.md

File metadata and controls

354 lines (245 loc) · 8.15 KB
show version enable_checker
step
1.0
true

Hello World!

回忆上次内容

  • 上次我们了解了 标识符
    • 要求首字母为字母或下划线
    • 后面为字母下划线和数字
    • 使用isidentifier函数 可以验证

图片描述

  • 可以声明变量 并对 变量赋值
    • 让变量 从无到有
  • 从无到有 非常美妙
    • c语言 从无到有
    • 成为系统核心编程语言
    • 是怎么一个过程呢?

BSD 和 unix

  • AT&T 终于 发现了
    • unix巨大的商业价值
  • 管理层
    • 想要 以此 盈利

图片描述

  • 垄断案 判决结果 终于出来了
    • 贝尔 被拆成 七个子公司
    • 得以进入 软件行业
  • 长途电话系统
    • 变得更加有趣

电话飞客

  • AT&T电话网络 在同一时间
    • 成为了爱玩年轻人最感兴趣的大玩具
    • 电话飞客 非常时尚

图片描述

  • 贝尔开始
    • 使用 法律武器
      • 消灭各种发行版
    • 最终 与BSD 对簿公堂
    • 闹得 没人对 BSD的未来 有信心
    • 也没有人 对于unix有信心
  • 法律问题 和 开发问题
    • 绞在一起
    • 解不开了

教科书

  • 与 汤普森和里奇
    • 同在 bell实验室的
    • Brian Wilson Kernighan
    • a.k.a bwk

图片描述

  • 开始和Ritchie一起
    • 写 c语言的说明书

教材

  • 在当时的环境中

    • 对于教科书的要求非常迫切
  • 1978 年

    • KernighanRitchie 出版了 这本书
      • 很薄
      • 轻松的语言风格

图片描述

  • 因为 c的目的 就是让人 像玩一样编程

    • 而不是 记忆各种cpu汇编指令
  • 不论 unix 还是 bsd 系统

    • 都在 使用 c语言 编程
  • 新的希望

    • 也在 c语言 中酝酿

成书

  • 有了教材
    • 就有 更多人学
  • 有 更多人 学
    • 就有 更多人参与其中
    • 有 更多人可以答疑
    • 有 更好的案例

图片描述

  • 需要实践就到unix上面
    • 直接写代码
    • 进行编译
  • 就像《说文解字》、《约翰逊字典》一样
    • 成为 文化的 源头
    • 正反馈 逐渐成型

风借火势 火借风威

  • 虽然有各种cpu架构层出不穷
    • 但是 都需要有个
      • 类unix的操作系统
    • 还需要有个 c语言编译器
  • 这使得 c语言
    • 跨架构 across architectures
    • 可移植 portable
    • 成为 系统语言的标准

图片描述

  • c语言 和 类unix环境
    • 互为因果
    • 互相成就
  • 成为了
    • 默认的第一选择

入门 封面

  • 当时学编程语言
    • 指的就是学习c语言

图片描述

  • 这本书里面什么样呢?

原文阅读

图片描述

  • 形成文化

出处

  • hello world 出现在
    • 原书13页

图片描述

  • 这个案例
    • 出书之前 就有了
    • 还是手写的

手稿

  • 主函数 叫做 main函数
    • 里面输出函数
    • 叫做 printf函数
  • 输出的内容就是
    • Hello, world!

图片描述

  • 不管是main函数
    • 还是printf函数
    • 都有小括号
  • 小括号 从那个时候
    • 就和函数调用相关
  • 为什么 输出字符
    • 要用printf 来当函数名 呢?

print 来历

  • 1974 年的手稿😱
  • 写在 打字机用纸上面
  • 侧面的孔洞 是向上送纸用的
    • 是不是 很机械 很像胶片

图片描述

  • 当时的 打字机 就是
    • 今天的 键盘 + 显示器
  • 所以用 print来表示输出
    • f的意思是 format格式
    • printf是 按格式输出

细节

  • printf函数 后面有小括号
    • 小括号里面放的是 函数参数
    • print("hello world")
      • print函数参数"hello world"
  • 双引号 引起来意味着
    • hello world字符串
    • 输出的内容就是
      • 这个字符串 "hello world"

图片描述

  • 小括号 和 双引号的风格
    • 延续到了python
    • 也延续到了很多语言

Hello World

图片描述

  • 各种语言都从 Hello World 开始

源头🧐

  • 最开始的源头 就是
    • c语言开始
      • 编程语言 的入门教学
      • 都是hello world
  • 这个梗的适用范围也越来越大

图片描述

  • 习惯成自然之后
    • 所有的编程语言第一个例子都是hello world

流传

  • unix 和 c语言 的
    • hello world 梗
    • 一直流传到今天

图片描述

  • 软件本身的特性 就是 免费拷贝
    • unix的源代码
    • 扩散到 各个大学和研究机构

另辟蹊径

  • 计算机系统随着阿帕网普及
    • 电话飞客 发展为 黑客
  • Stallman 发起 自由软件运动
    • 组织起GNU 并发布了外围程序
    • 只缺少一个内核

图片描述

  • c的环境里
    • 生长出了新内核linux
    • 在 GNU的框架下崛起

新基础

图片描述

  • linux内核
    • 就是用纯c编的

图片描述

遗传变异

  • 一直到今天
    • 各种操作系统 非常多

图片描述

  • 这种文化 是 自由软件运动的基础
    • 自由地共享源码
    • 分散的方式合作开发

c语言

  • 我们目前使用的 操作系统是 GNU/Linux

图片描述

  • linux 源自什么系统呢?
  • 什么时候开始有操作系统的呢?

基础

  • python的源代码
    • 基础部分 也是用纯c编的

图片描述

  • 对今天的影响

应用开发

  • c 本来是 为了开发 unix应用
    • 而制作的语言

图片描述

  • 后来 在linux基础上
    • 又出现了 Android
  • c语言的作品 非常多
    • gcc
    • vim
    • python

延续

  • 众多编程语言和操作系统
    • 都是在c的基础上得到的

图片描述

来源

  • 程序员的浪漫(hello world)
    • 不是 从来就有的
    • 来自于 unixc
    • unix 是 今天操作系统的源头
    • c语言 是 今天 各种编程语言的 源头

图片描述

  • 最早的 编程语言学习
    • 是从那张打字机用纸的手写代码 起源的

图片描述

  • 输出用的函数名 printf(打印)
    • 也是 从那个时候来的

总结

  • 这次了解了
    • hello world是怎么来的
    • 1969年的c语言
    • 开启了很多的习惯
标志 含义
括号 代表函数
print 输出
单引号 单个字符
双引号 字符串
main 主函数
  • c语言时代 形成的
    • 标识符命名规则
    • 影响到 今天python中的命名规则

图片描述

  • 是不是 满足了 规则
    • isidentifier() 为 True
    • 就一定可以作为标识符呢?
  • 我们下次再说!👋