FACTOID # 123: The top ten countries for tourist destinations account for 49.6 percent of all tourist arrivals worldwide.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS   

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Programming paradigm

A programming paradigm is a fundamental style of computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems). Image File history File links This is a lossless scalable vector image. ... Programming redirects here. ... This does not cite any references or sources. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ...


A programming language can support multiple paradigms. For example programs written in C++ or Object Pascal can be purely procedural, or purely object-oriented, or contain elements of both paradigms. Software designers and programmers decide how to use those paradigm elements. A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... This does not cite any references or sources. ... C++ (pronounced ) is a general-purpose programming language. ... Object Pascal is an object oriented derivative of Pascal mostly known as the primary programming language of Borland Delphi. ... This article is about the computer programming paradigm. ... Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ...


In object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations. When programming computers or systems with many processors, process-oriented programming allows programmers to think about applications as sets of concurrent processes acting upon logically shared data structures. Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ... Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. ... A binary tree, a simple type of branching linked data structure. ...


Just as different groups in software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, C#, Visual Basic, Common Lisp, Scheme, Python, Ruby and Oz). Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... Other listings of programming languages are: Categorical list of programming languages Generational list of programming languages Chronological list of programming languages Note: Esoteric programming languages have been moved to the separate List of esoteric programming languages. ... For other uses, see Small talk. ... Haskell is a standardized purely functional programming language with non-strict semantics, named after the logician Haskell Curry. ... Object Pascal is an object oriented derivative of Pascal mostly known as the primary programming language of Borland Delphi. ... C++ (pronounced ) is a general-purpose programming language. ... C# (see section on name, pronunciation) is an object-oriented programming language developed by Microsoft as part of the . ... This article is about the Visual Basic language shipping with Microsoft Visual Studio 6. ... Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard X3. ... Scheme is a multi-paradigm programming language. ... Python is a general-purpose, high-level programming language. ... Ruby is a reflective, dynamic, object-oriented programming language. ... Oz is a multi-paradigm programming language. ...


Many programming paradigms are as well known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of the goto statement. Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles.[citation needed] Avoiding certain techniques can make it easier to prove theorems about a program's correctness—or simply to understand its behavior. In computer science, a side-effect is a property of a programming language function that it modifies some state other than its return value. ... Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. ... GOTO is a statement found in many computer programming languages. ...

Contents

History

Initially, computers were programmed using binary. This was difficult and led to many errors that were difficult to find. Programs written in binary are said to be written in machine code, this is a very low-level programming paradigm.


To make programming easier, assembly languages were developed. These replaced machine code functions with mnemonics and addresses with labels. Assembly language programming is also a low-level paradigm although it is a second generation paradigm. Although this assembly language is an improvement over machine code, it is still prone to errors and code is difficult to debug, correct and maintain.


The next advance was the development of procedural languages. These are third generation languages and are also known as high-level languages. These languages are problem oriented as they use terms appropriate to the type of problem being solved. For example, COBOL (Common Business Oriented Language) uses the language of business. It uses terms like file, move and copy.


FORTRAN (FORmula TRANslation) and ALGOL (ALGOrithmic Language) were developed mainly for scientific and engineering problems. Although one of the ideas behind the development of ALGOL was that it was an appropriate language to define algorithms. BASIC (Beginners All purpose Symbolic Instruction Code) was developed to enable more people to write programs. All these languages follow the procedural paradigm. That is, they describe, step by step, exactly the procedure that should be followed to solve a problem.


The problem with procedural languages is that it can be difficult to reuse code and to modify solutions when better methods of solution are developed. In order to address these problems, object-oriented languages (like Eiffel, Smalltalk and Java) were developed. In these languages data, and methods of manipulating the data, are kept as a single unit called an object. The only way that a user can access the data is via the object's methods. This means that, once an object is fully working, it cannot be corrupted by the user. It also means that the internal workings of an object may be changed without affecting any code that uses the object.


A further advance was made when declarative programming paradigms were developed. In these languages the computer is told what the problem is, not how to solve the problem. Given a database the computer searches for a solution. The computer is not given a procedure to follow as in the languages discussed so far.


Another programming paradigm is functional programming. Programs written using this paradigm use functions, which may call other functions (including themselves). These functions have inputs and outputs. Variables, as used in procedural languages, are not used in functional languages. Functional languages make a great deal of use of recursion


Examples

