| | Programming languages can be divided into '''declarative''' and '''procedural''' languages. Declarative languages define information such as relationships and attributes. Modula is an example of a declarative language. Procedural languages define processes (algorithms) for the computer to follow. C is an example of a procedural language. | | Programming languages can be divided into '''declarative''' and '''procedural''' languages. Declarative languages define information such as relationships and attributes. Modula is an example of a declarative language. Procedural languages define processes (algorithms) for the computer to follow. C is an example of a procedural language. |
| − | Languages can also be divided into '''low-level languages''' such as Assembly, and '''high-level languages''' such as COBOL. Low-level languages require more steps to accomplish the same tasks than high-level languages. [[Assembly Language]] is not '''a''' specific language, such as BASIC, but rather any of a group of languages that are each specific to a particular [[CPU]]. | + | Languages can also be divided into '''low-level languages''' such as Assembly, and '''high-level languages''' such as COBOL. Low-level languages are those where the program code interacts directly (or fairly directly), with the CPU, whereas high-level languages have a higher level of abstraction, leaving the compiler or interpreter to deal with issuing the appropriate commands to the CPU, and similar issues. |
| | + | The level of a language is a sliding scale, with some languages considered more high-level than others. Low-level langauges tend to require more steps to accomplish the same tasks than high-level languages. [[Assembly Language]] is not '''a''' specific language, such as BASIC, but rather any of a group of languages that are each specific to a particular [[CPU]]. |
| | 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'''. | | 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. | | '''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. |