什么是计算机语言?

什么是编程语言?

它们是怎么发展出来的?

浅浅说明这些过程吧

计算机语言,也就是计算机能处理和理解的语言,

现在世界上有几百种计算机语言,常用的有C,C++,JAVA,PHP,lua等等,这些都叫做计算机编程语言。

计算机编程语言只是我们人类能学习的语言,

对计算机来说是一种高级语言,

计算机真正能直接处理的语言是机器语言,

什么是机器语言?

其实就是二进制代码,

什么是二进制代码?

就是010101这样一串0和1的数字组合而已。

为什么计算机只能处理这样的一串01组合的数字呢?

原因是计算机内部使用了成千上万个微型的“通断型”电子开关进行工作!!

这些开关在任何时刻要么是通电,要么是断电。

该电路只有两种工作状态:通或断,所以只需要用0和1表示这两种状态!

多种状态的组合即多个0和1的组合。

为什么我们不直接学习机器代码呢?

你想想如果要你用一串0和1的数字去表示一句话或者是一个数学计算,有多困难,是不是很麻烦呢。

所以人类就想出了用其他语言替代机器语言然后再通过编译软件把高级语言翻译成机器语言,再由计算机去执行机器语言。

如果已经把我们人类所要表达的翻译成计算机能理解和处理的,

那么计算机理解和处理后如果反馈给我们人类呢?

那就需要把计算机输出的内容转化为我们人类所能理解的语言,然后显示在屏幕上。

那么也就需要一套翻译系统根据一套规则帮我们把二进制翻译成自然语言。

把英语翻译成汉语,其实就是根据语法规则和单词。那么其实计算机也是这样:

8位二进制数组合起来就有2的8次方(256)种不同的状态,

用8个可以开合晶体管来组合成不同的状态(256),来表示人类所能理解的数字和符号,
他们把这8个晶体管称为字节。

第一步:
把其中的编号从0开始的32种状态分别规定了终端接受后要作出的特殊的动作和行为
如收到 0001 0000, 终端就换行,收到0000 0111, 计算机就向人们嘟嘟叫

第二步:
然后把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,
一直编到了第127号,这样计算机就可以用不同字节来存储英语的文字了!
大家都把这个方案叫做ASCII!!

第三步:
世界各国为了可以在计算机保存他们的文字,
他们决定采用127号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,
一直把序号编到了最后一个状态255。
这种做法被称为扩展字符集!!!

等到中国人民开始使用计算机了,发现状态都被你们用完了,那我们如何来表示中文字符呢?
我们有6000多个常用汉字需要保存呢。

第一步:
把那些127号之后的奇异符号们直接取消掉!!

第二步:
一个小于127的字符的意义与原来相同,
但两个大于127的字符连在一起时,就表示一个汉字。
这样我们就可以组合出大约7000多个简体汉字了。
连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码!!

这些字符我们都叫他们”全角”字符,

而原来在127号以下的那些就叫”半角”字符(也就是占一个字节)了。

我们把这种汉字方案叫做 “GB2312″!!

但是中国的汉字太多了,后来还是不够用,
于是只要第一个字节是大于127就固定表示这是一个汉字的开始,
不管后面跟的是不是扩展字符集里的内容。
该方案被称为GBK标准!!

当时各个国家都像中国这样搞出一套自己的编码标准,而谁也不支持别人的编码
结果互相之间谁也不懂谁的编码。
如果想让电脑异域的东西显示汉字,就必须装上一个”汉字系统”,
专门用来处理汉字的显示、输入的问题,装错了字符系统,显示就会乱码。
一个叫ISO(国际标准化组织)的国际组织看不过去了,决定着手解决这个问题
做法是
废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!
这种方法俗称“UNICODE”!!!

UNICODE如何在网络上传输呢?答案是UTF!!
UTF8就是每次8个位传输数据,而UTF16就是每次16个位

现在我们所使用的计算机基本上所有的操作系统都自带了UNICODE和UTF8等基本的字符集,
这样的话操作系统就可以帮我们把计算机输出的二进制翻译成任意一种人类和民族都能能读懂的文字了。

浅出计算机语言与编程语言的发展路径相关推荐

  1. 浅谈资金发展投资行业的发展路径

    A股市场逐渐成熟,再也没有初期10年翻500-1000倍的暴利,在这种日趋价值投资的模式下,资管行业何去何从? "未来的资管行业,应当既能发挥创新资本形成.居民财富管理.资产交易定价.金融风 ...

  2. 程序员职业发展路径图:从菜鸟工程师到高级架构师

    http://www.sohu.com/a/249729952_355140 踽踽独行上下求索总是痛苦,如果有良师益友陪伴点拨必能事半功倍.从新手码农到高级架构师,要经过几步?要多努力,才能成为为人倚 ...

  3. SegmentFault 技术周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程

    函数式编程(Functional Programming),一看这个词,简直就是学院派的典范. 以至于从 Lisp 的创世,到 Scheme.Haskell.Clean.Erlang.Miranda. ...

  4. SpringBoot进击 | 一浅出:Spring Boot简单快速上手书

    为了后继的 Spring Cloud 学习和进阶,我们需要先行了解 Spring Boot. 1.前言 1.1 认识 Spring Boot Spring Boot 是由 Pivotal 团队提供的全 ...

  5. B端产品经理的发展路径思考(间歇性更新完毕)

    (以下文中会用第一人称讲述故事,纯属捏造,如有雷同,圈子真小) 我每次工作压力大,就会提笔码几个文字,换点自信心.也是我"反思昨天的路,展望明天的路"的方式.估计哥们又开始调侃了, ...

  6. SegmentFault 技术周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程 1

    函数式编程(Functional Programming),一看这个词,简直就是学院派的典范. 以至于从 Lisp 的创世,到 Scheme.Haskell.Clean.Erlang.Miranda. ...

  7. 浅谈×××技术的应用与发展

    浅谈×××技术的应用与发展 前言 虚拟专用网络(Virtual Private Network ,简称×××)指的是在公用网络上建立专用网络的技术.其之所以称为虚拟网,主要是因为整个×××网络的任意两 ...

  8. 未来编程语言的发展方向(1)

    Windows操作系统一路走来历经数个版本,每个版本在给人们提供新的功能和使用体验的同时也给Windows平台的应用开发人员带来不同的挑战:在这个过程中,<Windows核心编程>一书从& ...

  9. 计算机编程输入与输出,计算机编程语言的发展与输入输出设备的使用

    计算机编程语言的发展与输入输出设备的使用 辽宁大学学报 自然科学版第32卷 第2期 2005年 JOURNALOFLIAONINGUNIVERSITY NaturalSciencesEdition V ...

最新文章

  1. ZYNQ-7000如何生成从Flash和SD卡启动的镜像文件
  2. jquery 判断一个对象是否存在
  3. LOJ 数列分块入门6
  4. php 循环多条件,怎么循环带条件的数组
  5. java实验报告合肥工业大学_合肥工业大学数据结构上机实验代码与实验报告(全)github地址...
  6. 【每日算法Day 66】经典面试题:不用四则运算如何做加法?
  7. 夏宇闻《Verilog数字系统设计教程》 - 第1章 Verilog的基本知识
  8. Java 分布式解决方案
  9. java 水晶按钮_水晶按钮制作 jsp function调用java方法
  10. survival | 生存分析(3):生存曲线(下)
  11. 简单园区网络基本架构
  12. Postgresql适配国产化人大金仓(kingbase)
  13. 总分 Score Inflation(洛谷)
  14. JAVA与PHP之间进行aes加密解密
  15. LayaBox热更新问题
  16. Headless Services无头服务
  17. vc操作excel文件的类:CSpreadSheet,basicexcel
  18. Bit-Flip Attack: Crushing Neural Network withProgressive Bit Search 学习心得
  19. 最近电脑常见问题分享
  20. 京东云部署Javaweb项目和搭建个人博客

热门文章

  1. px2rem的食用方法
  2. 行测-言语类题目总结
  3. 微信小程序项目搭建医生挂号健康管理网站+后台管理系统|前后分离VUE.js
  4. Python 接口测试(五)
  5. PTA(每日一题)7-45 小霸王
  6. 摘自百度-JAVA学习方法http://wenku.baidu.com/view/0fbc7cf59e314332396893d4.html
  7. 504 压测geteway_热门开源网关的性能对比:Goku、Kong Tyk
  8. Activiti工作流入门教程
  9. 三个简单又靠谱的兼职,让上班族轻松赚钱!
  10. PowerPC PCI-E调试相关资料小结