计算机语言的思考

先有机器语言(都是一些01串),然后出现汇编(01串的助记符)学习难,应用难,移植差,小众阻碍计算机科学普及和发展速度,之后抽象出人类思考基本过程,出现C语言,随着科技进步,C语言不利于构建大的工程,然后出现面向对象语言(C++),然后更加集成化的脚本语言(Python等) 能让更多人接受更少的训练或者学习,能够享受计算机科技带来的便利,也是让人们更多的专注于设计和应用,而不是关注底层实现。有点类似于社会分工,古代每个人家里都有纺织机,每一家人自己纺线,织布做衣服,后来出来了卖布的商店,不用做布了,可以直接买布做衣服,到现在衣服都已经抽象出标准了,可以直接买需要的衣服,把人从织布做衣服中解放出来,做更有意义的事。系统想要复杂化必须有标准化规范化(汇编到C,C语言到C++,都添加的新的约束,越来越不能为所欲为了),当然会不停有新的规范被发明出来(新语言的诞生),系统复杂化带来社会分工,计算机系统也一样(研究语言的,使用语言的,研究内核的,使用内核的),软件行业也开始走向专业化,分工化(各种外包,还有云服务)。

 

面向对象语言,面向过程的语言区别在于,面向对象的语言如C++C语言基础上抽象并添加了一些限定规则,更好的抽象事物,约束性更强,复用性更好,抽象起来更有逻辑,它减少了灵活性,添加了规范性,其实各种语言的区别在于编译器的区别,编译器(实际是一个超级字符串处理程序,通信其实也是字符串处理,程序实际是硬件对字符串解析)管理这些规则,偷偷把函数名字改了,变量名字改了或者封装了,或者隐含特殊数据结构,最终都变成了机器语言,实质是内存地址中一个值,或者内存中一段机器代码段。从汇编指令集主要功能(对内存和寄存器值进行移动,逻辑判断和计算,跳转)看出来,程序实际上就是各种if..else以及对数值进行运算,用数值抽象出现实事物(状态机),根据各种if..else,执行一段过程,改变数值,也就是改变状态机状态。每一种语言的诞生应该是针对特性领域的特性设计的,每种语言有它特定语法,特定规范。


数据结构和算法,也就是容器和逻辑,不同的语言利于构建不同的容器(对事物的抽象),特定的逻辑(对流程的抽象),抽象度越来越高,更好的描述物理世界的事物(抽象建模,构建容器)和逻辑关系,更加符合人类的思维方式。根据从业人员的多年抽象经验,诞生了6大原则,23种设计模式。

  

程序只是人们设计的自动化工具,现实世界模型在计算机世界的投影抽象,就像现实世界中雇佣者和被雇佣者关系,用低级的语言好比C语言就好像招收了一个刚毕业的大学生,基本上对业务流程等的都不会,我们要手把手的教他们怎么做,但是可塑性强,高级语言好比python语言有很多成熟库可以调用,各种常用基础功能都已经封装,就像一个工作多年秘书,只需要较少的交流,就可以把任务派发下去,它都能较为智能的处理好,特殊任务除外。物种多样性,语言也有多样性,每种语言的诞生必定是满足了某种需求,必定有他的闪光点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值