[oeasy]python052_[系统开发语言为什么默认是c语言

简介: 本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。

[系统开发语言为什么默认是c语言

[趣味拓展]c语言发祥史_c是如何成为第一系统语言的

  • 上次我们了解了 标识符 要求
  • 字符 为 字母和下划线
  • 后面字符 为 字母和下划线 外加 数字

  • 使用isidentifier函数 可以验证
  • 标识符 是否合法
  • 规则 可以追溯到 c语言
  • c语言 为什么
  • 会影响到 python 呢?🤔

回顾

  • c语言
  • 源自 美国电报公司 贝尔实验室
  • 1969年 贝尔实验室 诞生 两个杰作
  1. unix
  2. c语言
  3. 兄弟俩 互相影响

  • 伯克利大学
  • 从unix改出来的 自己的发行版
  • 叫做 伯克利发行版
  • 也就是 bsd

份额

  • bsd市场份额
  • 慢慢 追上unix
  • 逐渐 成为主流

  • 操作系统
  • 有 巨大的商业潜力
  • 美国电报公司
  • 因为 有垄断案
  • 不能 销售软件

bsd 和 unix

  • 垄断案 最终 判决
  • 美国电报公司
  • 拆成 个小公司

  • 美国电报公司
  • 终于 可以销售软件了
  • 开始 使用 法律武器
  • 消灭 bsd发行版

分支

  • 诉讼 bsd的案子
  • 之前 没有判例
  • 情况 长期 不明朗
  • 爱好者们
  • 不敢学 bsd
  • 也不敢学 unix
  • 怕学了也白学

  • 法律问题 和 开发问题
  • 绞在一起
  • 死结
  • 怎么办呢?🤔

风借火势 火借风威

  • 硬件 在加速进化
  • 新cpu架构层出不穷
  • 各种 汇编指令集 彼此不通

  • 二进制文件 不能 跨架构运行

跨架构

  • 不同指令集的 架构
  • 只要 有c语言 编译器
  • 就可以 跑类unix (unix-like) 系统

  • 这使得 c语言
  • 跨架构 across architectures
  • 可移植 portable
  • 成了 默认唯一选项

  • 计算机科学 属于
  • 电子工程的 一种应用
  • 没有 这个学科
  • 更没 学习资料
  • 那怎么 学c语言 呀?🤔

教科书

  • 做unix的 汤普森 和 里奇
  • 在 bell实验室 有个同事
  • Brian Wilson Kernighan
  • a.k.a bwk

  • 开始 和里奇 一起
  • 给 c语言 出书

教材

  • 这本书
  • 很薄
  • 轻松的语言风格

  • c的特点 就是
  • 让人 像说话 一样编程
  • 不用记 cpu汇编指令
  • 这可 方便多啦!!😄

成书

  • 有了 学习资料
  • 就有 更多人学
  • 更多人 学
  • 就有 更多人参与其中
  • 更多人可以答疑
  • 更好的案例
  • 正反馈 逐渐成型
  • 需要实践 就到unix或bsd上动手
  • 写代码、编译、运行
  • 形成了 编程文化的 源头

  • 这书 长 什么样 呢?

封面

  • 封面
  • 强调一个C字

  • 里面呢?

原文阅读

  • 语言 简洁 明确

总结

  • 贝尔实验室 诞生了 两个伟大的作品
  1. unix 系统
  • 美国电报公司
  • 压制bsd
  • 想 垄断操作系统 市场
  1. c语言
  • 写起来简单
  • 还能 跨架构
  • 说明书里 还有
  • 我们的老梗 呢!

相关文章
|
7月前
|
Python
【Python进阶(四)】——魔术命令
【Python进阶(四)】——魔术命令
|
存储 Java 程序员
Python基础语法第七章之文件
一个机器上, 会存在很多文件, 为了让这些文件更方面的被组织, 往往会使用很多的 "文件夹"(也叫做目录)来整理文件,实际一个文件往往是放在一系列的目录结构之中的,为了方便确定一个文件所在的位置, 使用 文件路径 来进行描述。描述一个文件的位置, 使用 绝对路径 和 相对路径 都是可以的. 对于新手来说, 使用 绝对路径 更简单更好理解, 也不容易出错.. 相对路径需要先指定一个基准目录, 然后以基准目录为参照点, 间接的找到目标文件. 咱们课堂上暂时不详细介绍.使用 close 方法关闭已经打开的文件.
73 0
|
存储 编解码 前端开发
Python(三十六)python文件操作常用模块(一)
一:Python pickle模块:实现Python对象的持久化存储 Pickle模块,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。 pickle 是 python 语言的一个标准模块,安装 python 的同时就已经安装了 pickle 库,因此它不需要再单独安装,使用 import 将其导入到程序中,就可以直接使用。 1:dumps():将 Python 中的对象序列化成二进制对象,并返回; 语法: ini 复制代码 dumps(obj, protocol=None, *, fix_im
106 1
Python(三十六)python文件操作常用模块(一)
|
缓存 Shell Python
Python(三十五)python文件操作(2)
5:文件指针操作函数 tell() seek() (1):tell()判断文件指针当前所处的位置 lua 复制代码 f = open("log.txt", 'r', encoding="utf-8") print(f.tell()) print(f.read(10)) print(f.tell()) 输出: arduino 复制代码 0 https://gu 10 (2):seek()将文件指针移动至指定位置 语法: bash 复制代码 file.seek(offset[, whence]) 其中,各个参数的含义如下: file:表示文件对象; whence:作为可选参数,用于指定文
61 1
|
Shell Python
Python(三十五)python文件操作(3)
5:文件指针操作函数 tell() seek() (1):tell()判断文件指针当前所处的位置 lua 复制代码 f = open("log.txt", 'r', encoding="utf-8") print(f.tell()) print(f.read(10)) print(f.tell()) 输出: arduino 复制代码 0 https://gu 10 (2):seek()将文件指针移动至指定位置 语法: bash 复制代码 file.seek(offset[, whence]) 其中,各个参数的含义如下: file:表示文件对象; whence:作为可选参数,用于指定文
63 1
|
前端开发 Shell C#
Python(二十三)python字符串比较
Python字符串比较本身是属于python字符串的一部分。 为什么把他拿出来单独说呢,我之前是做web开发,也接触过C#开发,在这两门语言中的字符串比较与python中的字符串比较稍有不同 Python可以使用相等(==)和比较(<,>,!=,<=,> =)运算符执行Python字符串比较。 没有比较两个字符串的特殊方法。 而我目前接触到的其他几门语言 字符串比较好像是只有 == 与 != 两种操作,当然,我也没有在除python的语言中用过 >= 与 <= 来比较字符串。 我们先大概了解下python字符串比较的规则与原理: 比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下
142 0
|
Linux Shell Python
Python(三十五)python文件操作(1)
5:文件指针操作函数 tell() seek() (1):tell()判断文件指针当前所处的位置 lua 复制代码 f = open("log.txt", 'r', encoding="utf-8") print(f.tell()) print(f.read(10)) print(f.tell()) 输出: arduino 复制代码 0 https://gu 10 (2):seek()将文件指针移动至指定位置 语法: bash 复制代码 file.seek(offset[, whence]) 其中,各个参数的含义如下: file:表示文件对象; whence:作为可选参数,用于指定文
72 0
|
Unix Shell iOS开发
Python(三十七)python文件操作常用模块(二)
一:Python pathlib模块用法详解 pathlib 模块中包含的是一些类,它们的继承关系如图 1 所示。 pathlib 模块的操作对象是各种操作系统中使用的路径(例如指定文件位置的路径,包括绝对路径和相对路径)。这里简单介绍一下图 1 中包含的几个类的具体功能: 1) PurePath 类会将路径看做是一个普通的字符串,它可以实现将多个指定的字符串拼接成适用于当前操作系统的路径格式,同时还可以判断任意两个路径是否相等。注意,使用 PurePath 操作的路径,它并不会关心该路径是否真实有效。 2) PurePosixPath 和 PureWindowsPath
69 0
|
Python
【Python入门篇】——Python基础语法(标识符与运算符)
【Python入门篇】——Python基础语法(标识符与运算符)
119 0
|
Python
Python中的各种装逼语法
Python中的各种装逼语法
167 0