编码进化

回忆上次内容

  • 上次 回顾了 字符编码的 进化过程

    • IBM 在数字化过程中

      • 作用 非常大
      • IBM 的 BCDIC 有 黑历史
  • 6-bit的 BCDIC
    • 直接进化成 8-bit的 EBCDIC
    • 补全了 小写字母 和 控制字符
  • 在ibm就是信息产业的年代
    • ibm的标准 怎么最终

      • 没有成为 行业的标准 呢?

ibm

  • ibm当时 确实 如日中天

  • 主机、终端是 自己的

    • 软硬件一体
    • ibm就是 整个数字世界
  • EBCDIC编码 本身就是
    • ibm内部 编码

      • 内部 通信协议
  • 外面 根本不知道
    • 就算 知道了
    • 也只有去 被动兼容的份儿
  • 网络时代来了
    • 计算机通信 大发展
    • ibm也想让 更多主机 加入arpa网

通信

  • 通信 当中

    • 共识 非常重要
    • 如果 几台主机编码方式 彼此不通
    • 是 无法通信的

  • 最先被搞疯的 是

    • ibm内部的人

      • Bemer
  • Bemer发现
    • 统一的 字符编码

      • 在组网时

        • 重要了!!!

无奈

  • 不同的编码 实在折磨他 够呛

    • 也没有 合适的 转码程序
    • 重要的是 没有编码的声明
      • 不知道对方 用的是什么编码
  • 就好像
    • 你能听到声音
    • 但不知道 去用哪国语言 来翻译

  • 大型机市场 不止 IBM一家

    • Honeywell
    • univac
  • 事实上 9种编码方式
    • 构成了 计算机的巴别塔
    • 各个公司 各自为政
  • IBM高层 不懂技术
    • 他们 不知道EBCDIC的缺陷
    • 毕竟IBM公司 是由销售来驱动的

COBOL - 纸带

  • IBM 在统计业务的 基础上

    • 对大型的商业机构 提供 可执行程序
  • 1959年
    • IBM 定制了 编程语言COBOL

      • Common Business-Oriented Language
    • 面向商业的 通用语言
      • Bemer 参与了COBOL的制定

  • 程序 被写在ibm的卡片上

    • 是 一种自记录式的 语言

COBOL - 电传打字机

  • 输入输出设备 变成了 电传打字机
  • 存储设备 变成了 磁带

  • 可COBOL语言 到底 长什么样子 呢?

COBOL - 终端时代

  • 有了终端 作为 输入输出设备

    • 终于可以 不看打孔卡片
    • 直观地看到 COBOL语言的样子了

  • 但是 任何语言

    • 篇章段句再复杂
  • 最终 还是要 落实到
    • 一个个字母上
  • 落实到字母
    • 就有 如何对字母编码的问题

EBCDIC的问题

  • 由于 EBCDIC 是 从BCDIC 过来的

  • 由于

    • 字母本身 并不连续
  • 判断 一个字符 是不是 字母
    • 要判断6个区间
    • 总共12次判断
    • 非常麻烦!
    • 增加了
      • 很多 没有必要的逻辑
  • 这些逻辑
    • 费时费力还费电
  • IBM经理层想的是
    • 更高业绩 和 更高提成
    • 铁了心想 要将EBCDIC进行到底
  • 铤而走险了 属于
    • 有了隐患 不及时修复

      • 一错再错

Proposal

  • Bemer 在 IBM内部无法获得 经理层支持

    • 但是 又得干 很多具体的事务
  • 大型商业机构(特别是银行)
    • 不光 要记录自己的数据
    • 彼此的交易记录 也需要被记录
    • 商务过程 需要程序化
      • 无人化

  • Bemer 开始在专业杂志上发请求

    • 寻求支持

      • 期待行业中 能有一个 更好的解决方法

组织 成立

  • ANSI(American National Standards Institute)的前身

    • American Standards Association’s (ASA)
    • 成立了 X3.2 子委员会
  • 委员 来自 于
    • 各大商业巨头 一线工程师
    • 了解 技术
    • 代表 各方利益

  • 在 X3.2第一次大会 期间

    • 成立了 X3.2.4 工作组
    • 专门想 怎么去解决 编码统一的问题
  • 这就不光是 IBM家的 事情 了
    • 综合协调 各巨头的利益

发布了标准

  • 1963年 X3.2.4 工作组

    • 发布了 ASA X3.4-1963 标准

  • 这标准具体长什么样呢?

总结

  • 这次 回顾了

    • 字符编码的新陈代谢
  • ibm 曾经的EBCDIC

    • 由于 字符不连续
    • 导致 后续 出现无数问题
  • 随着 网络的发展

    • 数据交换的 需要
    • 原来的小隐患
    • 现在 产生了 巨大问题
  • Bemer 联合各方巨头

    • 想要推出

      • 字符连续的编码集
  • 这新编码集 具体长什么样 呢?

  • 我们 下次再说!

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy

