Smalltalk 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Smalltalk 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票

软件简介

Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。Smalltalk由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和重构等。

Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。下面我们从几个不同的角度来解释Smalltalk。

  • 一种面向对象的程序设计语言:它是一种面向对象的语言,包含语言的语法和语义。一些编译器可以通过Smalltalk源程序产生可执行文件。这些编译器通常产生一种能在虚拟机上运行的二进制代码。Smalltalk语言本身非常精炼。
  • 一种程序设计环境:这里指的是一种提供许多对象的系统,而不是某种特殊的开发环境。和许多语言不同(包括C++),Smalltalk附带有一个巨大的、相当标准的类库。这些类使得开发Smalltalk程序的效率非常高。在其它语言(例如Ada,C和Pascal)中通常被作为语言的一部分的功能(例如条件判断,循环等),在Smalltalk由特定的类提供。
  • 一个应用开发环境(ADE):由于Smalltalk的历史原因,它具有一个非常优秀的高度集成、开放的应用开发环境。由于开发环境中的浏览器、 监视器以及调试器都由同样的源程序衍生出来的,不同的版本之间也具有相当好的兼容性。此外,这些工具的源程序都可以在ADE直接存取。

在Smalltalk中所有的东西都是对象,或者应该被当作对象处理。例如下面的表达式:

2 + 3.

应当被理解为:向对象2发送消息+,参数为对象3。

纯面向对象使得Smalltalk在语言结构方面有许多与其他语言不同的特点,例如在Smalltalk语言中没有条件语句,取而代之的是一些发送 给对象true或者false的消息,因此它们不属于语言部分,而属于Smalltalk的类库;也没有循环重复语句(C语言中的for, while),Smalltalk用向数字对象或块对象发送消息来实现重复执行。

展开阅读全文

代码

评论 (1)

加载中
翻不翻Q都访问不了 Smalltalk 官网呢?
2012/11/26 22:54
回复
举报
更多评论
发表了资讯
2011/09/16 00:00

为什么我喜欢Smalltalk?

本文是从 Why I love Smalltalk 这篇文章翻译而来。 C,C++,Python等,这些算是传统的语言吧,我从这些语言上学会了基本的编程技术。这之后,又有四种语言,它们让我学到了一些新的东西。这些语言改变了我思考的模式,虽然我从来没有使用过它们,但它们都是绝对值得你学习一下的。它们是: Smalltalk Lisp Erlang Hask...

14
19
发表了资讯
2010/12/18 00:00

GNU Smalltalk 3.2.3 发布

Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。Smalltalk由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。 Changes: 1. Many bugs were fixed. 2. gst-package supports downloading from HTTPS URLs. 3. You can optionally specify...

2
1
发表了资讯
2010/07/31 00:00

GNU Smalltalk 3.2.2 发布

Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。Smalltalk由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。 Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor,Java和Ruby等。90年代的许多软...

1
2
发表了资讯
2010/05/02 00:00

GNU Smalltalk 3.2 发布

Smalltalk,被公认为历史上第二个面向对象的程序设计 语言,和第一个真正的集成开发环境(IDE)。Smalltalk由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开 发。 该版本新增了从 smalltalk.gnu.org 下载远程程序包的功能,新增了一个基于 GTK+ 的浏览器,新增了 callgraph profiler ,增...

0
2
发表了资讯
2008/10/20 00:00

GNU Smalltalk 3.1 版本发布

与3.0.x版本相比,此版本集中于从其他Smalltalk引入类库,添加与其他外部类库的绑定,使建立C/Smalltalk接口更加容易。 3.0.5与3.1之间的更多详细区别如下: 基类的新特征 l BlockClosure方法#cull:, #cull:cull:, #cull:cull:cull:移除不被块接受的参数,评估块。 ² 有了这个新功能,可以省略#on o:和#ifNotNil:的参数...

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2012/09/23 21:35

艾伦·凯与Smalltalk语言

艾伦·凯与Smalltalk语言 您知道左面挂着图灵奖奖章的人是谁吗?他是世界上第二个面向对象语言——Smalltalk的发明人艾伦.凯(Alan.Kay),1972年,艾伦等人在Flex系统的基础上开发成功Smalltalk语言,为此,Alan.Kay被誉为Smalltalk语言之父。2003年,Alan.Key因为在面向对象程序设计上的杰出贡献,获得了有计算机界的诺...

0
1
发表于DevOps专区
2018/04/17 11:37

一位Smalltalk 程序员眼中的开发和部署

多年前,我曾是一名 Smalltalk 程序员,这种经验让我以一种不同的视角来观察编程的世界,例如,需要花时间来适应源代码应该存储在文本文件中的这种做法。 我们作为程序员通常会区分“开发”和“部署”,特别是我们在开发的地方所使用的工具不同于我们在之后部署软件时的地点和工具时。而在 Smalltalk 世界里,没有这样的...

0
0
发表了博客
2018/04/13 14:02

一位Smalltalk 程序员眼中的开发和部署

多年前,我曾是一名 Smalltalk 程序员,这种经验让我以一种不同的视角来观察编程的世界,例如,需要花时间来适应源代码应该存储在文本文件中的这种做法。 我们作为程序员通常会区分“开发”和“部署”,特别是我们在开发的地方所使用的工具不同于我们在之后部署软件时的地点和工具时。而在 Smalltalk 世界里,没有这样的...

0
0
发表了博客
2018/04/13 09:21

一位Smalltalk 程序员眼中的开发和部署

多年前,我曾是一名 Smalltalk 程序员,这种经验让我以一种不同的视角来观察编程的世界,例如,需要花时间来适应源代码应该存储在文本文件中的这种做法。 我们作为程序员通常会区分“开发”和“部署”,特别是我们在开发的地方所使用的工具不同于我们在之后部署软件时的地点和工具时。而在 Smalltalk 世界里,没有这样的...

0
0
发表于程序人生专区
10/13 14:37

iOS面试题:为什么Objective-C中有MetaClass这个设计?

前置知识 首先简单分析下在Objective-C中,对象是什么。下面源码基于Runtime-709分析。 typedef struct objc_object *id;//id其实是一个object结构体的指针,所以id不用加* typedef struct objc_class *Class;//......

0
0
发表了博客
2016/08/13 08:55

1.2 面向对象语言的发展历史

### Simula 面向对象技术最早是在编程语言Simula中提出的。1967年5月20日,在挪威奥斯陆郊外的小镇莉沙布举行的IFIP TC-2 工作会议上,挪威科学家Ole-Johan Dahl和Kristen Nygaard正式发布了Simula 67语言。Simula 67被认为是最早的面向对象程序设计语言,是面向对象的开山祖师,它引入了所有后来面向对象程序设计语言所...

0
0
发表了博客
2014/06/30 02:30

Io 语言的编程模型

艰难的学习过程,原来缺乏的竟然是原型编程的概念

0
0
发表了博客
2019/04/08 14:15

缅怀那些正渐行渐远的编程语言

现代编程语言的祖先 (1801) -------------- Joseph Marie Jacquard 用打孔卡为一台织布机编写指令,在挂毯上织出了“hello, world”字样。当时的reddit网友对这项工作的反响并不热烈,因为它既缺少尾递归调用,...

0
0
发表了博客
2016/08/09 14:18

PHP trait使用

php_trait

0
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
1 评论
22 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部