Aviva Directory » Computers & Internet » Programming » Smalltalk

Smalltalk is a programming language released in 1972. One of many object-oriented languages based on Simula, it has been one of the most influential, as nearly every object-oriented language that came after it was influenced by Smalltalk.

As we know, computers are only able to interact with binary strings of symbols. For that reason, computer programs have to be coded in a binary language, which is also known as a machine language. However, binary codes are difficult for people to read, so directly programming in machine language is a lengthy process, and one that is prone to error. Complicating this even further is the fact that every type of computer system uses its own machine language.

Thus, early computing was painstakingly slow, as programmers had to write code in binary languages. Then languages, such as ALGOL, Fortran, COBOL, Pascal, and C were developed. These languages were considered problem-oriented because the programmers no longer had to write instructions in the language of a specific machine, but could instead write problem solutions in a language that made sense to them, perhaps using mathematical notations. These programming languages became known as higher languages.

In order for a program written in a higher language to be run on a specific computer, the code needed to be translated into machine language, a process that was automated through compilers. A specific compiler for each programming language and each type of machine was required in order for a program to be run on the machine.

Smalltalk operates a little differently. In the interest of avoiding the need to have a compiler for every type of computer that a program would be run on, the Java and Smalltalk programming languages use a machine-independent set of instructions. Programs are translated only into a quasi-machine language, regardless of which machine they will eventually be run on. For each type of machine, though, there needs to be a program that can interpret the quasi-machine language, creating a binary sequence that would be specific for the type of machine that it is running on. This program allows the computer to seem to understand the universal instruction set and, for that reason, this emulation of a computer system is known as a virtual machine, although they may also be called translators.

Although it was released under the name of Smalltalk-80, Smalltalk was first known as SmaViM, the capitalized letters forming the acronym, Smalltalk Virtual Machine. Created by the Smalltalk programming language, SmaViM is the virtual machine that can execute Smalltalk programs once they have been translated into byte code.

Smalltalk has always been, not merely a programming language, but a virtual machine and an integrated development environment (IDE). The IDE includes a modern GUI, which makes it easier for programmers to write Smalltalk programs, translate them, execute them, and perform debugging tasks. Today, there are multiple Smalltalk IDEs available from several sources, and they differ somewhat what they include and how they operate.

The central concept of Smalltalk is that of an object, which is why it is known as an object-oriented language. An object is always an instance of a class, and classes describe the properties and behavior of their instances.

Smalltalk is a pure object-oriented language. Unlike C++ and Java, there is no difference between values which are objects and values which are primitive types. In Smalltalk, primitive values (integers, booleans, characters) are also objects. All values are objects, while variables are not.

Two well-known variants of Smalltalk derived from the early Smalltalk-80 language. Squeak is an open-source implementation of Smalltalk-80, although it has since developed independently. The origins of VisualWorks go back to the first Smalltalk-80 implementation by Xerox PARC and now has both commercial and non-commercial versions. Other significant implementations of Smalltalk include Amber, Dolphin Smalltalk, GemStone/S, GNU Smalltalk, Pharo, Smalltalk/X, and VA Smalltalk.

Websites representing the Smalltalk programming language or any of its implementations or versions are appropriate for this category, as are any tools designed specifically for Smalltalk programming, tutorials, user groups, and other resources directly related to Smalltalk.





Recommended Resources

Search for Smalltalk on Google or Bing