随笔分类 -  词汇演算

摘要:对象的谓项设计是指用对象的本体特性,而不是形式特性来体现和区分对象的方式。通俗地说区分对象的方式是能力而不是出生。在谓项设计中,对象是由基础类生成,而不是由派生类生成,我们会更关注类的特性而不是类的继承关系。常用的描述是对象具有哪一类的特性,而不常说是哪一类的对象。 举个例子,比如对于卡车,在设计时只会定义汽车类型,而不会去定义派生于汽车的卡车类型。作为替代,在汽车中定义卡车特性的谓项。要区分一辆汽车是否是卡车,是看它是否具有卡车的特性,当它有卡车特性时,可以把它归于卡车一类,反之,则认定它不属于卡车。对于既有轿车特性,又有卡车特性的汽车,你可以认定它为皮卡。 另外之所以称为谓项设计,与对.. 阅读全文
posted @ 2013-01-03 13:57 走在溪边 阅读(949) 评论(0) 推荐(1) 编辑
摘要:在上一篇 编程便笺:代码的图形(一) 一文中描述了如何用C++直接把结构语义图形化,在继续这个话题以前,我们先暂时放一放,做些准备工作。本文先来描述一下控制语义或者说是规则语义的图形化。 像上一篇文章所说,结构很大的程度上是体现地是几何的概念,也就是图形的概念。而控制语义的图形化离不开图灵机,对于这一点,有以下一些理由: 1、图灵机从表面上看,直接体现地是匹配控制的概念,控制是图灵机的核心; 2、图灵机的语言比一般语言更接近于图形,体现图形的特色,对于编程来说,大部分的时候是形式比实质更重要,换句话说,对于程序员来说,语义的表现比语义的实现更有感受。我们平时指的语言计算能力,应该是指... 阅读全文
posted @ 2012-12-28 14:49 走在溪边 阅读(1294) 评论(0) 推荐(1) 编辑
摘要:Iterator是序列概念的体现,Iterator指向值而不是值本身,因而也就具有两方面的特性,一方面Iterator可以指代值,另一方面具有序列指示特性,可以在序列中移动,指针和数组序号都具有这样的特性。Iterator(迭代器)可以说是std的灵魂所在,也可以这样说,Iterator为std的成功提供了保证。 Iterator为什么会如此重要,因为大部分程序都是图灵完备的,所以可以分析一下图灵机,我们把图灵机分成三个部件:条带、接口部件(包括移动和数据捡取部分)、处理部件。这三个部件中,接口部件对应就是Iterator,它是条带与处理部件的纽带,从中可以看出Iterator的重要性。... 阅读全文
posted @ 2012-12-24 10:47 走在溪边 阅读(2312) 评论(0) 推荐(0) 编辑
摘要:编程时,程序员心中会有图形,而有些代码本身就是图形,不但可读而且可看。#include "stdafx.h"#include <deque>#include <map>#include <string>using namespace std;//图形由点组成class TNode{public: wchar_t * name; //构造函数 TNode(wchar_t * _name):name(_name){} virtual const wchar_t * toString(){return name;}};class TEmp;// 阅读全文
posted @ 2012-12-16 14:11 走在溪边 阅读(1456) 评论(6) 推荐(1) 编辑
摘要:通用和专用是编程的永恒主题,编程的演化很大程度上是专用变通用的过程,归纳是更一般的叫法。专用与通用比较,往往具有更多的上下文约束,而程序设计则希望通过更细或更有效的分组、分类,而使这些上下文约束更通用,更具适应性。 对于企业应用来说,这样的约束一般来源于业务逻辑,而需求和程序设计也是围绕着业务逻辑的选择和处理展开。很多概念的形成有它自然的过程,如果经常把这些概念举在手上,反而如一座座山峰,遮住了事情本来的面目,这样也不利于这些概念的运用,当然拿来吓人或显摆的除外。 SQLDB关注于业务逻辑实体的结构及基本约束的一致性。NOSQL则揭示出业务逻辑实体的结构与业务逻辑对象的上下文相关性,也就是数. 阅读全文
posted @ 2012-07-06 15:18 走在溪边 阅读(1771) 评论(7) 推荐(2) 编辑