Prose is writing distinguished from poetry by its greater variety of rhythm and its closer resemblance to everyday speech. ... Separation of concerns entails breaking down a program into distinct parts that overlap in functionality as little as possible. ... AspectJ is an aspect-oriented extension to the Java programming language created at Xerox PARC. An AspectJ compiler weaves aspects into Java bytecode to implement crosscutting concerns. ... Attribute-oriented programming (@OP) is a program-level marking technique. ... In computer programming, a Java annotation is a way of adding metadata to Java source code that can also be available to the programmer at run-time. ... Automata-Based Programming is a programming paradigm. ... Class-based programming, or more commonly class-orientation, refers to the style of object-oriented programming in which inheritance is achieved by defining classes of objects, as opposed to the objects themselves (compare Prototype-based programming). ... Prototype-based programming is a style of object-oriented programming in which classes are not present, and behavior reuse (known as inheritance in class-based languages) is performed via a process of cloning existing objects that serve as prototypes. ... It has been suggested that this article or section be merged with Component-based software engineering. ... Object Linking and Embedding (OLE) is a technology that allows embedding and linking to documents and other objects, developed by Microsoft. ... Constraint programming is a programming paradigm where relations between variables can be stated in the form of constraints. ... Logic programming (which might better be called logical programming by analogy with mathematical programming and linear programming) is, in its broadest sense, the use of mathematical logic for computer programming. ... It has been suggested that this article or section be merged with Dataflow architecture. ... A spreadsheet is a computer application that simulates a paper worksheet. ... Declarative programming is a term with two distinct meanings, both of which are in current use. ... In computer science, flow-based programming (FBP) is a programming paradigm that defines applications as networks of black box processes, which exchange data across predefined connections. ... Function-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on Programs as mathematical objects, the other being Value-level programming. ... Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. ... SNOBOL (StriNg Oriented symBOlic Language) is a computer programming language developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky. ... Logic programming (which might better be called logical programming by analogy with mathematical programming and linear programming) is, in its broadest sense, the use of mathematical logic for computer programming. ... In computer science, imperative programming, as opposed to declarative programming, is a programming paradigm that describes computation in terms of a program state and statements that change the program state. ... Declarative programming is a term with two distinct meanings, both of which are in current use. ... In computer programming, intentional programming is a collection of concepts which enable software source code to reflect the precise information, called intention, which programmers had in mind when conceiving their work. ... Literate programming is a philosophy of computer programming based on the premise that a computer program should be written similar to literature, with human readability as a primary goal. ... Logic programming (which might better be called logical programming by analogy with mathematical programming and linear programming) is, in its broadest sense, the use of mathematical logic for computer programming. ... Prolog is a logic programming language. ... Abductive Logic Programming is a high level knowledge-representation framework that allows us to solve problems declaratively based on abductive reasoning. ... In computer science, message passing programming, as opposed to imperative programming, is a programming paradigm that describes computation in terms of communicating messages among senders and recipients that have local state as opposed to operations that change a global state. ... Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ... For other uses, see Small talk. ... When a language is originally designed without any syntax to nest function calls, pipeline programming is a simple syntax change to add it. ... A pipeline of three programs run on a text terminal In Unix-like computer operating systems, a pipeline is the original software pipeline: a set of processes chained by their standard streams, so that the output of each process (stdout) feeds directly as input (stdin) of the next one. ... Policy-based design is a programming technique summarized as a compile-time equivalent of the Strategy pattern. ... This article is about the computer programming paradigm. ... Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. ... A common method of simplification is to divide a problem into subproblems of the same type. ... The word iteration is sometimes used in everyday English with a meaning virtually identical to repetition. ... In computer science, reflective programming is a programming paradigm that encourages programming driven by the use of reflection at runtime. ... Scalar programming is a term used to refer to those programming approaches that do not follow the Array programming paradigm. ... Array programming languages (also known as vector or multidimensional languages) generalize operations on scalars to apply transparently to vectors, matrices, and higher dimensional arrays. ... Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. ... Unstructured programming is a programming paradigm where all code is contained in a single continuous block. ... Subject-oriented programming is a method of program composition that supports building object-oriented systems as compositions of subjects, extending systems by composing them with new subjects, and integrating systems by composing them with one another (perhaps with glue or adapter subjects). ... Tree programming refers to the use of a programming language to analyze data trees, in a way unique from conventional programming languages. ... Value-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on Programs as mathematical objects, the other being Function-level programming. ... Function-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on Programs as mathematical objects, the other being Value-level programming. ... Metaprogramming is the writing of computer programs that write or manipulate other programs (or themselves) as their data or that do part of the work during compile time that is otherwise done at run time. ...

See also

Language oriented programming is a style of computer programming, via metaprogramming in which, rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific programming languages for the problem first, and solves the problem in those languages. ... ARS based programming is built on three principles; Abstraction, Reference and Synthesis. ... Grammar-oriented Programming (GOP) and Grammar-oriented Object Design (GOOD) are based on designing and creating a domain-specific language for a specific business domain. ...

External Links

Programming paradigms


  Results from FactBites:
 
Programming Paradigms Derivable from ARS (495 words)
Among the programming paradigms, the functional programming paradigm results from strictly applying the original Lambda Calculus, invented by Alonzo Church in 1941, to programming.
Programs written in a functional style are very robust and easier to debug in contrast to imperative programs which may produce side effects causing a complexity that is very difficult to handle.
Scheme is a hybrid language which favors the functional programming paradigm but can also be used to program in an object oriented or even imperative style because it does allow assignment statements, which are flagged however to indicate their potential danger.
Programming paradigm - Wikipedia, the free encyclopedia (445 words)
A programming paradigm provides (and determines) the view that the programmer has of the execution of the program.
For instance, in object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations.
For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of goto.
  More results at FactBites »

 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your location
Your comments
Please enter the 5-letter protection code


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.