摘要:帮朋友jacques lebrun贴这篇帖子,顺便提醒某些过于容易激动的读者:当你开口批评之前,你有没有想过,自己究竟有没有批评的资格?当然,孔雀开屏式的批评没人能阻止。不过有句老话说得好,你拿自己当根葱,还真有人拿你蘸酱?
“书评的目的是,让评论者对一本自己看过或者没看过的书说点儿什么。评论只在一个意义上有指导作用,那就是它向书评的读者——包括原书的作者——提供了一些关于评论者的智力的信......
摘要:
p2p即peer to peer,称为对等连接或对等网络,p2p技术主要指由硬件形成连接后的信息控制技术,其代表形式是软件。
技术背景
p2p起源于最初的联网通信方式,如在建筑物内pc通过局域网互联,不同建筑物间通过modem远程拨号互联。其中建立在tcp/ip协议之上的通信模式构成了今日互联网的基础,所以从基础技术角度看,p2p不是新技术,而是新的应用技术模式。
今天,p2p再一......
抽象机模式
抽象机模式
撰文/julio garcía-martín miguel sutil-martín 【程序编程相关:
WinCE 进程、线程和内存管理(一)】
(已发表在«程序员»2003年第1期上) 【推荐阅读:
WinCE 进程、线程和内存管理之同步】
【扩展信息:
模拟器和远程调试工具(二)】
universidad politécnica de madrid[1]
翻译/马维达
摘要
由于现代高级编程语言与现有硬件之间的差异日渐增大,常常有必要引入中间语言.并在原始硬件之上构建抽象机.本论文描述了抽象机(abstract machine),一种对抽象机的本质特性进行捕捉的结构型模式;这些特性给出了对抽象机的定义.该模式将抽象机的静态特性与动态特性作为分离的组件进行描述,并且还考虑了指令集与这些指令的语义,以及此模式的其他一些重要组件.
意图
为抽象机的设计定义通用模板.该模式捕捉在抽象机之下的本质特性(也就是,数据区.程序.指令集,等等),将它们的相互分离的.松耦合的组件封装进结构模式中.此外,本论文还提供了抽象机的各组件进行交互的协作结构.
别名
虚拟机(virtual machine).抽象状态机(abstract state machine).
动机
在今天,java是计算机科学中的一个时髦话语.尽管java是一种用于分布式与gui应用开发的面向对象语言,但几乎每天它都在增加新的非常有用的编程特性与工具.作为一项事实,在java的成功中,虚拟机技术的使用有着极为重大的意义[2].众所周知,java虚拟机(java virtual machine,jvm)是基于软件的抽象机,可在不同的微处理器机器上工作(也就是,独立于硬件).jvm的设计者必须遵从jvm的规范,进行必要的处理,将jvm虚拟环境桥接进具体的操作系统与微处理器中.这个在虚拟环境之后的“桥梁”允许软件开发者“一次编程,到处运行”(write once,run anywhere)[1],因为不管底层的微处理器是什么,jvm都必须根据jvm的标准规范以同样的方式工作.
由于现代高级编程语言与现有硬件之间的差异日渐增大,常常有必要引入中间语言.并在原始硬件之上构建抽象机.但是,在许多情况下,差异是如此之大,以致于我们难以看出源语言是怎样与中间语言相关联的,或者,难以看出中间语言是怎样与硬件相关联的.遗憾的是,在许多情况下,抽象机仅仅被表示为一些寄存器.内存区与机器指令集的集合,只有很少的.或没有与源语言的对应性.
图1 抽象机的例子:abstract-wam [3]
该项工作的目标是双重的:a)首先,为抽象机的设计发明一套方法学;其次,b)使用此方法学来描述一个基于模式的构架,用于设计编程语言编译器.对这样的实现技术(也就是,抽象机)的使用允许将编译任务规划为渐进的优化过程,这样,就可以根据中间的抽象机之间的关系来一步一步获得高性能特性.通过此过程还保持了一个抽象机与下一个抽象机之间的同一性.每个编译步骤都明确地生成一些新特性与变动,并将其增加到全局编译过程中(见图2).
* 也可以是“定义”
图2 通过虚拟机渐进优化进行的编译过程
该过程给出了更为抽象与系统的构造编译器的方法.此外,它还促进了对编译过程的理解,并简化了对先前的设计进行优化与复用的任务.一个(原型)编译器或多或少有可能作为抽象机设计的边际效应自动导出.
适用性
抽象机模式适用于下面的任意一种情形:
l 当我们想要定义抽象机时.该模式提供了编写高级规范的通用骨架,允许程序员将注意力更多地集中在定义抽象机的各组件上,而不是去担心它们的合并(这可以由此模式“免费”提供).所编写的规范可以是形式化或非形式化的.
l 当我们想要通过使用抽象机技术来编译语言时.抽象机提供了适当的构架来描述通过中间语言的渐进优化进行的编译过程(也就是,原型式开发).在这样的过程中,各中间语言(也就是,抽象机)之间的关系定义了整个编译过程.
l 当我们想要定义通过应用抽象机获得的编译器时.这是对上面的两种情况进行结合的结果.
l 当我们想要测试同一指令的不同语义时.可以为同一指令定义不同的语义,同样,也可以获得同一语义的不同实现.
l 当我们想要测试同一抽象机的不同指令集时.可以为同一抽象机定义不同的指令集.而且,编译过程的渐进优化意味着每个中间的抽象机都定义了比前一抽象机所管理的指令集更为优化的指令集....
下一页 摘要:中文windows 2000登录安全漏洞 不知道你有没有过遗失忘记windows 2000登录密码的情况,其实在遇到了这种突发事件后我们没有必要去重新安装系统、求助第三方软件甚至将机器大卸八块取出硬盘来找寻密码;只要利用windows 2000中的一个小小的漏洞就可以轻松的解决问题,到底是怎么操作的呢? (1)在windows2000启动之后,按照屏幕提示按下alt+ctrl+del进行登......