- 浏览: 576883 次
- 性别:
- 来自: 广州杭州
文章分类
最新评论
-
bohc:
谢谢,搞了两天了,现在才算是找到问题所在,解决了。
文件在使用FileChannel.map后不能被删除(Windows上) -
zhang0000jun:
在jdk1.8中执行正好和楼主的结果相反,请指教
从Java视角理解CPU缓存(CPU Cache) -
在世界的中心呼喚愛:
forenroll 写道请问楼主的那个分析工具cachemis ...
从Java视角理解CPU缓存(CPU Cache) -
xgj1988:
我这里打出的结果是: 0 L1-dcache-load-mis ...
从Java视角理解CPU缓存(CPU Cache) -
thebye85:
请教下大神,为什么频繁的park会导致大量context sw ...
从Java视角理解CPU上下文切换(Context Switch)
2007-12-17 23:06:01 lct
The solution to these problems is to replace
dynamically-dispatched messages with one or more statically-bound procedure calls
wherever possible, to inline-expand the callee methods whenever the callee is small (a
common case given the presence of accessor methods, user-defined control structures, and
standard operations like addition implemented as methods), and to eliminate creations of
closures whenever no more references to the closures remain after inlining their bodies.
2007-12-17 23:06:08 lct
这什么意思
2007-12-17 23:06:16 lct
inline-expand ???????
2007-12-17 23:06:32 coderplay
上下文是?
2007-12-17 23:07:08 lct
就是那篇的3 Language Implementation Research
2007-12-17 23:07:35 lct
profile????????大纲???
2007-12-17 23:07:46 coderplay
估计你是看不懂了.呵呵
2007-12-17 23:07:59 coderplay
profile是一个专业术语
2007-12-17 23:08:07 lct
[/流汗]赶紧帮我看看啊[/撇嘴]
2007-12-17 23:08:14 lct
明天还得上台讲呢
2007-12-17 23:08:23 lct
我都看不懂,
2007-12-17 23:08:23 coderplay
是用来观察程序哪里运行最耗时间,最占内存.
2007-12-17 23:08:44 lct
profile怎么翻译
2007-12-17 23:10:02 lct
剖面???可否?
2007-12-17 23:10:25 coderplay
就是profile, 没有翻译
2007-12-17 23:10:47 coderplay
剖析应该比较准确
2007-12-17 23:11:35 lct
哦
2007-12-17 23:11:54 lct
看了,你对文章大意理解如何
2007-12-17 23:12:39 lct
The set of classes computed for each expression is different than the information available
from static type declarations. The set of classes is a specific list of concrete classes, with no
ambiguity or open-endedness. A static type declaration, on the other hand, specifies an
interface to an expression, but provides no information about what classes might implement
that interface.
2007-12-17 23:12:57 lct
ambiguity or open-endedness.?????????
2007-12-17 23:14:20 coderplay
也有不懂的地方,我得花时间...
2007-12-17 23:15:32 coderplay
这个论题很窄嘞
2007-12-17 23:15:46 lct
compile-time method lookup,
????????
2007-12-17 23:15:46 coderplay
涉及到的具体东西很多
2007-12-17 23:16:05 lct
太具体,太专业了
2007-12-17 23:16:23 coderplay
compile-time method lookup,编译期的方法查找
2007-12-17 23:16:32 lct
我觉得我完全没有那个背景知识,很难理解
2007-12-17 23:16:35 coderplay
对应的是 run-time method lookup
2007-12-17 23:16:42 lct
好
2007-12-17 23:17:12 coderplay
我要花一个半小时看完
2007-12-17 23:17:35 lct
perform method lookup ?
2007-12-17 23:17:47 lct
我花了两三天
2007-12-17 23:18:00 coderplay
那你等下吧,不要先提.我现在才看第一段
2007-12-17 23:33:10 lct
When static class analysis cannot determine a tight bound on the set of possible classes of the
receiver of some message,
2007-12-17 23:37:43 coderplay
晕...
2007-12-17 23:37:49 coderplay
好像很难解释
2007-12-17 23:38:40 coderplay
你知道重载,重写的区别? 还有它们与多态的联系吗?
2007-12-17 23:39:01 lct
忘了
2007-12-17 23:39:13 coderplay
还有面向对象的消息传递
2007-12-17 23:39:18 coderplay
这好像很难说...
2007-12-17 23:39:24 coderplay
换一篇吧...
2007-12-17 23:39:40 lct
呵呵,哪来得及,明天早上8点
2007-12-17 23:39:51 lct
死马当活马医了
2007-12-17 23:40:03 coderplay
他开始说的是设计了一种叫cecil的语言
2007-12-17 23:40:38 lct
嗯
2007-12-17 23:40:52 coderplay
语言设计分两类, 一种是追求语言的表达能力, 还有一种是追求语言的运行性能
2007-12-17 23:41:28 lct
These results indicate that intraprocedural optimizations of messages speed Cecil programs
by at least a factor of two.
2007-12-17 23:41:29 coderplay
他设计的cecil语言能和c++一样高效,但比c++更规范,更灵活
2007-12-17 23:41:36 lct
a factor of two.?????
2007-12-17 23:42:00 coderplay
不要去钻哪个字的意思啊
2007-12-17 23:42:20 lct
a factor of two.?????
2007-12-17 23:42:29 lct
这是关键意思
2007-12-17 23:42:32 lct
关系理解
2007-12-17 23:43:42 lct
还有文章中的class,虽然我理解成“类”,但感觉怪怪的
2007-12-17 23:45:03 coderplay
你先说一遍意思吧
2007-12-17 23:45:09 coderplay
我还在看前面的
2007-12-17 23:45:42 lct
coderplay 23:45:03
你先说一遍意思吧
?
2007-12-17 23:48:11 coderplay
就是你先说说你的理解
2007-12-17 23:48:22 coderplay
通篇的
2007-12-17 23:50:06 lct
正在整理
2007-12-17 23:52:33 lct
如果说通篇内容,也就是introduction那部分的内容
2007-12-17 23:52:57 coderplay
你先打,我看着
2007-12-17 23:53:07 coderplay
具体的说说看
2007-12-17 23:53:52 coderplay
他是指语言的灵活性和程序性能是相冲突的,但他有办法解决
2007-12-17 23:54:26 lct
Multi-methods are treated as overloaded functions, where overload resolution is
determined by the dynamic classes of the arguments,
2007-12-17 23:54:34 lct
这关系到理解
2007-12-17 23:56:41 coderplay
这个是灵活性的部分了
2007-12-17 23:56:53 lct
怎么理解
2007-12-17 23:56:57 coderplay
看来搞不完嘞.边给你解释,边看
2007-12-17 23:57:16 lct
看懂字面,却理解不了
2007-12-17 23:57:24 coderplay
传统的OOP语言有重载与重写
2007-12-17 23:58:31 coderplay
重载是一个类里面有多个同名的方法比如
class A
{
public void func_name(void);
public void func_name(Object obj);
}
2007-12-17 23:58:36 coderplay
这是重载.
2007-12-17 23:59:02 coderplay
到底是调用func_name(void)还是调用func_name(Object).
2007-12-17 23:59:13 coderplay
这取决于你传给方法的参数的类型
2007-12-17 23:59:16 lct
There are no variables or
expressions where this subtype polymorphism is restricted, unlike C++
2007-12-18 00:00:01 lct
重载明白,重写呢?
2007-12-18 00:01:00 lct
overloaded是重写?
2007-12-18 00:01:28 coderplay
重写是和继承相关的
class A
{
virtual fun_name()
}
class B inherite A
{
func_name();
}
2007-12-18 00:01:42 coderplay
重载(overload) ,重写(override)
2007-12-18 00:02:26 lct
呵呵,好
2007-12-18 00:02:27 coderplay
然后有一个B的实例
B b = new B;
b.func_name(); // 这句不会调用A.fun_name
2007-12-18 00:03:02 coderplay
虽然参数都一样,这是为了消除继承的二义性
2007-12-18 00:03:25 coderplay
class Cat{
public void eat(){
System.out.println("cat eat");
}
}
public class BlackCat extends Cat{
public void eat(){
System.out.println("black cat eat");
}
public static void main(String[] args){
Cat cat = new BlackCat();
cat.eat();
}
}
2007-12-18 00:03:33 coderplay
这个时候的结果是:
black cat eat
2007-12-18 00:04:11 coderplay
如果
Cat cat = new Cat();
cat.eat();
结果则是cat eat
2007-12-18 00:04:32 lct
多方法可以看作重载函数,
2007-12-18 00:04:44 coderplay
no
2007-12-18 00:04:51 coderplay
有区别
2007-12-18 00:04:52 lct
好,你说的例子我明白,但遇到字面无法翻译
2007-12-18 00:05:07 lct
Multi-methods are treated as overloaded functions, where overload resolution is
determined by the dynamic classes of the arguments,
2007-12-18 00:05:17 lct
我要说出这个意思
2007-12-18 00:05:31 coderplay
重载是编译完成后,调用的方法是确定的
2007-12-18 00:05:54 lct
?
2007-12-18 00:05:54 coderplay
而重写,程序到底调用哪个方法是运时期决定的
2007-12-18 00:06:12 coderplay
而不是编译期
2007-12-18 00:07:10 coderplay
比如这个
class A
{
public void func_name(void);
public void func_name(Object obj);
}
编译后,两个函数分别是
func_name_void(A this)
func_name_Object(A this, Object o)
2007-12-18 00:07:24 coderplay
所以编译完成后,它们实际上是两个名称不相同的函数
2007-12-18 00:07:31 coderplay
而重写却不同
2007-12-18 00:07:40 coderplay
它们的函数名在编译完成后还是相同的
2007-12-18 00:08:15 lct
哦
2007-12-18 00:08:19 lct
那Multi-methods are treated as overloaded functions, where overload resolution is
determined by the dynamic classes of the arguments,
2007-12-18 00:08:23 lct
????????
2007-12-18 00:08:25 coderplay
只是第一个参数this的类型不同
func_name_void (A this)
func_name_void (B this)
2007-12-18 00:09:07 coderplay
Multi-methods有点像重载函数
2007-12-18 00:09:57 coderplay
但CLOS的Multi-methods是多重分发(multiple dispatching)的
2007-12-18 00:10:18 lct
参数的动态类决定重载的,,
2007-12-18 00:10:36 coderplay
重载是编译期后就决定了的,是静态的
2007-12-18 00:10:51 coderplay
而Multi-methods是运态决定的,是动态的
2007-12-18 00:11:38 coderplay
它通过动态检测所有参数的类型来决定调用哪个函数
2007-12-18 00:11:56 coderplay
是动态意义上的函数重载
2007-12-18 00:12:00 lct
coderplay 00:09:07
Multi-methods有点像重载函数
coderplay 00:10:35
重载是编译期后就决定了的,是静态的
coderplay 00:10:52
而Multi-methods是运态决定的,是动态的
2007-12-18 00:12:03 lct
糊涂了
2007-12-18 00:13:48 coderplay
重载编译后,两个函数分别是
func_name_void(A this)
func_name_Object(A this, Object o)
当你调用时,实际上是调用两个不同的函数
func_name_void(A this)和
func_name_Object(A this, Object o)
仅管你的程序,看上去是调用同名的方法.但编译器已经帮你的函数的名称全部换了
2007-12-18 00:15:37 coderplay
编译前是
A::func_name(void)
A::func_name(Object o)
调用方法分别是
a.func_name()
b.func_name(obj)
编译后是
func_name_void(A this)
func_name_Object(A this, Object o)
调用方法分别是
func_name_void(a)
func_name_Object(a, obj)
2007-12-18 00:16:09 coderplay
运行时,两个方法根本没有任何联系
2007-12-18 00:16:12 coderplay
连名称都不一样
2007-12-18 00:16:22 coderplay
这是重载
2007-12-18 00:16:39 coderplay
而Multi-Methods编译后的名称是一样的
2007-12-18 00:16:58 coderplay
只是参数类型不一样
2007-12-18 00:17:20 coderplay
程序到底调用哪个函数, 是通过所有参数的类型来决定的
2007-12-18 00:18:46 lct
在C++中也学过,你说了我也明白了,但是对那篇文章的理解还是不行
2007-12-18 00:19:07 coderplay
他的意思是说Multi-Methods兼俱重写的动态性, 和重载的灵活性
2007-12-18 00:19:36 coderplay
Multi-methods are treated as overloaded functions, where overload resolution is
determined by the dynamic classes of the arguments,
这句你应该明白了吧
2007-12-18 00:19:45 coderplay
这是CLOS的作法
2007-12-18 00:19:50 lct
怎么翻译
2007-12-18 00:19:57 coderplay
一定要翻译?
2007-12-18 00:20:03 lct
dynamic classes
2007-12-18 00:20:16 coderplay
动态类型
2007-12-18 00:20:31 lct
参数的动态类?or动态类型
2007-12-18 00:20:38 coderplay
类型
2007-12-18 00:20:55 lct
与type?
2007-12-18 00:21:03 coderplay
不要去抠字眼,这是因为英语和汉语的差别
2007-12-18 00:21:26 coderplay
你只是感觉类与类型的区别比class与type大
2007-12-18 00:21:34 lct
因为我一直把全文的class理解成类了,面向对象中的类
2007-12-18 00:21:35 coderplay
明白意思就okay
2007-12-18 00:21:49 coderplay
后面作者说他的语言
2007-12-18 00:21:51 lct
现在明白了
2007-12-18 00:21:57 coderplay
与CLOS不同
2007-12-18 00:22:05 coderplay
他的语言灵活性更强
2007-12-18 00:22:41 lct
class hierarchy analysis
这个应该是类层次分析吧?不会是类型了吧
2007-12-18 00:22:50 coderplay
In fact, the implementation of the
operation can evolve over time, with special cases added incrementally without revising
previous versions or client code. The choice of implementation strategy is properly hidden
from clients, and there are no restrictions on future incremental extension to the set of multi-
methods.
2007-12-18 00:23:00 coderplay
对头
2007-12-18 00:23:48 coderplay
复制错了.这句:
The Cecil
approach to multi-methods differs from the CLOS approach by allowing each multi-method
to independently determine which subset of its arguments requires dynamic dispatching
(there is no °∞congruent lambda list°± rule as in CLOS) and by treating all argument positio
with equal priority (there is no left-to-right ordering of argument positions as in CLOS).
2007-12-18 00:24:29 coderplay
Cecil对multi-methods的方法与CLOS的方法不同
2007-12-18 00:24:52 coderplay
CLOS是要检查所有的参数的类型来决定调用哪个函数
2007-12-18 00:25:51 lct
这个明白
2007-12-18 00:26:29 coderplay
而Cecil可以自定义.
比如参数是 (A a, B b, C c)
CLOS要检查a,b,c的类型
而Cecil用户则可能只要检查一个子集b,c的类型.
2007-12-18 00:27:21 coderplay
Cecil语言支持这种特性
2007-12-18 00:27:28 lct
嗯
2007-12-18 00:28:01 coderplay
lambda list是一个术语, 与丘奇的可计算模型相关
2007-12-18 00:28:52 lct
[/惊讶]太有才了
2007-12-18 00:28:56 coderplay
下面那段就是消息传递
2007-12-18 00:29:09 lct
谢谢周大叔
2007-12-18 00:29:23 coderplay
这两个特性会使程序的性能降低
2007-12-18 00:29:33 coderplay
因为它在执行的时候还要判断类型
2007-12-18 00:29:52 coderplay
然后第3节讲的是他的解决方案
2007-12-18 00:29:59 coderplay
不过我还刚看..
2007-12-18 00:30:08 lct
大意我也看过了,管它懂不懂,我们宿舍催睡觉了,明天哪里懂讲哪里
发表评论
-
出道distinct相关的sql题给大家做做
2009-05-22 20:13 2287这几天在做sql编译相关的东西, 自己弄了个题目,连资深数据库 ... -
几种数据库的jdbc驱动实现
2009-05-02 23:00 3891要实现自己的JDBC驱动,最重要的是实现以下几个接口: j ... -
latex插图位置问题
2008-05-14 15:05 10767使用figure会进行浮动环境,这样插的图latex会自动调整 ... -
texlive下面有很多程序执行ruby脚本
2008-05-14 03:41 4235比如pstopdf的, 以前用的都是ps2pdf.exe 现在 ... -
中文粗体,斜体的问题
2008-05-12 17:43 4769中文没有粗体,斜体。这些都是洋文的, windows上的都是伪 ... -
Resume
2008-03-25 12:57 4353Personal Information Name:周敏 ( ... -
texlive使用日记
2007-12-20 01:42 5302往代码里面插入中文。 这段有时候会出错,编译不了。 但大多时候 ... -
texlive 2007使用日记
2007-12-18 02:01 4655\input与\include有区别. 比如写Makefil ... -
texlive 2007在windows上的安装与使用
2007-12-17 06:30 10362安装 1. 在http://www.tug.org/texl ... -
Ocamllex 指南
2007-06-22 12:24 3542原译文发布在ocaml.cn , ...
相关推荐
- 使用 Nginx 的 TCP 负载均衡功能,将客户端请求分派到多个服务器上,以提高并发处理能力 - 基于发布-订阅的服务器中间件redis消息队列,解决跨服务器通信难题 - 封装 MySQL 接口,将用户数据储存到磁盘中,实现...
2. **后端服务器**:处理前端发来的请求,如接收和存储聊天记录、分配客服人员、管理会话状态等。这部分通常采用Web框架实现,如Node.js的Express或Python的Django。 3. **数据库**:用于存储用户信息、聊天记录、...
3. 文字聊天:在线聊天功能允许客户实时提问,客服可以同时处理多个聊天会话,提高处理速度。 4. 社交媒体整合:监控和回应来自Facebook、Twitter等平台的客户咨询,拓宽服务渠道。 三、质量管理与绩效评估 1. ...
系统可以根据预设规则自动将工单分派给合适的客服人员,同时,工单的状态、处理进度以及历史记录都会实时更新,便于团队成员间的协作和管理层的监控。此外,系统还支持工单的优先级设置,确保紧急问题得到及时处理。...
5、任务协作:任务管理应用,轻松安排您与团队每一天的工作分派,实时掌握工作进度,有效提高您和团队的工作效率。 6、调研:实时收集来自团队的宝贵意见,数据分析直观明了,自动生成图形分析报表,有效提高您的...
5、任务协作:任务管理应用,轻松安排您与团队每一天的工作分派,实时掌握工作进度,有效提高您和团队的工作效率。 6、调研:实时收集来自团队的宝贵意见,数据分析直观明了,自动生成图形分析报表,有效提高您的...
2. **服务申请**:业主可以在线提交维修、投诉、建议等服务请求,系统自动记录并分派处理。 3. **公告通知**:物业管理方可以发布小区公告,业主能实时查看和接收通知。 4. **费用缴纳**:包括物业费、水电费等费用...
提供外勤签到打卡、客户拜访汇报,随时微信上提交客户拜访信息(包括拜访内容、拜访对象、拜访地点),并发送给指定人随时创建外勤工单,向领导汇报或请示,领导可以向属下分派外勤任务。15、企业公告:企业发布公司...
-任务协作:随时记录和跟进每一项工作,个人记录待办工作,快速分派工作给同事;-工作计划:按周、月或季度计划个人和团队的工作,适合周会、月会场景;同事支持目标设定和管理;-项目管理:替代project的协作项目...
项目管理采用按“日”分派任务的方式,每日例会成为沟通的重要平台,成员汇报进展,开发经理安排新任务,这种做法有利于实时监控项目状态,确保目标的实现。项目组还设计了一套基于任务完成率的绩效评估体系,对于...
任务分配 对下属用户分派工作任务,实时监控任务情况 下属日程 下属员工的日程安排信息 下属日志 下属员工的工作日志信息 下属计划 下属员工的工作计划信息 下属汇报 下属员工的工作汇报信息 下属邮件 下属员工的...
任务分配 对下属用户分派工作任务,实时监控任务情况 下属日程 下属员工的日程安排信息 下属日志 下属员工的工作日志信息 下属计划 下属员工的工作计划信息 下属汇报 下属员工的工作汇报信息 下属邮件 ...
5、任务协作:任务管理应用,轻松安排您与团队每一天的工作分派,实时掌握工作进度,有效提高您和团队的工作效率。 6、调研:实时收集来自团队的宝贵意见,数据分析直观明了,自动生成图形分析报表,有效提高您的...
5、任务协作:任务管理应用,轻松安排您与团队每一天的工作分派,实时掌握工作进度,有效提高您和团队的工作效率。 6、调研:实时收集来自团队的宝贵意见,数据分析直观明了,自动生成图形分析报表,有效提高您的...
5、任务协作:任务管理应用,轻松安排您与团队每一天的工作分派,实时掌握工作进度,有效提高您和团队的工作效率。 6、调研:实时收集来自团队的宝贵意见,数据分析直观明了,自动生成图形分析报表,有效提高您的...
本测试用例是《开创世纪》游戏早期的测试用例,包含组队、交易、聊天、好友等系统,仅供大家参考。 测试目的 本次测试的主要目的是对《开创世纪》1.00 版本进行完整的集成测试(系统测试、验收测试),即对《开创...
- **记录查询**:查询聊天记录,支持分级查询权限。 #### 三、系统价值与应用场景 AOFAX旅游产业呼叫中心系统凭借其强大的功能和灵活的配置选项,能够显著提升旅游企业的服务质量和运营效率。无论是用于客户服务...
服务阶段,每当有请求到达,Servlet容器会调用Servlet的service()方法,根据请求类型分派到doGet()或doPost()等具体方法。最后,在Servlet不再需要时,销毁阶段会调用destroy()方法释放资源。 Servlet容器是运行...
亮点三:工作流优化,方便新建任意格式审批单。 亮点四:功能授权于数据授权并用,可对多部门,多人员进行进行交叉授权。 亮点五:提供“智能窗体”向导,可任您快速且自由地制作多功能的网页办公系统。 亮点六:...
非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的...