Imperative Programming Paradigm: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
m (Text replacement - "<ref name=":0" />" to "")
m (Text replacement - " [[" to " [[")
 
(2 intermediate revisions by the same user not shown)
Line 18: Line 18:
=== 2017 ===
=== 2017 ===
* (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/procedural_programming Retrieved:2017-3-31.
* (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/procedural_programming Retrieved:2017-3-31.
** '''Procedural programming''' is a [[programming paradigm]], derived from [[structured programming]], based upon the concept of the ''procedure call''. Procedures, also known as routines, [[subroutine]]s, or functions (not to be confused with mathematical functions, but similar to those used in [[functional programming]]), simply contain a series of computational steps to be carried out. Any given procedure might be called at any point during a program's execution, including by other procedures or itself. The first major procedural programming languages first appeared circa 1960, including [[Fortran]], [[ALGOL]], [[COBOL]] and [[BASIC]]. [[Pascal (programming language)|Pascal]] and [[C (programming language)|C]] were published closer to the 1970s, while [[Ada (programming language)|Ada]] was released in 1980. [[Go (programming language)|Go]] is an example of a more modern procedural language, first published in 2009.        <P>       [[Central processing unit|Computer processors]] provide hardware support for procedural programming through a [[stack register]] and instructions for [[Subroutine#Jump to subroutine|calling procedures]] and returning from them. Hardware support for other types of programming is possible, but no attempt was commercially successful (for example [[Lisp machines]] or [[Java processor]]s).
** '''Procedural programming''' is a [[programming paradigm]], derived from [[structured programming]], based upon the concept of the ''procedure call''. Procedures, also known as routines, [[subroutine]]s, or functions (not to be confused with mathematical functions, but similar to those used in [[functional programming]]), simply contain a series of computational steps to be carried out. Any given procedure might be called at any point during a program's execution, including by other procedures or itself. The first major procedural programming languages first appeared circa 1960, including [[Fortran]], [[ALGOL]], [[COBOL]] and [[BASIC]]. [[Pascal (programming language)|Pascal]] and [[C (programming language)|C]] were published closer to the 1970s, while [[Ada (programming language)|Ada]] was released in 1980. [[Go (programming language)|Go]] is an example of a more modern procedural language, first published in 2009.        <P>         [[Central processing unit|Computer processors]] provide hardware support for procedural programming through a [[stack register]] and instructions for [[Subroutine#Jump to subroutine|calling procedures]] and returning from them. Hardware support for other types of programming is possible, but no attempt was commercially successful (for example [[Lisp machines]] or [[Java processor]]s).


=== 2014 ===
=== 2014 ===
* ([[2014_TheCurseoftheExcludedMiddle|Meijer, 2014]]) ⇒ [[Erik Meijer]]. ([[2014]]). “[http://cacm.acm.org/magazines/2014/6/175179-the-curse-of-the-excluded-middle/ The Curse of the Excluded Middle]].” In: Queue Journal, 12(4). [http://dx.doi.org/10.1145/2611429.2611829 doi:10.1145/2611429.2611829]  
* ([[2014_TheCurseoftheExcludedMiddle|Meijer, 2014]]) ⇒ [[Erik Meijer]]. ([[2014]]). “[http://cacm.acm.org/magazines/2014/6/175179-the-curse-of-the-excluded-middle/ The Curse of the Excluded Middle]].” In: Queue Journal, 12(4). [http://dx.doi.org/10.1145/2611429.2611829 doi:10.1145/2611429.2611829]  
** QUOTE: [[Imperative program]]s describe [[computation operation|computation]]s by repeatedly performing [[implicit effect]]s on a [[shared state|shared]] [[global state]]. In a [[parallel/concurrent/distributed world]], however, a [[single global state]] is an unacceptable [[bottleneck]], so the foundational assumption of [[Imperative Programming Paradigm|imperative programming]] that underpins most [[contemporary programming language]]s is starting to crumble. Contrary to popular belief, making [[state variable]]s [[immutable variable|immutable]] comes nowhere close to eliminating unacceptable [[implicit imperative effect]]s. [[Computation Operation|Operation]]s as ordinary as [[exception operation\exception]]s, [[threading operation|threading]], and [[I/O operation|I/O]] cause as much hardship as simple mutable state. …        <P>        … Pure [[functional programming]] is [[programming paradigm|programming]] with [[mathematical function]]s. This means the only way to express dependencies among values is by applying functions to arguments and harvesting values returned. Calling a function with the same arguments will return the same result every time.  
** QUOTE: [[Imperative program]]s describe [[computation operation|computation]]s by repeatedly performing [[implicit effect]]s on a [[shared state|shared]] [[global state]]. In a [[parallel/concurrent/distributed world]], however, a [[single global state]] is an unacceptable [[bottleneck]], so the foundational assumption of [[Imperative Programming Paradigm|imperative programming]] that underpins most [[contemporary programming language]]s is starting to crumble. Contrary to popular belief, making [[state variable]]s [[immutable variable|immutable]] comes nowhere close to eliminating unacceptable [[implicit imperative effect]]s. [[Computation Operation|Operation]]s as ordinary as [[exception operation\exception]]s, [[threading operation|threading]], and [[I/O operation|I/O]] cause as much hardship as simple mutable state. …        <P>        … Pure [[functional programming]] is [[programming paradigm|programming]] with [[mathematical function]]s. This means the only way to express dependencies among values is by applying functions to arguments and harvesting values returned. Calling a function with the same arguments will return the same result every time.


=== 1999 ===
=== 1999 ===

Latest revision as of 09:04, 23 May 2024

An Imperative Programming Paradigm is a programming paradigm that describe computations by repeatedly performing implicit effects on a shared global state.



References

2017

2014

1999

1993