`

一点领悟吧,关于消息传递与OO

阅读更多
昨天在读到《Programming Erlang》第8章,开篇点出Erlang是一门纯粹的消息传递风格语言(message passing),我才算是领悟了消息传递。为了这个问题,我还冒昧地去问javaeye上的T1,对这个问题的兴趣是因为SICP第二章以及《失踪的链环》上的介绍。T1给我解答如下:智能能对象只是消息传递的一种具体应用.消息传递说的更为清晰一些就是一种映射关系或者说映射规则.f:a->b;这个规则可以是任意的。我一直将procedural representations of data,也就是sicp中声称intelligent data objects (智能对象)等价于消息传递, 而其实智能对象仅仅是消息传递的一种具体应用罢了。消息传递机制通俗地来讲就是类似于马路上到处投递小广告的投递者,它采取的是Send and Pray策略,既不关心消息是否能精确的传送到真正需要消息的接收者,而是以广播的方式把消息发送给所有人,然后通过回馈来确定消息接收者的类型(引 自《失踪的链环》)。因此,动态语言的duct typing是消息传递风格,智能对象是消息传递风格,显然,Erlang的process间的通信机制同样是消息传递风格(Process之间完全通过 send message来进行控制和指示,不确定接收方是否具有处理消息的能力,只有等待reply才能确定)。
    再来说说lambda算子理论,推荐下g9老大的lambda算子系列文章,这是开篇《lambda算子简介1.a》,以及另外一篇《康托尔、哥德尔、图灵——永恒的金色对角线(rev#2)》。 lambda算子理论是函数式编程的理论基础,通过9条公理就可以推到出一个图灵完备的形式系统,其中的Y combinator的推导简直是魔法(为了表示递归),再次领略了计算理论的魅力。另外,最近读sicp第三章《模块化、对象和状态》,也理解了最初的 面向对象思想来自何处,在引入了内部状态模拟时间变化之后,对象的最初思想也产生了,同时也带来了赋值导致的Side-Effect,而其实这正是动态 OO语言中的对象的理念,通过消息来决定对象的type(ducktyping)。可现代的静态OO语言,在type和clas
之间画上了等号,java里面说一切都是object,其实他想表达的却是一切都是class,通过type来决定消息的分派(message dispatch),导致更多的代码集中在消息分派,而不是真正的计算任务上,可以说静态OO已经偏离原始的对象模型很远。
    一点胡思乱想吧,我没有科班经历(大学也没读完!-_-),所有的东西都是自己在学,在摸索,如有理论和常识上的谬误,请不吝赐教,谢谢。
分享到:
评论
1 楼 simohayha 2007-08-13  
其实我感觉像java,这类的oo语言都是采用的是数据导向的设计。

相关推荐

    SAP OO ALV技术介绍.pdf

    OO ALV技术可以满足大多数ALV需求,但有时需要与后续的屏幕开发等集中在一个屏幕中,或者需要实现一些函数ALV不可实现的事件等。 OO ALV技术的实现方式是通过调用cl_gui_alv_grid类的方法set_table_for_first_...

    OO方法、RUP与UML建模(讲义)

    面向对象分析(OOA)关注于理解问题域,建立一个基于对象和消息传递的业务模型。在这个阶段,我们识别和定义问题空间中的主要对象,分析它们之间的关系,并创建动态和静态模型,以表达业务流程和对象间的交互。分析...

    实战OO 用例 建模

    实战OO_用例建模 实战OO_用例建模 实战OO_用例建模

    ABAP OOALV学习文档

    ### ABAP OOALV 学习文档详析 #### 一、ABAP OOALV 概述 **ABAP OOALV**(Object-Oriented Application List Viewer)是一种用于SAP系统的高级列表显示技术,主要用于生成复杂的报表和列表视图。自R/3 4.6C版本起...

    OOALV常用功能完整简例

    在给定的内容部分,我们可以看到一些与OOALV相关的代码片段。这些代码片段涉及了OOALV创建和初始化的过程,以及一些配置字段目录和表格显示设置的实现。例如,“g_alv_grid”是一个OOALV对象的引用类型,而“g_it_...

    SAP OO ALV技术介绍.pptx

    同时,OO ALV技术也可以与标准函数REUSE_ALV_GRID_DISPLAY和REUSE_ALV_GRID_DISPLAY_LVC结合使用,提供更多的报表解决方案。 在实现OO ALV技术时,需要注意以下几点: 1. 需要画一个屏幕,在屏幕上画一个容器(即...

    SAP ABAP开发学习——第10课:OOALV(视频教程)

    以下是关于SAP ABAP和OOALV的一些关键知识点: 1. **SAP ABAP概述**:SAP ABAP(Advanced Business Application Programming)是SAP公司的主要编程语言,用于开发和自定义SAP R/3和SAP NetWeaver系统。它提供了各种...

    ABAP OO的八个理由

    1. 数据封装与稳定性:ABAP面向对象(OO)编程的核心优势之一是数据封装,它将数据和操作数据的方法捆绑在一起,形成对象。这提高了程序的可维护性和稳定性,因为对象内部状态的改变对外部是隐藏的,减少了不必要的...

    OO4O简介以及其在VC++中的应用

    - **OO4O**:在性能上优于通用技术,开发简便,是介于OCI与ADO/ODBC之间的一种选择。 #### OO4O简介 OO4O是一种专门为Oracle数据库设计的快捷访问接口,它支持Microsoft公司的COM Automation and ActiveX技术,...

    OO真经—关于面向对象的哲学体系及科学体系的探讨

    面向对象(Object-Oriented,简称OO)是一种广泛应用于软件工程和编程领域的哲学体系与科学体系,它改变了软件设计和实现的方式,强调以对象为核心,将数据和操作数据的方法封装在一起,通过对象之间的消息传递来...

    ABAP OOALV报表开发

    ABAP OOALV报表开发,定义变量,选择屏幕定义,创建类,调用函数

    实战OO的pdf自留备份

    此书的PDF版本是作者或读者为了个人学习和参考而留存的备份,包含了一系列关于OO实践的重要章节。 在书中,"为问题域建模"这一部分详细阐述了如何理解和分析实际业务场景,通过抽象出关键实体和它们之间的关系来...

    实战OO 交互 建模

    通过顺序图,我们可以清晰地看到图书管理员与系统之间的消息传递过程,包括选择书籍类别、输入书籍信息、系统验证信息唯一性、存储书籍数据等步骤。在这一过程中,“书籍”对象负责存储书籍的详细信息,“书籍列表”...

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV)

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...

    OO及UML教程

    《OO及UML教程》是面向对象编程(Object-Oriented Programming, OOP)与统一建模语言(Unified Modeling Language, UML)的学习资源。在IT行业中,OOP是一种广泛应用于软件开发的方法学,它强调将数据和操作数据的...

    oracle oo4o安装包part1

    oracle oo4o 817安装包oracle oo4o 817安装包oracle oo4o 817安装包

    oo 面向对象action

    标题中的“oo 面向对象action”可能是指在特定编程语言中,如Java或Python,探讨面向对象编程的实际应用,特别是与动作(Action)相关的概念。例如,一个“Action”类可能用于定义用户交互、按钮点击或者其他需要...

    oo2core_6_win64

     1、Windows 95/98/Me系统,将oo2core_6_win64.dll复制到C:\Windows\System目录下。  2、Windows NT/2000系统,将oo2core_6_win64.dll复制到C:\WINNT\System32目录下。 3、Windows XP/WIN7/win10系统(64位系统对应...

Global site tag (gtag.js) - Google Analytics