1.语言的本质

 

提及语言,离不开对计算机系统以及操作系统的讨论,因为毕竟先有了计算机系统,(指令集-机器码-汇编-c)进而有了操作系统,才有了各种高级计算机语言。

语言,只是为了指挥计算机才出现的,cup能理解的语言只有机器码,能理解的机器码的集合,叫做cpu的指令集,指令集的各个家族,对应各种cpu架构,随着操作计算机的需求的增加,使用机器码太不好理解,于是发明了汇编语言,由助记符理解指令,即使如此,还是满足不了需求,于是出现了c语言和编译器,还是满足不了需求,于是对cpu的一些通用功能(如io/文件/进程)进行了封装,形成了操作系统,操作系统提供了使用cpu的一些接口.

进而出现了一些高级语言,开发效率更高,能够提供代码封装,比如结构体啦,对象啦,包啦,这些语言无非就是告诉计算机办事,这些高级语言都离不开编译器,因为只有翻译成二进制机器码,才有可能被计算机执行,高级语言的编写,要么直接调用操作系统的接口,要么自己写一些cpu可以理解的指令。

对计算机体系结构和操作系统的理解:

小白篇:推荐 程序是怎样的跑起来的  计算机是怎样跑起来的  开胃菜:网络是怎样连接的

入门篇推荐-任爱华的 操作系统实用教程、 深入理解计算机系统、  现代操作系统 、计算机组成原理软件与硬件接口

内核的理解:推荐Linux内核源代码情景分析可编辑带目录上下两册   非常解惑

编程篇推荐:UNIX环境高级编程中文版   是所有高级语言编程之母

网络和数据库:也是一个开发人员必备技能:自己可以去搜索学习,数据库方便,关系数据库,菲关系数据库,都很多网上教程,

数据结构和算法:研究怎样速度更快更省内存的方式让计算机干活,即让马儿跑得快,又让马儿少吃草。


  • 语言的本质:指挥cpu的指令

指令无非:操作符+操作数

操作符:就那些,cpu很笨的,只能执行一些数学运算和移位运算以及逻辑运算,比较运算等等,这是因为数字电路就这些功能。

操作数:要么放在内存,要么放在寄存器中,操作数需要能区分开,那就用地址区分,操作数的大小要明确,那就用数据类型区分。


  • 高级语言的本质:

高级语言比较聪明,虽然编译后最终归为指令(操作符和操作数),那在此之上,为了快速出代码,又发明了,复杂数据类型(更大的数据块),流程控制(分支/循环),函数(对语句和流程的封装),类/结构体(对函数以及数据块的封装),(对类和函数的封装)。

每一种高级语言基本上就干上面这点事,高级语言的语言,无非就是讲解:

操作符  操作数(基本数据类型)  复杂数据类型  流程控制 函数 类  这些东西的定义和使用规则。

===总起来说,me认为编程就是(指令=操作符+ 操作数 (函数=操作块)(数据类型组成数据块比如结构体)(类=操作块 +操作数据块)===

从某种意义上讲,我认为,函数是一种扩展的宏观的操作符(微观操作符如+-*\)。程序的组成单位-即程序实体-只有操作符和操作数。而执行的单位是语句,语句=操作符+操作数。函数=操作符,数据(如基本类型复合类型结构体等)=操作数。类是(自带操作符-函数,和操作数,的类型,是一种封装)<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值