/* Distinguishing Features */ Correction: Smalltalk -> Simula. Simula had objects in 1967, Small talk wasn't developed until 1970.
Most, if not all, high-level languages support the following features: sub-routines (functions and procedures), variables, flow-control, data types, I/O, arithmetic operations, string operations, dynamic allocation (heaps), arrays, structures, constants, and literals. Unique features of some languages will find their way into other languages if the feature is generally useful, or will remain unique to the language otherwise. An example of a feature that has not received widespread acceptance is '''sets'''.
'''Objects''' are a means of encapsulating data and algorithms that operate on that data, with polymorphism. Originally specified in
SmallTalk, objects became popular with the advent of C++. Many languages which originally did not support objects have since acquired them. For instance [[Visual BASIC]] is a version of BASIC supporting objects. Likewise, [[Borland Delphi]] is a version of Pascal supporting objects.