- 博客(28)
- 资源 (7)
- 收藏
- 关注
原创 Scheme 4 Javaer-7.符号数据
SICP有个缺点:不利于我们跳读。当我想忽略或快速浏览某些章节后,阅读《2.3符号数据》,又逼得我不得不回头找一下某些东西。例如练习2.53中提到的cadr,我得回头查一查;练习2.54中,如何判断一个元素是表,是符号?我不会耶!!!还能不能让我好好玩耍?
2015-07-19 09:58:52 1201
原创 [SICP] 什么是数据抽象
数据抽象(Data abstraction)是指将数据类型的抽象特征与其实现的具体细节清晰地分离。数据抽象是Parnas原则/接口与实现分离原则在类型层面(以及对象技术中)的推广,数据抽象的手段是自定义出数据类型并完成封装。——0.1.3数据抽象
2015-07-18 17:12:11 1944
原创 SICP-Exercise 1.5
Exercise 1.5. Ben Bitdiddle has invented a test to determine whether the interpreterhe is faced with is using applicative-order evaluation or normal-orderevaluation. He defines the following two proc
2015-07-17 19:46:15 1099
原创 Scheme:点对(dotted pair,或pair)
Java中,除了基本类型,其他类型都属于类/接口类型。从讨论数据抽象的角度看,基本类型是更适合的标的物,因为从Java虚拟机规范和Java虚拟机实现层面,基本类型有了有效的接口与实现分离。而类/接口类型的数据抽象,通常我们介绍封装、信息隐藏和类的接口等概念,它们说明Java类作为数据抽象,用户需要了解的是类的接口。Scheme中,我们可以从基本类型构造新数据类型,换言之,我们可以赤裸裸地观察新
2015-07-17 16:06:06 1913
原创 Scheme 4 Javaer-3.高阶函数
1.3 Formulating Abstractions with Higher-Order Procedures教材有时候按照学生的基础,从0讲起;本文或同学们写学习笔记时,要按照后者进行归纳。函数,是对一些数的复合操作,而且不依赖特定的数。如(define (cube x) (* x x x))它不针对某个数如3,而
2015-07-15 14:40:34 1596
原创 《编程导论(Java)·3.1.2 方法》之 副作用
4. 副作用在一些语言如Pascal中,子程序被分成两种:函数和过程。虽然Java没有强制性地要求将方法区分为命令和函数,然而这种区别对于良好地设计程序有很大的帮助[1]。首先说明一个概念:副作用(side effect)。副作用一般是针对操作(表达式)而言的,一个操作/表达式有“副作用”是指在对该表达式求值时,会改变程序的一个或多个数据,以致再次对该表达式求值时,可能会得出不同的结果
2015-07-11 17:18:42 3683 1
原创 yqj2065经典语录
在上课时、博客中和《编程导论(Java)》书中,yqj2065说过一些简短的话,列举一些玩玩。如果您在我的博客中看见好玩的,不妨推荐一下。持续添加中...1. “噢姐姐 我想回家 牵着我的手 我有些困了”,听过没有?哦,我想说的是,如果你困了,想想C语言的指针。2. 何谓控制反转?拜托,在我的术语表中没有控制反转(Inversion of Control,英文缩写为IoC
2015-07-11 10:34:56 2693
原创 关于编程范式
"托马斯.库恩提出“科学的革命”的范式论之后,Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词。编程范式一般包括三个方面,以OOP为例:.....",好像在《编程导论(Java)》出版之前,仅仅在上课的PPT中写过。
2015-07-10 07:21:52 1885
原创 《编程导论(Java)》格言录
★的后面重要言论/建议/格言……★计算机软件开发的核心有二:程序的组织(面向对象技术)、问题求解(算法)。★柏拉图法则:类的世界独立存在,对象世界由类创建而来。★面向对象技术通过颠倒的理念世界而模拟唯物的真实世界。★我服务故我在。★Learning by doing.★计算就是模拟——艾伦·凯(Alan Curtis Kay)★程序必须是写给人读的,仅仅偶尔
2015-07-09 17:50:11 1197
原创 软件开发的核心技术
《编程导论(Java)·0.1.5 问题求解》程序员采用编程语言编写源代码的活动——编程常常概括成问题求解(problem solving)。待解决的问题可大可小,而问题的解决方案正好需要计算机的参与。因此将编程活动称为问题求解,将计算机科学视为问题求解的科学。问题的大小主要反映在代码量和软件开发参与者的数量上。实际问题可以是: ² 打印乘法99表;²
2015-07-09 16:39:36 13873
原创 《编程导论(Java)·12.1基本位运算》
能抓住和定位单个原子的机器将能制造任何东西…当然,一次一原子地造个大物体会很慢。——Eric Drexler《Engines of Creation: The Coming Eraof Nanotechnology》位运算(Bitwise operations)在bit层面上对操作数进行按位操作。集成电路的逻辑门(logic gate)能够在bit上执行与、或、异、反操作,因而位运
2015-07-09 07:29:47 1494
原创 《编程导论(Java)·6.3 private修饰符》
修饰符private提供了最高的保护和最低的可见度:private修饰的域、方法和嵌套类型,只能在它的定义类中访问。6.3.1 private各类书籍中会有一些程序设计上的清规戒律,如:★以private修饰所有的成员变量(Make all Member Variables private.)。★以private修饰任一助手方法。(Make any helper methods p
2015-07-08 18:52:50 936
原创 《编程导论(Java)·6.2.1 命名空间》
Java引入包(package)的主要原因,是为了划分命名空间,以避免/解决类名冲突问题。包所划分出的边界,又是一种默认的访问控制线,即[2.1.4访问修饰符与继承]所提及的包级私有。在讨论包级私有之前,先介绍Java包的本意。6.2.1 命名空间同名问题是编程语言心中的痛,标识符/名字的相同最终必须建立在某种不同之上。一个类中,如[2.2.3变量的声明模型]所述,变量同名问题由作用域
2015-07-08 17:59:51 1214
原创 《编程导论(Java)·4.1数据抽象的含义》
You have no choice about the necessity to integrateyour observations, your experiences, your knowledge into abstractideas, i.e., into principles.——Ayn Rand, 《Philosophy: Who Needs It》 1974数据抽象
2015-07-04 05:10:48 1945
junit-4.8.2-sources.jar
2014-10-07
编程导论_codes_2013.4.1
2014-08-01
Type Systems
2008-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人