decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
well.... | 361 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Line 100 will usually be preceded by a GOTO, END or other GOSUB
Authored by: Anonymous on Sunday, May 20 2012 @ 12:50 PM EDT
That's what brainwashed structured programmers CLAIM, but they produce as much, if not more, spaghetti code as non-structured programmers. Structured programming is sometimes not capable of easily implementing a design, then structured programmers turn out the most bizarre spaghetti code ever seen trying to FORCE it into a structure. There's nothing inherently bad about using GOTO - it's bad programmers that turn out bad code, not GOTOs. :P

I won't debate you on bad programmers, but I have NEVER run into a situation where a structured languages like Pascal, Modula, C, C++, Java, ML, or Ocaml has forced me into using spaghetti like coding methods. On the contrary, I've often run across poorly designed algorithms that were implemented in spaghetti code fashion. Often they were patched again and again when they really should have be refactored. More often than not simple transformations made them easily readable. To program well you really need to know your math so you know you can transform one program structure into another and not introduce errors. There needs to be a programming course on the programming equivalents of the standard mathematical transformations.

[ Reply to This | Parent | # ]

well....
Authored by: jesse on Sunday, May 20 2012 @ 08:12 PM EDT
Good programmers will produce bad code...

But frequently it is up to the protocol designer.

The only place I have seen a "go to" in C as absolutely necessary was
in a Kerberos packet decryption. The rather obtuse requirements made it a
necessity to use a state table which inherently has LOTS of go to structures to
implement.

Many TCP/IP protocols have this problem (one of the worst is telnet).

Much of the problem has to do with error handling and recovery.

C++ attempts to get around some of this by hiding things like garbage collection
by reclaiming structures when leaving a scope - but it is still implemented by
using tons of "go to" scattered all over the place.

So some of the blame has to go to communications people that don't really
understand coding practice and design protocols that cannot be properly
implemented.

Now that said, it also applies to compilers. Error reporting and recovery is one
of the hardest things to do. Even a simple grammar becomes a horrible looking
state table when all the error handling and recovery gets added.

For examples of that, just look at the output of Bison/Yacc when applied to even
a simple grammar.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )