当前课程知识点:计算机文化基础 > 第4课:最熟悉的陌生人APP > 我们使用的软件是怎么来的? > 软件是怎么来的2
咋一看
我们会看到
汇编语言
似乎能够读懂
比如说
我们来看
这上边的语句
第一条
push
这我们能知道
是往某一个地址里面写数据
但是有可能我们就会
看不懂后边的百分号ebp
这样的信息
那是代表是一个寄存器的地址
这就绕不开了硬件
那也就意味着
我用汇编语言来编程
它的门槛仍旧很高
我仍要了解硬件的这样的一些细节
所以汇编编程
有点类似于我们的
英文机器代码
那么如果我们还是希望
使用高级语言程序设计来
完成这样的编程
那我们就需要
通过一个特殊的翻译程序
把我们的高级语言编写的
程序代码翻译成
机器能够识别的二进制代码
让计算机识别和执行
那这样的翻译
通常有两种方式
一种是编译方式
另外一种是解释方式
我们熟悉的C C++
这样的一些编程方式
它采用的就是一个
编译方式
那就在程序运行之前
我们要将我们编写好的这个程序代码
要翻译成机器代码
然后再来运行这个
翻译好的这个程序
所以刚才的这个hello world
这个程序为例
我们来看一下
这个过程
我们看到
在编写好的这个源代码
通过一个特殊的一个编译器
这样的一个程序
就进行了代码的一个转换
这个具体过程就是把
预处理好的文件
经过一系列的
词法分析
语法分析
语义分析
以及代码的优化
这样的一个过程
把它翻译成了汇编代码
然后再由汇编器
完成把汇编代码
再一一对应的转换成了
二进制机器代码
不过到这个环节
我们会发现
虽然计算机能够识别这个二进制的代码
但是它还不能够执行
因为代码还不够全
哪一些不够全呢
比如我们可以看到
在源代码当中
它有一个函数调用
printf
那么到了汇编语言
它有个call调用
同样在调用实现
在屏幕上呈现hello world
这样的一条语句的
这段代码
其实并没有真正装入到
程序里边来
所以
我们还需要有一个环节
那就是链接器
由链接器把刚才
我们涉及到的这样的函数调用
所涉及的这个代码
也就把它装配进来
让它变成一个完整的
可执行的二进制代码
这也就是我们通常意义上的
可执行的.exe文件
这时候
如果我们运行这段代码
这个文件
那么它就可以完成
在屏幕上显示
hello world
这样的一个过程
所以这是一个
编译方式的一种编程方式
那好
我们再来看
在这过程当中
可能有同学就会问
为什么我不做一个翻译器
直接一竿子插到底
而在这个图中出现了汇编器
由汇编器翻译机器代码
那是因为
我们刚开始说
汇编语言
它和机器代码之间
它有一个一一对应的这样的关系
它是一个面向机器指令的
这样的一种特点
因为不同架构的CPU
它的机器指令是不一样的
所以
如果我们有了汇编器的帮助
那么我们在开发高级编程语言C
或者C++
或者FORTRAN PASCAL
等等这样的高级语言的时候
我们只需要关注的是
重新去设定它的词法规则
语法规则
语义规则
体现它的高级语言的特点以外
它就可以完成一个面向C
或者面向C++的
这样的一个编译器
所以说编译器是面向高级语言
而底层的这个细节交由
汇编器来完成
了解了第一种编程方式后
我们再来看另外一种编程方式
解释方式
解释方式的编程
不需要提前完成翻译这个过程
我们对比着来看
如果说
我们的编译方式
它是一个全文翻译
那么也就指的是
我要全部完成翻译以后
我才能够进行执行
那么
解释方式就有一点类似于
我们的同声翻译
边翻译边执行
所以这样一对比
大家就很容易看出
解释方式的这样的执行效率
肯定没有编译方式的执行效率高
那为什么在目前的Web开发
还多采用这样的方式呢
解释型的这样的程序设计语言
我们的Python
为什么会在近十年来
它增长最快
并且成为越来越流行的语言呢
虽然我们说
Python这个名字
听起来有些吓人
那为什么有这样的一个变化呢
那是因为早期我们的编程
偏重于计算
更看重的是CPU的效率
编译的方式
就成为编程的一种主流
而如今
随着我们的外部应用开发
越来越流行
人们就更需要这种
偏向业务逻辑的
这样的一种编程
比如我们更注重的是
开发效率
让我的编程的门槛
降低降低再降低
比如我们刚才看到hello world这个程序
如果说用Python来编写的话
就会有很多方式
现在我们给大家
屏幕上看到的
这就是其中的一种方式
我可以先把它的源程序
编写出来
而我们看到
在它的源程序当中
就是一条指令print
打印输出hello world
很简单
而这样的一条指令
存为.py这样的源文件以后
执行时候怎么来执行
它只要直接交给它的解释器来完成
而这解释器它具有一个
最基本的能力
就是它可以
按语句单位来执行具体的
这样每一条指令
这样的话就大大降低了
编程的门槛
而我们常见的JavaScript
这样的脚本语言
也属于这一类编程语言
相比而言
虽然我们的C和C++
称之为叫高级语言
但实际上
它们都是一些专家级的语言
因为它们的编程方式涉及到的
底层的这样的知识偏多
所以使得每一个人
如果要成为C编程
或者C++编程专家的话
那么他都需要去遵循这个
一万小时的法则
要用机时给泡出来
但如果你要用解释性的语言上手的话
这就非常地容易
了解软件是编程来的
那么也就能够理解
软件是什么了
它主要包括
完成特定功能指令集
程序这部分
以及程序运行所需要的数据
还包括了
帮助我们使用的那些帮助信息
等等这些各种各样的资料文档
就像我们这张图标
所呈现的那样
所以根据面向对象的
这样的层次和它的工作层次来看
我们的软件又分为了
系统软件和应用软件
这两大类
那在我们使用软件的时候
我们需要在软件授权的
许可的前提下
合法的来使用
所以依据许可方式的不同
我们就可以看到
软件分为很多种类
专属软件
自由软件
共享软件
免费软件
公共软件等等
我们最熟悉的office
自由的办公自动化套件
Windows这样的操作系统
它们都属于专属软件
那么它们都是要付费的
这样的商业化的软件
而相对应的那就是自由软件
最熟悉不过就是我们的Linux
而共享软件
大家经常会通过共享软件的方式
获得一些软件的试用版
为的是能够付费去使用它的商品软件
那么免费的软件
和公共的软件又是什么呢
留给大家百度一下
好了
到此我们就认识了
武装延伸计算机硬件性能的软件
作为一台能够工作的计算机来说
它就包括了硬件
也包括了软件
所以它有一个正式的名称
叫计算机系统
那么软件是怎么让硬件工作的
特别是软件中的战斗机
操作系统
是怎样让使用者隔离了
硬件的难度
接下来
我们给大家一一进行解释
-由一个短片引出......
-梳理IT产业大脉络(上)
-梳理IT产业大脉络(下)
-你的第一门计算机入门课
--课程介绍及要求
-实践:图像处理入门
--实践小作业要求
--操作前的几点准备
-第1课习题作业
-第1课导学帖
--第1课导学帖
-现代计算机为什么是电子数字的?
-二进制与十进制有什么区别?
--了解二进制
-为什么莱布尼兹没有认识到二进制的重要性?
--与、或、非
-从ENIAC到现代通用计算机
--新材料带来新发展
-摩尔定律会失效吗?
--摩尔定律失效
-讲座:计算机世界中的巨无霸
-参观:感受世界巨无霸(太湖之光)
--神威太湖之光简介
--探秘神威太湖之光
-参观补充:走进济南国家超算中心
--走进国家超算中心
-实践:我的计算机有多快?
-第2课习题作业
-第2课导学帖
--第2课导学帖
-数码相机是如何“计算”出一张数字照片?
--如何拍摄彩色照片
-认识图像数字化过程中的采样和量化
--采样和量化
-计算机是如何感知声音波形的?
--声音量化三要素
-换一种思路来数字化文本信息
--字符集的发展历程
-实践:常用网络资源下载
--常见下载方法介绍
--常见文件类型下载
- 第3课习题作业
-第3课导学帖
--第3课导学帖
-软件解决的目标是什么?
--软件的目的是什么
-我们使用的软件是怎么来的?
--软件是怎么来的1
--软件是怎么来的2
-操作系统拥有什么样的神力?
--操作系统的演变1
--操作系统的演变2
--CPU的管理调度
--虚拟存储技术
-访谈:如何成功研发一款手机APP
-实践:如何利用注册表进行系统优化
--注册表概述
--注册表与信息安全
-第4课习题作业
-第4课导学帖
--第4课导学帖
-数字存储前言
--梳理数字存储历史
--磁、光存储介质
--半导体存储介质
-怎样在存储介质上表示1和0?
-怎样从存储介质读取1和0?
-如何找到所需的数据?
-实践:文章排版基本技能
--引言
--中文输入
--图文混排
--页面设置
--利用表格布局标题
--分栏和首字下沉
--设置页眉与页脚
--设置插图润色排版
--LaTeX入门
-第5课习题作业
-第5课导学帖
--第5课导学帖
-演示文稿制作准备
--操作前的几个概念
--实践前的环境准备
-制作演示文稿
--设置超链接按钮
--设置超链接文本
-作品赏析
-第6课习题作业
-第6课导学帖
--第6课导学帖
-联网目的和资源共享模式的变迁
--资源共享模式
--异构网互联
-物联网连入互联网
--互联网与因特网
-访谈:PC在智能穿戴生态系统中的定位
--对话联想(上)
--对话联想(下)
-参观:联想创新中心掠影
--探秘联想创新中心
-第7课习题作业
-第7课导学帖
--第7课导学帖
-从网络组织来描述计算机网络
--计算机网络的定义
--网络软件
-从功能角度来认识计算机网络
--网络体系结构
--IPv4(上)
--IPv4(下)
--IPv6
-实践:网络不通怎么办
--网络连接
-第8课习题作业
-第8课导学帖
--第8课导学帖
-认识图像传感器
--认识图像传感器
--图像传感器的应用
--图像传感器的市场
-图像传感器的应用
--在汽车中的应用1
--在汽车中的应用2
--物联网中的应用
-了解图像传感器技术
--图像传感器的技术
-图像传感器的挑战
--问题与挑战
-讲座:如何在大数据中精准生活
--走进大数据
--生活中的大数据
-实践:HTML入门实践
--HTML作业要求
--HTML基本标记
--综合样例(上)
--综合样例(下)
-第9课习题作业
-第9课导学帖
--第9课导学帖
-认识搜索引擎
--这就是搜索引擎
-信息检索背后的关键技术
--海量数据的获取
--搜索结果排名
-搜索引擎的未来
--情境感知的搜索
--社会化搜索
--智能搜索
-实践:Aminer学术搜索
--Aminer介绍
-第10课习题作业
-第10课导学帖
--第10课导学帖
-信息安全的基本要求
--早期的计算机安全
-新型的网络攻击有哪些
--信息泄露
--移动安全
-未知攻 焉知防
--未知攻焉知防
--未知攻焉知防2
--信息加密
--安全防范原则
-实践:Excel实践
--实例操作
--实例操作2
--实例操作3
--绘制图表
-第11课习题作业
-第11课导学帖
--第11课导学帖
-回顾与展望
--回顾与展望1
--回顾与展望2
--回顾与展望3
--回顾与展望4
-什么是计算
--什么是计算
-访谈:信息技术交叉应用
--对话风投专家1
--对话风投专家2
--对话风投专家3
-嘉宾分享:闲谈数字产业创新
-第12课习题作业
-第12课导学帖
--第12课导学帖