Data-Driven Programming Paradigm: Difference between revisions

(Created page with "<B>See:</B> Programming Paradigm, Data-Driven Task, Data-Driven Algorithm, Data-Driven System, Learning-based Programming, [[Rules-Driven Programming Paradigm...")
 
m (Text replacement - "<P> [[" to "<P>  [[")
 
(28 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<B>See:</B> [[Programming Paradigm]], [[Data-Driven Task]], [[Data-Driven Algorithm]], [[Data-Driven System]], [[Learning-based Programming]], [[Rules-Driven Programming Paradigm]], [[Declarative Programming Paradigm]].
A [[Data-Driven Programming Paradigm]] is a [[Programming Paradigm]] were [[program statement]]s describe the [[data to be matched]] and the [[processing required]] rather than defining a sequence of steps to be taken.
* <B>Context:</B>
** It can allow for [[Program Change]]s by editing [[Data Structure]]s (not the [[program code]]).
** …
* <B>Counter-Example(s):</B>
** an [[Object-Oriented Programming Paradigm]] (which focuses on [[encapulation]]).
** a [[Modular Programming Paradigm]].
** a [[Functional Programming Paradigm]].
* <B>See:</B> [[AWK]], [[Input Stream]], [[Regular Expression]], [[Event-Driven Programming]], [[Main Loop]], [[Abstract Data Type]], [[Data]], [[Data-Driven Algorithm]], [[Data-Driven Task]], [[Data-Driven System]], [[Learning-based Programming]], [[Rules-Driven Programming Paradigm]], [[Declarative Programming Paradigm]].
 
----
----
----
----
==References==


===2011===
== References ==
* http://en.wikipedia.org/wiki/Data-driven_programming
 
** In [[computer programming]], '''data-driven programming''' is a [[programming paradigm]] in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.<ref name="awk">{{cite web|url=http://www.ibm.com/developerworks/aix/tutorials/au-gawk/section2.html|title=Get started with GAWK: AWK language fundamentals|last=Stutz|first=Michael|date=September 19, 2006|work=developerWorks|publisher=[[IBM]]|accessdate=2010-10-23|quote=[AWK is] often called a data-driven language -- the program statements describe the input data to match and process rather than a sequence of program steps}}</ref> Adapting [[abstract data type]] design methods to [[object-oriented programming]] results in a data-driven design.<ref name="responsibility">{{cite journal|last1=Wirfs-Brock|first1=R.|last2=Wilkerson |first2=B.|year=1989|title=Object-oriented design: a responsibility-driven approach|journal=Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications|publisher=[[Association for Computing Machinery|ACM]]|location=New York|pages=71–75|doi=10.1145/74877.74885|authorlink1=Rebecca Wirfs-Brock}}</ref> This type of design is used in object-oriented programming to define classes during the conception of a piece of software. Data-driven programming has been argued to lead to bad [[object-oriented design]], with [[responsibility-driven design]] promoted as a better approach.
=== 2013 ===
* (Wikipedia, 2013) ⇒ http://en.wikipedia.org/wiki/Data-driven_programming Retrieved:2013-12-1.
** In [[computer programming]], '''data-driven programming</B> is a [[programming paradigm]] in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.<ref name=awk>{{cite web|url=http://www.ibm.com/developerworks/aix/tutorials/au-gawk/section2.html|title=Get started with GAWK: AWK language fundamentals|last=Stutz|first=Michael|date=September 19, 2006|work=developerWorks|publisher=[[IBM]]|accessdate=2010-10-23|quote=[AWK is] often called a data-driven language -- the program statements describe the input data to match and process rather than a sequence of program steps}} </ref> Standard examples of data-driven languages are the text-processing languages [[sed]] and [[AWK]],  where the data is a sequence of lines in a [[input stream]] – these are thus also known as line-oriented languages – and pattern matching is primarily done via [[regular expression]]s or line numbers. Data-driven programming is similar to [[event-driven programming]], in that both are structured as pattern matching and resulting processing, and are usually implemented by a [[main loop]], though they are typically applied to different domains.        <P>        Adapting [[abstract data type]] design methods to [[object-oriented programming]] results in a data-driven design.<ref name="responsibility">{{cite journal|last1=Wirfs-Brock|first1=R.|last2=Wilkerson |first2=B.|year=1989|title=Object-oriented design: a responsibility-driven approach|journal=Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications|publisher=[[Association for Computing Machinery|ACM]]|location=New York|pages=71–75|doi=10.1145/74877.74885|authorlink1=Rebecca Wirfs-Brock}} </ref> This type of design is sometimes used in object-oriented programming to define classes during the conception of a piece of software.
<references/>
<references/>
=== 2003 ===
* (Raymond, 2003) ⇒  Eric Steven Raymond. ([[2003]]). “The Art of Unix Programming.</i>”. Chapter 9 http://www.faqs.org/docs/artu/ch09s01.html ISBN:0131429019
** QUOTE: … When [[doing data-driven programming]], one clearly distinguishes [[code]] from the [[data structure]]s on which it acts, and designs both so that one can make changes to the [[logic of the program]] by editing not the code but the [[data structure]].        <P>         [[Data-Driven Programming Paradigm|Data-driven programming]] is sometimes confused with [[object orientation]], another style in which data organization is supposed to be central. There are at least two differences. One is that in [[Data-Driven Programming Paradigm|data-driven programming]], the data is not merely the state of some object, but actually defines the control flow of the program. Where the primary concern in [[OO]] is [[encapsulation]], the primary concern in [[Data-Driven Programming Paradigm|data-driven programming]] is writing as little [[fixed code]] as possible. [[Unix]] has a stronger tradition of [[Data-Driven Programming Paradigm|data-driven programming]] than of [[OO]].


----
----
__NOTOC__
[[Category:Concept]]

Latest revision as of 01:41, 27 February 2024

A Data-Driven Programming Paradigm is a Programming Paradigm were program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.



References

2013

  • (Wikipedia, 2013) ⇒ http://en.wikipedia.org/wiki/Data-driven_programming Retrieved:2013-12-1.
    • In computer programming, data-driven programming is a programming paradigm in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.[1] Standard examples of data-driven languages are the text-processing languages sed and AWK, where the data is a sequence of lines in a input stream – these are thus also known as line-oriented languages – and pattern matching is primarily done via regular expressions or line numbers. Data-driven programming is similar to event-driven programming, in that both are structured as pattern matching and resulting processing, and are usually implemented by a main loop, though they are typically applied to different domains.

      Adapting abstract data type design methods to object-oriented programming results in a data-driven design.[2] This type of design is sometimes used in object-oriented programming to define classes during the conception of a piece of software.

  1. Stutz, Michael (September 19, 2006). "Get started with GAWK: AWK language fundamentals". developerWorks. IBM. http://www.ibm.com/developerworks/aix/tutorials/au-gawk/section2.html. Retrieved 2010-10-23. "[AWK is] often called a data-driven language -- the program statements describe the input data to match and process rather than a sequence of program steps" 
  2. Wirfs-Brock, R.; Wilkerson, B. (1989). "Object-oriented design: a responsibility-driven approach". Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (New York: ACM): 71–75. doi:10.1145/74877.74885. 

2003