此文是从俺的SPACE 听云轩上弄来的

模式,动态,数据化及其他

这里的模式是指构造一类相似事物需要共同遵守的法则,换句话说就是模版或类。但当前语言中“类”的概念要远狭隘于此,因为模式可以构造任何事物,包括自身。
前面的文章中曾经提到过编程语言有一个努力的方向是尽最大可能减少代码中的重复,函数,oop,泛型都是如此。他们其实都是模式。函数是一类计算过程的模式,它特殊在不需要其余的参数就可以构造出计算的逻辑;oo中的类自不待言,是对象的模式;泛型类就是带参数的模式了。还有模式的模式,前两天刚刚提到的“计算模式”,软件工程里面的“设计模式”,都是更“高次”的模式。
模式提供避免重复的途径,我想它几乎是唯一的途径。
再来看动态和数据化。动态就是将程序输入的不确定性引入行为的不确定性,要引入不确定性,行为自身必须有一定的数据属性,这就是数据化。数据化越彻底动态性越强。这就是动态语言把诸如函数之类控制元素当作数据的原因。反过来,行为数据化可自然导致行为自输入获得不确定性,也就是动态。
所以,动态就是数据化。
 
然后是模式和数据化的关系。
模式要构造一类事物,可构造意味着这类事物是数据化的。因此非数据的出现意味着不能彻底应用模式,因此就可能出现重复。c++里的类没有数据化,尽管模版提供了一些构造类的模式,但那是在编译时实现的,运行时输入的不确定性根本未曾引入该构造过程,充其量不过是编译器帮人写了重复代码而已。它还是死的。
因此我们需要一切皆数据的语言。模式是数据,模式的模式是数据,直到无穷。
 
将会产生什么呢?
一个算法从一个算法类(或模式,模版)中构造出来;一类类似的计算过程被形式化并抽象为类,这正是可爱的“计算模式”;甚至一种设计模式也被以类的形式具体化了(也怪不得设计模式是从smalltalk的圈子里出来的了,它得益于smalltalk的动态性。至于smalltalk里是否已经存在这种“设计模式类”我就不得而知了);这时候唯一的瓶颈是我们的想象力,因为任何的共性都可以被我们利用。
 
此时不妨换个视角。
其实这样的思想已经被我们应用了几千年。数学对象就是模式。
数是一切相似类的类。模式。
向量,群,矩阵,只要是抽象出来的,就是一类事物的共性,就是模式。
到了泛函之类,就是模式的模式了,这在近代代数里屡见不鲜。
计算机源于数学,但到了一切都是数据的动态语言才真正回归了数学。
 
******************************************************
 
刚才在图书馆翻那本《程序设计语言:设计与实现》的时候,这两天来萦绕心中的几个东西突然融合了,然后就有了这篇文章。
我曾对问题的最优子结构等东西思考了很久,原因是我想自己找一个严格的方法确定问题是否具有最优子结构,但只能半严格化。直到前两天在那本算法上看到了拟阵。然后就叹服于数学的表达力。抽象的美丽是刺激写下本文的一个重要原因吧。然后自然就是自去年十一假期以来一直未放下的动态语言的思考了。还有前两天“计算模式”给我的震撼,没想到数据化的范围可以是如此之广。

******************************************************

前两天才发现程序员04(还是05?忘了)上有一篇介绍MDA的文章,所言有一些与本文相似。感兴趣的找找看。

感觉大家太习惯在细节上考虑问题了,为什么不能超越纷繁复杂的技术去思考一些背后本质的东西?我想这正是软件科学的一大欠缺,它应该向物理学借用一些思维。当然,软件是复杂的,我们或许只能作出定性或半定量的分析。

另外,BLOG里另两篇文章是一年前所为,当时没有深入计算理论,里边的思考有些幼稚,感兴趣的凑合着看吧。

