PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?(二)

14 篇文章 0 订阅

PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?(二)

堆栈和模块化的优点有?

  1. 递归
  2. 功能分离到模块,可复用
  3. 封装作用域

堆栈和模块化的缺点有?

  1. 时间上:保存现场、还原现场的代价(另,高级语言编译“消除尾递归”节约部分成本)
  2. 空间上:爆栈的危险

C语言

C语言比起汇编多了什么东西?

  1. 编译器
  2. 表达式(相比汇编,可以处理多个操作数了。)
  3. 函数与模块{}(真·模块化,栈操作无需程序员完成)
  4. 类型(原子类型、结构类型、数组、指针)
  5. 头文件,库总之,C语言并没有比汇编多了新的特性,它只是把汇编的繁琐操作抽象出来,让编译器完成,减轻程序员负担。

在这里插入图片描述

编译器的作用是?
(减少程序员负担)

  1. 解析表达式,控制流(汇编中指令只有1-3个操作数,而表达式可以多个操作数)
  2. 模块和函数的抽象(完成堆栈中保存恢复现场的工作)
  3. 类型变量的管理(所有变量被替换成直接访问的地址,最快的访问速率)
  4. 代码优化

变量是替换成可以直接访问地址的?

a) 编译时的Meta-Data(struct的成员,数组的长度,以便替换到指令流;只在编译器中维护,编译结束后丢弃)

b) 计算出每个变量相对于该模块的偏移(一旦算出该偏移地址,将固定在执行码中,无法改变;就是说编译完成后,所有变量的偏移地址都固定下来了。)

c) 对变量的存储进行管理(所有的变量/内存地址的布置,都是在编译时确定的;也就是说,可执行码中没有类型信息,只有地址,任何数据都是地址来操作,完全和汇编类似。至于寄存器的安排,那是更下一层的类似缓存策略算法的结果。)

推荐观看:笨办法学Python!编程小白的第一本Python入门书!

注意
点击此群,一起交流学习
群号:Python编程资源裙
610380249

申请即送:
Python软件安装包,Python源码,Python100道经典练习题。在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值