Skip to content

Latest commit

 

History

History
311 lines (209 loc) · 7.41 KB

037-1163691-[趣味拓展]hello_world的由来.sy.md

File metadata and controls

311 lines (209 loc) · 7.41 KB
show version enable_checker
step
1.0
true

Hello World!

回忆上次内容

  • 上次 了解到 c语言登场
    • 又在unix 制作出了c语言编译器
      • 使用这个编译器 编译了编译器
      • 完成自举
    • 使用这个编译器 重写并编译了unix
      • 编译了 unix

图片描述

  • 随着计算机的不断迭代
    • AT&T的管理层终于认识到unix是一门大生意
    • 但是bsd已经发展起来了
  • 这龙争虎斗会谁输谁赢呢??🤔

BSD 和 unix

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

图片描述

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

电话飞客

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

图片描述

  • 贝尔开始 使用 法律武器 消灭各种发行版
    • 最终 与BSD 对簿公堂
    • 闹得没人对 BSD的未来有信心
    • 也没有人 对于unix有信心
  • 但不论 unix 还是 bsd 系统
    • 都在使用c语言编程
    • 新的希望也在c语言中酝酿

教科书

  • 与二人同在 bell实验室的
    • Brian Wilson Kernighan
    • a.k.a bwk

图片描述

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

教材

  • 在当时的环境中

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

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

图片描述

  • 因为 c的目的 就是让人 像玩一样编程
    • 而不是 记忆各种cpu汇编指令

成书

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

图片描述

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

风借火势 火借风威

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

图片描述

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

入门 封面

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

图片描述

  • 这本书里面什么样呢?

原文

图片描述

  • 形成文化

出处

  • hello world 出现在
    • 原书13页

图片描述

  • 当然最开始的这个案例
    • 还是手写的

手稿

  • 主函数 叫做 main函数
    • 里面输出函数 叫做 printf函数
      • 输出的内容就是
        • Hello, world!
        • 这句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编的

图片描述

遗传变异

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

图片描述

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

基础

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

图片描述

  • 对今天的影响

应用开发

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

图片描述

  • 后来 在linux基础上

    • 又出现了 Android
  • c语言的作品 非常多

    • gcc
    • vim
    • python

延续

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

图片描述

总结

  • 程序员的浪漫(hello world)

    • 不是 从来就有的
    • 来自于 unixc
    • unix 是 今天操作系统的源头
    • c语言 是 今天 各种编程语言的 源头
  • 最早的 编程语言学习

    • 是从那张打字机用纸的手写代码 起源的
  • 输出用的函数名 printf(打印)

    • 也是 从那个时候来的

图片描述

  • 等等!
    • 计算机里面 不都是 0和1 吗
    • hello中的 字母h 是从哪里来的呢?🤔

图片描述

  • 我们下次再说!👋