Talk:Jackson structured programming

message: Is Perl and c modern programming languages? I wouldn't say so. C# and Java are modern, Perl and C are not. -- (Anon user)
Well, C is a 1970s implementation of the structured programming concepts of the 1960s that became popular during the 1980s, so calling it modern could be stretching things a bit in the 2000s ... -- Derek Ross | Talk 23:32, 11 April 2006 (UTC)
thread_title:  Modern programming languages 

message: Is it worth mentioning that in a "modern" programming language mismatched input/output structures can be handled by writing an iterator to present the structure of the input in a way that is convenient for the output routine? JSP is beneficial when programming in a language like Cobol or C that only allow a single thread of execution. I don't have a citation for that, so maybe via a See Also link?  (Abandondero (talk) 23:02, 29 October 2021 (UTC)
thread_title:  Iterators 

message: The diagrams need to be clarified.
You can not end a JSP diagram with an iteration or selection.
You must end it in a Sequence.
Also, when an iteration is shown, you must give a termination point.
I.e., do this, until that happens. - posted by 193.1.212.126
I would defend the accuracy of the diagrams against those two points.  For the first point, Jackson's Principles of Program Design has many examples in which an iteration or a selection is used at the bottom level.  It is true that you can't mix sequence, iteration and selection on the same level, but there are no restrictions on the final level.  For the second point, Jackson doesn't add conditions to iterations until very late in the design process, at the point when he fleshes out the operations with the primitive operations.  None of the diagrams is intended to show that step.  -- Jonhallett 17:10, 3 July 2007 (UTC)
thread_title:  Diagram Clarification - Very Important! 

message: Therefore it should not say that an operation consists of other operations ClemMcGann 14:31, 9 January 2007 (UTC)
thread_title: JSP is *not* Functional Decomposition

message: These are mentioned in the article, but the example turns out not to contain one.  It would be nice to include material on the kinds of classic problems which are discussed in Jackson's book - boundary clash, interleaving clash and the collate algorithm, particularly those resolved via a pipeline of processes
Kitwallace (talk) 16:32, 22 January 2008 (UTC)
replies: text: So, this "criticism" should be deleted - ClemMcGann (talk) 15:59, 30 June 2010 (UTC)
thread_title:  Structure clashes 

message: Somebody seems to have changed the image for Element .. unless JSP is related to ElementOS and nobody told me. Maybe that should be corrected. Just sayin'.
79.213.113.248 (talk) 15:31, 7 February 2008 (UTC)
thread_title:  Pretty glowy ball 

message: In the worked example the correspondences identified on the individual data stream structures are NOT carried through to the conflated program structure.  Either the correspondences are incorrect, or the program structure is incorrect (it is my belief that the program structure is incorrect).  When an input construct corresponds to an output construct they become a single construct when the structures are conflated.  In the worked example, if "First byte" on the input stream corresponds to "Byte" on the output stream we get a single construct on the program structure, which could be labelled "Consume First byte, produce Byte".  Similarly if "Remaining bytes" and "Count" truly correspond we get a single program structure construct (perhaps "Consume Remaining bytes, produce Count").
Starkebogen (talk) 03:42, 17 August 2019 (UTC)
thread_title:  Data Stream Correspondences 

message: The comment by Starkebogen is correct.  The problem is that the diagram showing the data stream correspondences is incorrect.  There is nothing in the input data stream that corresponds to the "Count" element on the output data stream.  
If there is no structure clash, the way to create a program structure is to "merge" the input and output data structures to create a program structure that is capable of both processing all of the input components and producing all of the output components.  In simple cases (like the one illustrated) the usual way to create a program structure is to take the structure of the input data stream as the basis for the program structure.  Then, if there is a component of the output data structure that isn't being created by the program structure, you add a component to the program structure to create the output data component.  In this case, you add the "Output count" component to the program structure, so that it creates the "Count" output data component.  
Note that "there is a structure clash" basically means that you can't create a workable program structure by merging the structures of the input and output data streams this way.
On the program structure diagram (as it currently stands), all of the components that begin with the word "Count" should really begin with the word "Process". The box labeled "Count remaining byte" should be named "Process 1 byte".  In a full-blown structure diagram, two actions would be hung off of that box: (increment byte counter), and (read a byte).
Kudos to Starkebogen for catching this.  I am a retired software developer and for many years taught JSP and JSD in the Washington, DC area. Stephen.R.Ferg (talk) 08:22, 25 July 2020 (UTC)
thread_title:  Incorrect Data Stream Correspondences diagram 

message: The current C code declares variables "count" and "first_byte" *inside* the loop.  Is that kosher in C?  I'd expect them both to be declared at the top of the program (with variable "c") and merely assigned new values inside the loop.  Even if that is legal in C, it strikes me as poor program design.  But I'm not a C programmer. Stephen.R.Ferg (talk)
:Yes, it's C-legal. It may be poor program design from a "standard practice" perspective. However it's good program design from a JSP perspective. Remember that the point of JSP is to make the structure of the program match the structure of the input/output data. And that includes variable declarations. -- Derek Ross | Talk 17:08, 25 July 2020 (UTC)
thread_title:  Question about the C code