Structured programming is a programming paradigm that
emphasizes the use of structured control flow constructs and modular
programming techniques. It emerged in the late 1960s as a response to the
perceived flaws of unstructured programming, which was prevalent at the time.
Here's an overview of the history of structured programming:
1. Unstructured Programming:
Prior to the advent of structured programming, early
computer programs were written using unstructured techniques. Programs were
composed of sequences of instructions and jumps, often implemented using
unconditional or conditional branching statements like GOTO. This approach made
it difficult to understand, maintain, and debug programs, leading to code that
was prone to errors and challenging to modify.
2. Edsger Dijkstra and the GOTO Controversy:
In 1968, Dutch computer scientist Edsger Dijkstra
published a letter titled "Go To Statement Considered Harmful," which
ignited a debate about the use of GOTO statements in programming. Dijkstra
argued that GOTO statements should be avoided as they led to spaghetti code and
made programs hard to reason about. His letter became a catalyst for the
development of structured programming.
3. Structured Programming Principles:
Structured programming aimed to bring order and clarity
to programming through the use of structured control flow constructs. The key
principles included:
a. Sequence:
Executing statements in a sequential order.
b. Selection:
Making decisions with if-else and switch statements.
c. Iteration:
Repeating blocks of code using loops like for and while.
d. Subroutines:
Encapsulating blocks of code into modular units, often called functions or
procedures.
4. Structured Programming Languages:
Several programming languages emerged that supported
structured programming principles. One notable language was ALGOL 60, which
incorporated block structures and introduced the if-then-else and for loops.
Later, Pascal and Ada became popular languages that promoted structured
programming. C, developed in the 1970s, also embraced structured programming
concepts while providing low-level control.
5. Influence of Structured Programming:
The ideas of structured programming had a profound impact
on software development practices. The focus on modularization and clear
control flow led to improved code readability, maintainability, and
reusability. It also facilitated the development of large-scale software
systems by allowing multiple programmers to work collaboratively on different
modules.
6. Further Developments:
Structured programming principles laid the foundation for
subsequent programming paradigms, such as object-oriented programming (OOP) and
procedural programming. OOP extended structured programming by introducing the
concept of objects and encapsulation, while procedural programming focused on
reusable procedures or functions.
Overall, the history of structured programming can be
seen as a response to the need for more organized and manageable software
development practices. It provided a structured approach to programming that
addressed the deficiencies of unstructured techniques and laid the groundwork
for subsequent advancements in software engineering.
No comments:
Post a Comment