这里顺便说下,之前发过一帖,讲述失之交臂的三次财务自由:原始股故事;技术优势故事;房产故事。
看帖者首先要清楚,原始股故事是90年代早期、技术优势是90年代中期、房产故事是90年代后期。真正了解的人又有几个?况且,首先就说明是失之交臂、没有很好地抓住机会。原始股和房产确实是眼光不够长远,而技术优势是由于埋头于技术不善营销而放弃机会,与原始股、房产是两码事。个别人觉得总算找到吐槽机会了,冷嘲热讽、阴阳怪气,没意思。 在头条分享,一是让经历过的人重温历史;二是给没经历过的人了解历史。不喜欢就不要点进去或直接叉掉就是了,谢谢!
以下为标题正文:
标题的电脑是泛指,一切和数码相关的产品,比如手机、平板、笔记本、台式电脑、人工智能设备,等等统统包括在内。 顾名思义理解成电子脑,就准确了。
软件是用编程软件编的,编程软件又怎么来的?
用一句话回答,就是: 编程软件是从0和1来的。
实际上,再复杂再高端的计算机(或叫电脑)技术,都是基于0和1两个二进制数码。因为0和1 两个状态最容易用电路实现,电平(电压)高低、电流有无、开关通断,等等。其中最常用到的就是半导体管的通断。
0和1 既可以表达数值(比如 2位二进数 00、01、10、11,可以表示0~3,4个十进数。以此类推,8位二进数可以表示0到255 ,256个十进数。等等);这构成计算机运算和处理的数据来源,计算机的各种数据(或信息)都建立在这基础上。
0和1 又可以表达 2个逻辑状态(比如有、无;高、低;是、否;开、关,等等)。这构成计算机逻辑(逻辑:简单理解就是因果关系)运算的基础,计算机的各种功能都建立在逻辑运算(或叫逻辑推理)基础上。
为什么说二进制数码,而不叫数字,就是因为二进制 0和1 的数值和代码(要做的事)两个属性。
比如,在某 CPU 中,面对 0010 0100 。如果认作数值,就是十进数36;如果认作代码,就是将随后的2个数相加。
怎么区分数值和代码,是依据事先规定好的位置决定的。按照一定的规则,规定要做什么和要用到的数据在哪,就构成了面向CPU的计算机基础指令(简称计算机指令)。
有了计算机指令,就要考虑如何实现规定好的计算机指令。这需要一整套能够实现各种逻辑和算术运算的电路。这种电路,从1946年第一台电子计算机诞生,先后历经电子管(形似过去的长筒状灯泡,具备现在半导体管功能)、半导体分立元件(三极管、二极管)、小规模集成电路、中大规模集成电路、大超大规模集成电路时代。
无论哪一个阶段,无非都是围绕计算机如何实现规定的指令功能。首先,要选择计算机指令的规格:长度(以字节计,见下说明)、操作码(处于指令中首部,定义指令做什么)、操作数(定义指令需要的数据或指明数据在哪里)。
一种CPU对应一套指令(几十到几百条不等),称为指令系统。以8位计算机为例,操作码通常为1字节(可以扩展为2字节)。一条指令操作码必有(表明做什么),操作数视情况可以0字节(用不到数据)、1字节、2字节。
有了CPU 能够执行的指令,就象汉语文有了基本的单字(词)。编程,最终愿望无非是要用这些字(词),书写流芳百世的长篇巨制。但是,且慢!一口吃不成一个胖子!你必须从识字开始(就是要精准理解每一条(类)指令的含义,这要举一反三而后死记);要学会组词、造句(编写简单程序);要学会看图说话、学会写作短文(编写一些具有应用价值的程序);要学会写作各种题材记叙文、散文、小说直至长篇巨制。
好了,这就是一个35~40年前程序员的成长历程。太艰难了!
本人曾用“死去活来”形容进阶过程:1)广义的—首先要死死记住指令系统每一条(类)常用指令的精确定义,然后是灵活运用指令编写能完成各种任务、实现不同功能的程序。 2)狭义的—熟练掌握这门技术,必然要学得死去活来。
还没完!指令采用二进制数码或十六进数码(0~9、A~F)表达,称为机器码(CPU能直接识别执行的形式),早期也采用机器码编程。但采用机器码编程,难认难记非常不便(00~FF,256种组合对应256条指令,要背下来真心不易。本人倒是用得实在太多了,不经意间就背下来了)。
于是,人们构造了能帮助识别与记忆的英文助记符代替机器码(或称机器指令),只要能认三五十个英文单词,就能较好的记住这些指令。助记符又称符号指令,它和机器指令是一一对应的,所以运用符号指令编程也就意味着运用机器指令编程。符号指令配套编程所需的辅助符号(称伪指令)和数据,构成所谓汇编语言。
只不过,符号指令程序(称汇编语言程序)要通过一个简单的汇编程序(传统术语)转换成CPU能直接执行的机器指令程序。这个过程,就是最底层的程序设计(编程),凡是涉及计算机处理的系统(包含手机),都必须具备涉及计算机系统最底层硬件资源(CPU内部资源、内存、外存、IO接口等)的操作(BIOS:基本输入输出系统)。
汇编语言固然可以直接作用于CPU底层(汇编语言又称低级计算机语言),但毕竟事无巨细都要面面俱到,太过繁琐了,编程效率也太低了。于是人们又开发了许多中级计算机语言(如C)和高级计算机语言。直到编写出很多很多优化后的高效功能模块(积木块),定义好通信接口,供使用者直接调用,实现相应功能。现如今,编程,不过是根据需求选择相应功能模块搭搭积木而已(当然,要搭得好搭得妙,悟性灵性也必不可少)。只有开创性的大型软件架构(框架)的规划设计才真正属于高端技术。
至此,对于题目问题的已经有了答案,纵向而言(语言层次的提升方向,而不是扩大应用面),自底而上,语言层次的不断提升,都是对编程软件的贡献!而编程软件的不断凝聚、升华,终将形成自动化、智能化编程氛围。但是,智能化终究仅仅是集合了人类智慧并且受控于人类智慧。
如果有那么一天,智能化编程导致智能发散而反制人类,那将何尝不是人类的悲哀。
附录1)长度:以字节计,1字节为8位二进数。为方便读写常表达为十六进数,4位二进数一组为十六进数,如二进数0000~1001及1010~1111 分别对应十六进数 0~9 及A~F 。咱们车牌号就是十进数不够用扩展为十六进数的(后来再扩展有些变化)。
附录2) 世界上第一台电子计算机埃尼阿克(ENIAC),诞生于1946年2月14日。ENIAC长30米,宽6米,高2.4米,占地面积约170平方米,重达30英吨,耗电量150千瓦。它包含了18000 个电子管(形似过去的长筒状灯泡,具备现在半导体管功能),计算速度是每秒5000次加法。
为什么有人说CPU是人造物的巅峰?
可以这么认为。
软科学,大概指只需人类头脑思维就能产生;
硬科学,则是需要通过物质加工而成。
CPU 属于软硬科学结合的产物。
说软,CPU 的工作原理以及 赖以工作的电路,都是人类智慧的结晶;
说硬,制造出 CPU 的一整套工艺流程和设备,尤其是制作 CPU的超大规模集成电路设备(如光刻机等),都属于顶级水平。
更有甚者,是基于CPU 而运行的各种软件系统,对于现代社会已经“无微不至”、无孔不入,渗透到社会生产生活的每一个角落。这种日新月异的变化将不断推进而没有止境。
如果一定要把还没实用化的探索也算进去,那就无解了。
为什么不把电脑当作一台PLC来使用呢?
PLC称为可编程(逻辑)控制器。顾名思义,首先是控制器、然后是可编程。主要用于工业控制,配备便于学习掌握的专门控制语言(仅须掌握十几种功能指令就能实现常用控制)。尤其在早期(20多年前),具备常规继电-接触电控知识的电工能够较快上手,掌握控制编程与运用。
所谓PC,称为个人计算机,这是比较广义的概念(后来干脆成为电脑的代名词)。既可以家用、办公等普通运用,也可以用于控制。不过,用于工业控制或更高级的军用控制乃至航空航天控制,那要求将是云泥(天壤)之别! 适应恶劣环境(抗极端温度及物理化学等干扰)的可靠性要求极为严苛,造价是几倍到几十倍不等。
当然,上述PLC其实也是专用的易于使用的工业PC。
现如今,PLC也发展成大型、超大型,既可以相对独立运行、也可以联网构成控制网络,下级设备可以是数控设备、工控(机)设备以及其它智能化设备,进而构成无人车间甚至无人工厂(CIMS)。
顺便说下,本人90年代初独立研制了独具四个程序工作区(各区容量1600条指令)的40点的PLC(24 I 、16 O)。

如若转载,请注明出处:https://www.vsaren.org/2527.html