Hypertalk

Hypertalk, a computer programming language designed in 1985 as “programming for the rest of us” by American computer scientist Bill Atkinson for Apple’s Macintosh. Using a simple English-like syntax, Hypertalk enabled anyone to combine text, graphics, and audio quickly into “linked stacks” that could be navigated by clicking with a mouse on standard buttons supplied by the program. Hypertalk was particularly popular among American educators in the 1980s and early ’90s for classroom multimedia presentations. Although Hypertalk had many features of object-oriented programming, Apple did not develop it for other computer platforms and let it languish; as Apple’s market share declined in the 1990s, a new cross-platform way of displaying multimedia left Hypertalk all but obsolete.

Object-oriented programming

Object-oriented programming, use of predefined programming modular units (objects, classes, subclasses, and so forth) in order to make programming faster and easier to maintain. Object-oriented languages help to manage complexity in large programs. Objects package data and the operations on them so that only the operations are publicly accessible and internal details of the data structures are hidden. This information hiding made large-scale programming easier by allowing a programmer to think about each part of the program in isolation. In addition, objects may be derived from more general ones, “inheriting” their capabilities. Such an object hierarchy made it possible to define specialized objects without repeating all that is in the more general ones.

Object-oriented programming began with the Simula language (1967), which added information hiding to ALGOL. Another influential object-oriented language was Smalltalk (1980), in which a program was a set of objects that interacted by sending messages to one another. Since the 1990s, Java has been one of the most successful object-oriented languages.

 

Computer program

Computer program, detailed plan or procedure for solving a problem with a computer; more specifically, an unambiguous, ordered sequence of computational instructions necessary to achieve such a solution. The distinction between computer programs and equipment is often made by referring to the former as software and the latter as hardware..

Programs stored in the memory of a computer enable the computer to perform a variety of tasks in sequence or even intermittently. The idea of an internally stored program was introduced in the late 1940s by the Hungarian-born mathematician John von Neumann. The first digital computer designed with internal programming capacity was the EDVAC (acronym for Electronic Discrete Variable Automatic Computer), constructed in 1949.

A program is prepared by first formulating a task and then expressing it in an appropriate computer language, presumably one suited to the application. The specification thus rendered is translated, commonly in several stages, into a coded program directly executable by the computer on which the task is to be run. The coded program is said to be in machine language, while languages suitable for original formulation are called problem-oriented languages. A wide array of problem-oriented languages has been developed, some of the principal ones being COBOL (Common Business-Oriented Language), FORTRAN (Formula Translation), BASIC (Beginner’s All-Purpose Symbolic Instruction Code), and Pascal.

Computers are supplied with various programs designed primarily to assist the user to run jobs or optimize system performance. This collection of programs, called the operating system, is as important to the operation of a computer system as its hardware. Current technology makes it possible to build in some operating characteristics as fixed programs (introduced by customer orders) into a computer’s central processing unit at the time of manufacture. Relative to user programs, the operating system may be in control during execution, as when a time-sharing (q.v.) monitor suspends one program and activates another, or at the time a user program is initiated or terminated, as when a scheduling program determines which user program is to be executed next. Certain operating-system programs, however, may operate as independent units to facilitate the programming process. These include translators (either assemblers or compilers), which transform an entire program from one language to another; interpreters, which execute a program sequentially, translating at each step; and debuggers, which execute a program piecemeal and monitor various circumstances, enabling the programmer to check whether the operation of the program is correct or not.