模式,动态,数据化及其他相关推荐

  1. 【设计模式】代理模式 ( 动态代理 | 模拟 Java 虚拟机生成对应的 代理对象 类 )

    文章目录 前言 一.模拟 JVM 生成对应的 代理对象 二.模拟 JVM 生成对应的 代理对象 完整流程展示 1.目标对象接口 2.被代理对象 3.调用处理程序 4.模拟 JVM 生成的代理对象类 5 ...

  2. 红橙Darren视频笔记 代理模式 动态代理和静态代理

    红橙Darren视频笔记 代理模式 动态代理和静态代理(Android API 25) 关于代理模式我之前有过相关的介绍: https://blog.csdn.net/u011109881/artic ...

  3. ruijie交换机lacp动态_华为交换机LACP模式(动态)链路聚合配置示例

    华为交换机LACP模式(动态)链路聚合配置示例 猫先生 • 2019 年 06 月 15 日 LACP 模式链路聚合简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加 ...

  4. 【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )

    文章目录 前言 一.静态代理的弊端 二.动态代理的优势 三.动态代理使用流程 1.目标对象接口 2.被代理对象 3.调用处理程序 4.客户端 四.动态生成 代理对象 类 的 字节码 文件数据 前言 代 ...

  5. vue图片插入与设置夜间模式/动态过渡

    <template><div><div><h3>动画过渡</h3></div><div class="uuu&q ...

  6. Java设计模式-之代理模式(动态代理)

    一.简介 1.什么叫代理模式:        简而言之就是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起 ...

  7. Proxy 代理模式 动态代理 CGLIB

    代理的基本概念 几个英文单词: proxy [ˈprɒksi] n. 代理服务器:代表权:代理人,代替物:委托书: invoke [ɪnˈvəʊk] vt. 乞灵,祈求:提出或授引-以支持或证明:召鬼 ...

  8. Linux中Chrome无界模式动态代理IP的配置(Selenium)

    Python 爬虫设置代理的方式有很多, 比如给urlib.request.selenium等方式设置代理,这部分的细节代码在网上一搜一大堆.那么问题来了,比如你要抓取淘宝或模拟验证码操作登录,是不是 ...

  9. Decorator 装饰器模式 -动态组合

    为什么80%的码农都做不了架构师?>>>    一:业务场景 奖金计算,每个部门,有不同的计算方法,且每个部门有不同类型的奖金项:而且每年或每隔几个季度奖金算法都要重新实现下. 这个 ...

  10. 【设计模式】代理模式 ( 动态代理 )

    文章目录 一.动态代理使用流程 二.动态代理代码示例 1.订单类 2.Service 接口 3.Service 实现类 4.Service 静态代理类 5.Dao 接口 6.Dao 实现类 7.Ser ...

最新文章

  1. Java 成员变量与局部变量
  2. tomcat启动慢_Hack下mongodb jdbc driver启动慢
  3. muduo采用计时函数gettimeofday
  4. 刷新页面 数组轮播
  5. 学计算机U盘内存,在U盘上设置虚拟内存
  6. linux dns中文域名,Linux 搭建中文域名的DNS服务器
  7. 数据结构笔记(十三)-- 串的堆分配存储表示
  8. 设计佣金问题的java程序_三角形、nextday、佣金问题实验报告.doc
  9. 计算机人工智能领域英文文献,人工智能 英文文献译文
  10. 安卓干货——安卓NFC通信
  11. PHP微信公众号开发之自动回复
  12. 放量十字星——黎明前的曙光还是黑暗前的夕阳
  13. flink sql 知其所以然(二)| 自定义 redis 数据维表(附源码)
  14. 抽象类和接口的异同(分点)
  15. html向下的三角符号怎么打,哪些字符可用于上/下三角形(无茎的箭头)以HTML显示?...
  16. 【转载】新韭菜日记22----20190304股市学习--帖子是转载的,持续学习
  17. 硝基苯并-2-氧杂-1,3二唑(Nitrobenz-2-oxa-1,3-diazole,NBD)修饰BODIPY荧光探针检测GSH
  18. 尤瓦尔·赫拉利 | 认识你自己,不要被算法操控
  19. mac苹果系统使用技巧
  20. show sga 的描述

热门文章

  1. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别
  2. 非常可乐(三个杯子倒水问题)
  3. 大数据之Spark:Spark Core(1)
  4. 一篇来自程序员的日记
  5. Ubuntu20.04+gdb/vscode调试ROS(VINS-Mono)程序
  6. Android实现ListView的A-Z字母排序和过滤搜索功能
  7. 抖音达人探店有用吗?算不算过时呢
  8. Python初识对象
  9. Telelogic Tau 第二代
  10. 关于引流脚本,你了解的引流脚本的优势有哪些?