self 语言,是一种基于原型的面向对象程序设计语言,于1986年由施乐帕洛阿尔托研究中心的David Ungar和Randy Smith给出了最初的设计。
Self语言把概念上的精简作为设计原则。它取消了类的概念,只有对象的概念,同时把消息作为最基本的操作。把对象的属性理解为获取或更改属性这两种方法,从而把属性的概念简化为方法;取消了变量和赋值,并以通过消息来读槽和写槽的方式代之。
Self语言是在Smalltalk的基础上发展而来,沿用了Smalltalk中一切都是对象的风格。Self同Smalltalk一样既是一个编程语言,也是一个集成开发环境和运行环境。Self也拥有一个图形用户界面Morphic,Self的编程环境也是基于Morphic来实现的。Self在精简语言概念的同时也把大量的工作转交给环境来处理。如可见性(visibilIty),模块与代码的管理都是由环境来处理的,语言中的反馈机制(reflection)也同环境密切相关。
在发展Self的过程中,Self的设计研究人员也探索了Self的程序设计。他们提出了traits的概念,用对象实现了名字(对象名或方法名)的管理,用动态继承实现模式转换。
在实现Self系统的过程中,设计研究人员发展出了一种动态自适应编译技术。这种技术的采用提高了Self代码的执行效率。
使用 Self,阅读 Self 手册
构建 Self VM, 阅读 VM 构建指导手册
构建 Self World, 阅读 world building instructions