返回信息流RT,摸不着头脑
这是一条镜像帖。来源:北邮人论坛 / python / #16358同步于 2016/10/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
语言动态特性包括哪些方面,内存模型和类型系统有啥联系?
henceman
2016/10/20镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 nuanyangyang 的大作中提到: 】
: 你先定义什么叫“语言的动态性”
在编译时保留冗余信息,在运行时使用信息?
如果成立,那么问题就成了保留哪些信息,和如何保留和使用这些信息?
暖神,save me?
我的理解是“静态”就是“编译时”,“动态”就是“运行时”。
比如“静态类型”就是变量的类型在编译时确定;而“动态类型”就是编译时变量没有类型,而运行时确定变量里存的数据的类型。
比如“静态分配”(static dispatching)就是调用对象的方法的时候,在编译时就确定具体调用哪段代码(即“非virtual方法”);而“动态分配”(static dispatching)就是在运行时(确切地说是调用的时候)才确定调哪段代码(因此可以重写、多态,就是virtual方法。)。
还有“静态链接”(编译完了以后马上把库链接到主程序里,并解析符号之间的引用关系)、“动态链接”(运行时(主程序装载时)确定符号引用的是哪个库里的哪个地方);动态链接又有“静态装载”(在主程序装载的时候就确定依赖的库的装载)、“动态装载”(运行时通过dlopen什么的装载库)……
总之,意思各有不同,还是看具体情况具体分析吧。
【 在 henceman 的大作中提到: 】
: 在编译时保留冗余信息,在运行时使用信息?
: 如果成立,那么问题就成了保留哪些信息,和如何保留和使用这些信息?
: 暖神,save me?
【 在 nuanyangyang 的大作中提到: 】
: 我的理解是“静态”就是“编译时”,“动态”就是“运行时”。
: 比如“静态类型”就是变量的类型在编译时确定;而“动态类型”就是编译时变量没有类型,而运行时确定变量里存的数据的类型。
: 比如“静态分配”(static dispatching)就是调用对象的方法的时候,在编译时就确定具体调用哪段代码(即“非virtual方法”);而“动态分配”(static dispatching)就是在运行时(确切地说是调用的时候)才确定调哪段代码(因此可以重写、多态,就是virtual方法。)。
: ...................
暖神, 除了鸭子类型,反射,还有哪些名词属于动态特性
如果我要问这些如何实现的,你会告诉我"read the XXXX "么
找一些关于编程语言的书吧。比如我以前看的Kenneth Laudon写的Programming Languages Principles and Practices吧。
https://www.amazon.com/Programming-Languages-Principles-Practices-Advanced/dp/1111529418
北邮图书馆中心书库,中英文都有。
【 在 henceman 的大作中提到: 】
: 暖神, 除了鸭子类型,反射,还有哪些名词属于动态特性
: 如果我要问这些如何实现的,你会告诉我"read the XXXX "么