Topic: declarative vs. procedural representation

topics > computer science > programming > Group: goals for a programming system

conditional control
program representation
type declaration

aspect-oriented programming
descriptive languages
design for change
dynamic vs. static data type
hardware vs. software
information hiding
maps and rings
object-oriented design
programming by sequential implementation
separate a module's interface specification from its implementation
spatial vs. temporal representation
word vs. picture
XML data type

Subtopic: declarative vs. procedural up

Quote: programs are the central core of computer science research; i.e., a piece of text ("what does it say") instead of a computation ("what happens next"); finite and rigorous [»tursWM10_2003]
Quote: should define an interactive display declaratively without modifying the objects to be displayed [»maieD1_1986]
Quote: to make a programming language more expressive, use declarative structures and explicit notation
Quote: put details in the metadata, abstractions into code; think declaratively for ease of change at the last moment [»huntA_2000]
Quote: in paper solutions to programming problems, 18% used constraints, 16% used declarations; 12% used imperative programming; children without programming experience
Quote: in paper solutions, 66% of participants used pictures or diagrams [»paneJF2_2001]
Quote: pictures and diagrams used early in a solution, when defining setup and layout
Quote: constraints make applications more modular; define at point of use, automatically adjusting to other objects; avoids change/delete notification [»zandBT11_2005]

Subtopic: data vs. procedural up

Quote: data structures define the code better than functions or flowcharts [»raymES3_1998]
Quote: recursive procedural abstraction for interoperability vs. data abstraction for optimization [»cookWR5_1990]
Quote: programming languages treat each statement as a black box with an input-output interface; poor match to a programmer's intentions [»lopeCV12_2003]
Quote: functional decomposition is insufficient for data abstraction because interesting data needs to be global; like single inheritance [»stroB_1991]
Quote: Slam found many errors in Windows device drivers; it separates the control path from the data path; e.g., resource use [»laruJR5_2004]
Quote: avoid building serialized abstractions on top of XML; keep processing and data separate [»vandE_2004]

Subtopic: form vs. content up

Quote: English students should be taught form instead of content; can't write clean sentences if you don't know what they are [»fishS5_2005]

Subtopic: object-oriented vs. procedural up

Quote: the procedure-oriented and object-oriented views of programming are fundamentally different for both design and implementation [»stroB_1991]
Quote: object-oriented abstraction disciminates the operation vs. representation for abstract data type
Quote: easy to create a new class; decentralized representation with locally defined state
Quote: with object-orientation, a new observation must be added to each class; inheritance helps
Quote: do not query an object, make a decision, and perform an action (procedural, bug prone) [»huntA1_2003]
Quote: tell objects what needs to be done, keep decisions inside objects (object-oriented, encapsulated)
Quote: the major problem with procedural programs is the uncontrolled distribution of information [»creeC11_1997]

Subtopic: collection vs. object up

Quote: LINQ defines operators for querying data in object collections such as XML and SQL; no change to the virtual machine [»bierGM10_2007]

Subtopic: abstract data type up

Quote: abstract data type is difficult to extend; many changes to representation [»cookWR5_1990]
Quote: with abstract data type, a new observation requires access to the representation type [»cookWR5_1990]

Subtopic: condition (taxon) vs. action up

Quote: natural language emphasizes the action while programming languages emphasize the conditions and control structures [»millLA10_1978]
Quote: a behavior specification characterizes what will be done, the sequence to be performed, and real-time measurements [»winoT7_1979]
Quote: describing a procedure need not be order-dependent; e.g., use conditional and descriptive statements [»takaH1_1980]
Quote: taxon information concerns the conditions under which a given point is reached [»atkiLV9_1979]
Quote: a program contains sequence and taxon information; taxon is classification information [»simeME1_1977a]
Quote: understanding a program requires sequence information, but problems present taxon information, e.g., "are hard juicy objects ever roasted" [»simeME1_1977a]
Quote: to write or understand a program must convert descriptive, taxon information to sequence information (what happens next)

Subtopic: data description up

Quote: PADS is a declarative data description language for describing the physical layout and semantics of ad hoc data; generates tools for parsing, statistical profiling, conversion, and XQueries; as good or faster than Perl [»fishK6_2005]

Subtopic: results vs. process up

QuoteRef: sammJE7_1972 ;;609 languages should be problem oriented i.e. what is to be done instead of how to do it % details
QuoteRef: goodJB_1968 ;;767 semantic (process followed) and effective (resulting effect) interpretation

Subtopic: unordered vs. ordered up

Quote: 2nd-5th graders found it hardest to order KIDSIM's rules to get their models correct

Subtopic: sequence is data at another level up

Quote: level principle--active entities at one level are data structures at a lower level; e.g., process vs. context block [»finkRA_1986]

Subtopic: both data and process needed up

Quote: both data (state-boxes) and process (clear-boxes) views are needed for designing software; related by box structures [»cobbRH11_1990]
Quote: you can not simultaneously focus a design on both the entities and their actions
Quote: the language designer should give the greatest attention to procedures and parameters
Quote: can define a circle by drawing a circle or by drawing tangents, i.e., by pointing or description [»ziffP_1960]
Quote: commands indicate action to be performed; indicational information does not provide details; details by specificational information [»turvMT_1984]
Quote: want to distinguish functions from objects because their shapes are so different; long and stringy vs. compact and regular [»cbb_1990, OK]
Quote: a query with no arguments may be implemented by an attribute or a function; otherwise implement with a function [»meyeB9_1990]
Quote: representing prior stimuli by state data (invented abstractions) specifies an implementation

Subtopic: executable as definition up

Note: if the disk format is complied code, definition and executable are the same; no reduction in meaning

Subtopic: process needed up

Quote: the effective use of routines makes modern programming possible; greatest invention in computer science [»mccoS7_1998]
Quote: sometimes only way to discover a program's behavior is by experiment; neither mathematics nor science since can not generalize or publish results [»hoarCA8_1986]
Quote: most texts explain control structures by tracing execution of some implementation, even though this is frowned upon in general [»hehnEC_1977]
Quote: a programmer can write and call a subroutine just as easily as invoking specially-built hardware; and without the maintenance cost [»utleAM6_1949]
Quote: if I could tell you what it meant, there would be no point in dancing it [»bateG_1972]
Quote: a music composer does not attempt to describe the sounds or feelings occasioned by sound; instead writes a sequence of commands for recreating the experience [»browGS_1972]

Subtopic: problems with data up

Quote: constraint solvers can be unpredictable, difficult to debug, and difficult to master [»myerB3_2000]
Quote: constraints are hard to debug -- cyclical constraints, bugs appear far from source, spaghetti code, slot errors, evaluation misunderstood [»zandBT11_2005]

Related Topics up

Group: conditional control   (7 topics, 142 quotes)
Group: information   (46 topics, 1160 quotes)
Group: program representation   (25 topics, 659 quotes)
Group: type declaration   (5 topics, 110 quotes)

Topic: aspect-oriented programming (2 items)
Topic: constraints (35 items)
Topic: descriptive languages (22 items)
Topic: design for change (76 items)
Topic: dynamic vs. static data type (24 items)
Topic: hardware vs. software (15 items)
Topic: information hiding (50 items)
Topic: maps and rings (15 items)
Topic: object-oriented design (30 items)
Topic: programming by sequential implementation (26 items)
Topic: separate a module's interface specification from its implementation (86 items)
Topic: spatial vs. temporal representation (21 items)
Topic: word vs. picture (12 items)
Topic: XML data type
(22 items)

Updated barberCB 6/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.