[oeasy]python0085_ASCII之父_Bemer_COBOL_数据交换网络的更多相关文章

  1. JsRender实用教程(tag else使用、循环嵌套访问父级数据)

    前言 JsRender是一款基于jQuery的JavaScript模版引擎,它具有如下特点: ·  简单直观 ·  功能强大 ·  可扩展的 ·  快如闪电 这些特性看起来很厉害,但几乎每个模版引擎, ...

  2. vue - 父组件数据变化控制子组件类名切换

    先说当时的思路和实现核心是父子组件传值和v-bind指令动态绑定class实现 1. 父组件引用.注册.调用子组件script中引用 import child from '../components/ ...

  3. vue中通过.sync修饰符实现子组件修改父组件数据

    vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 < ...

  4. 微信小程使用getCurrentPages函数操作父级数据

    微信小程使用getCurrentPages函数操作父级数据 let pages = getCurrentPages(); let prevPage = pages[pages.length - 2]; ...

  5. vue 父组件数据修改,子组件数据未修改

    页面: 父组件  <myfeedback></myfeedback>  子组件  <news></news> myfeedback.vue <te ...

  6. Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法

    一,子组件数据跟着父组件改变 父组件的代码 <template> <div class="home"> <img alt="Vue logo ...

  7. 子组件获取父组件数据 propsDown, 父组件获取子组件数据 eventUp

    (一) popsDowm 三种方法获取父组件数据:被动获得(1):主动获取(2). 1.被动获得: 父组件:v-bind: 绑定变量参数和方法参数:子组件:props 接收参数.可以在模板中直接使用也 ...

  8. 用angular怎么缓存父页面数据

    angular做单页面应用是一个比较好的框架,但是它有一定的入门难度,对于新手来说可能会碰到很多坑,也有许多难题,大部分仔细看文档,找社区是能解决的. 但有些问题也许资料比较少,最近遇到过一个要缓存父 ...

  9. js子页面获取父页面数据

    做页面预览的时候,数据没有存入数据库,但是要打开一个页面进行预览,询问众大婶,原来是这样来做. 1.父页面 <input type="text" id="name& ...

  10. Vue2.x中的父组件数据传递至子组件

    父组件结构 template <template> <div> <v-girl-group :girls="aGirls"></v-gir ...

随机推荐

  1. apisix~集成服务发现注册中心

    摘要 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器.如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知.再者因不能及时更新这些信息, ...

  2. CSS——动画

    @keyframes 规则 要创建 CSS 动画,您首先需要了解 @keyframes 规则,@keyframes 规则用来定义动画各个阶段的属性值,类似于 flash 动画中的关键帧,语法格式如下: ...

  3. go encoding/json 替代者

    https://github.com/json-iterator/go 可以替代官方包encoding/json 提升json编码和解码效率

  4. Pyomo基础学习笔记:建模组成要素的编写方法

    1.Pyomo 简介 pyomo文档[数学建模]优化模型建模语言 Pyomo 入门教程 - 知乎 (zhihu.com) Pyomo 是基于 Python 的开源软件包,主要功能是建立数学规划模型,包 ...

  5. INFINI Easysearch 与兆芯完成产品兼容互认证

    近日,极限科技旗下软件产品 INFINI Easysearch 搜索引擎软件 V1.0 与兆芯完成兼容性测试,功能与稳定性良好,并获得兆芯产品兼容互认证书. 此次兼容适配基于银河麒麟高级服务器操作系统 ...

  6. Apollo启动配置排查,超时时间的配置

    Apollo启动配置排查 1.排查下来是 本地的服务 apollo 配置fake发布到线上去了.2.或者是引用的apollo jar包中指向的apollo服务器地址是否正确. 3.超时时间的配置 ## ...

  7. 社会工程学——进行IP追踪

    如果目标对象有一个公开的邮箱,可以往这个邮箱地址发试探性的Email,然后看看该邮件是否有[回信],从而了解对象是否在线.(注:这招是社会工程学的基本伎俩) 说一个稍微高级点的邮件技巧--[不依赖回信 ...

  8. 海量数据处理利器 Roaring BitMap 原理介绍

    作者:来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种c ...

  9. QT学习:09 QByteArray

    --- title: framework-cpp-qt-09-QByteArray EntryName: framework-cpp-qt-09-QByteArray date: 2020-04-16 ...

  10. LLM并行训练4-megascale论文学习

    算法优化 并行注意力机制 \[串行版本: y = x + MLP(LayerNorm(x + Attention(LayerNorm(x)))) \] \[并行版本: y = x + MLP(Laye ...