欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Smalltalk
小 (→简介) |
小 (→简介) |
||
第26行: | 第26行: | ||
Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:[[C++]],C#,[[Objective-C]],Actor,[[Java]]和[[Ruby]]等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。 | Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:[[C++]],C#,[[Objective-C]],Actor,[[Java]]和[[Ruby]]等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。 | ||
− | Smalltalk as an Operating System | + | Smalltalk as an [[operating system|Operating System]] |
Smalltalk 不仅仅是一门语言。Smalltalk-80 系统最初是作为一个完整的操作系统交付的,旨在运行在一台裸机上。Smalltalk 包含了通常运行在操作系统层面的代码。 | Smalltalk 不仅仅是一门语言。Smalltalk-80 系统最初是作为一个完整的操作系统交付的,旨在运行在一台裸机上。Smalltalk 包含了通常运行在操作系统层面的代码。 |
2022年8月31日 (三) 11:32的版本
您可以在Wikipedia上了解到此条目的英文信息 Smalltalk Thanks, Wikipedia. |
Samlltalk
目录 |
简介
Smalltalk 发行于 1972年(50岁),开发始于 1969 年。
I like it... It’s nice and clean and simple and pretty. Nice stuff!
— Alan Kay
Smalltalk 是 70 年代初期美国 XEROX 公司开发的,它不仅是一门编程语言,一个窗口系统,也是一个完整的编程环境,一个集编程、调试、运行和输出为一体的统一环境。
Smalltalk 创立了面向对象的思想并一直沿用至今。
Smalltalk is the consummate teaching language, Smalltalk is OOP done right.
The best way to predict the future is to invent it! -Alan Kay
Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。
Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。
Smalltalk as an Operating System
Smalltalk 不仅仅是一门语言。Smalltalk-80 系统最初是作为一个完整的操作系统交付的,旨在运行在一台裸机上。Smalltalk 包含了通常运行在操作系统层面的代码。
功能
Dynamically Typed + Live Environment
Basic Aspects of Squeak and the Smalltalk-80 Programming Language
DynamicType (SelfType, ClassType, InstanceType)
Live Typing Automatic Type Annotation for Dynamically Typed Languages]
Smalltalk 杀手级功能:
- 编程语言虚拟机机制
- 基于镜像(Image-based)的持久性
- 对象,一切都是对象,对象之间只通过消息进行交流(最纯粹的OO,也是最早的一个)
- Live(实时)编程
- 先进的调试技术,如即时修改代码(on-the-fly code changes)
- 简单、不混乱(uncluttered)的 IDE 界面
- 特定领域语言(DSL)是 Smalltalk 唯一的工作方式,程序员必须使用对该领域自然的语言和符号来关注问题领域。
Lisp, Smalltalk, and the Power of Symmetry
对比
Smalltalk: A White Paper Overview
Smalltalk | Java/C++ 术语 |
---|---|
instance variable | data member |
instance method | member function |
class variable | static data member |
class method | static member function |
指南
- Smalltalk: A White Paper Overview
- Basic Aspects of Squeak and the Smalltalk-80 Programming Language
- GNU Emacs M-x package-install RET smalltalk-mode RET
虚拟机
- OpenSmalltalk The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
- Cog VM for Squeak, Pharo, Cuis, and Newspeak.Cog is the fastest virtual machine for Squeak and Pharo.
- Squeak Virtual Machine
- Pharo VM
- RoarVM - The Manycore SqueakVM
- RSqueak A Squeak VM written in RPython.RSqueak-App
实现
Smalltalk版本:
- Smalltalk-80
- Smalltalk-78
- Smalltalk-72
Design Principles Behind Smalltalk
SmaCC (Smalltalk Compiler-Compiler) SmaCC @ GitHub
Smalltalk 方言和开源实现
- GNU Smalltalk
- Pharo: 专注于现代软件工程和程序开发技术
- Squeak: 定位于教学
- Dolphin Smalltalk
- Cuis Smalltalk Dr. Geo update, Cuis port The Cuis-Smalltalk Book
- HaverOnCuis A Cuis based Smalltalk With Modules
商业版
Smalltalk商业版本发行商:
包管理
项目
- Zinc HTTP Components
- Amber A Web developer's best friend.
- Seaside web framework
- Roassal Visualization Engine
- MOOSE Platform for software and data analysis. Agile Visualization
Objective-C
- Objective-C与SmallTalk
- Objective-Smalltalk is a programming language derived from Objective-C.
C/C++
Java
Ruby
- GemStone Maglev Ruby 基于GemStone/S虚拟机的Ruby语言实现。
Erlang
函数式
- Why is smalltalk not a functional programming language?
- HST is a Smalltalk implementation in Haskell
Cloud
文档
- Introduction to Smalltalk
- Smalltalk-80 : hardware and software
- Introduction to Seaside
- A Meta Model Supporting Both Hardware and Smalltalk-based execution of FPGA Circuits
- Parallelism with OpenCL in Bee Smalltalk
- JavaScript for VW Applications
- Security on JIT VMs
- Inside AOStA
- Retrospective Seven VM Engineering Years
- Bee Smalltalk Runtime
- Enhancing SqueakNOS functionalities
- A little Journey in a Virtual Machine
- Sly and the RoarVM GitHub
- Runtime Bytecode Transformation for Smalltalk
- Inter-Language Reflection Inter-Language Reflection
- Open Aspects Open Aspects
- Towards Unified Aspect-Oriented Programming Towards Unified Aspect-Oriented Programming
- Towards aTaxonomy of Unit Tests Towards a Taxonomy of SUnit Tests
- Smalltalk in moodle Runtime Bytecode Transformation for Smalltalk
- Building run-time analysis tools by means of pluggable interpreters
- Multi Core Playground
- SOA – Benefits and Risks
- Seaside – A Multiple Control FlowWeb Application Framework
- Classboxes: A Minimal Module Model Supporting Local Class Extension
- German in 7 Million Shared Objects
- Smalltalk in Large-Scale Enterprise Architectures
- The making of Virtual Domino Topplings. VRML: Virtual Reality Meta Language
- Numerical Methods
图书
- 《Smalltalk-80: The Language and its Implementation》Adele Goldberg and DavidRobson
- Dynamic Web Development with Seaside
开发者
用户
Smalltalk用户和成功案例:
教育
- Learn How To Program Learning to program the Smalltalk way
- How learning Smalltalk can make you a better developer
图集
链接
- Smalltalk官网
- Squeak下载和存档
- SmalltalkHub
- Smalltalk文档
- The World Of Smalltalk
- Smalltalk 101
- 为什么我喜欢Smalltalk?
- Randal Schwartz访谈:Ruby之根——Smalltalk王者归来
- Squeak:一个免费的多系统下运行的Smalltalk环境
- Viewpoints Research Institute design for learning, powerful ideas education.
- ANSI Smalltalk
- Squeak 和 Smalltalk-80 编程语言的基本特征