OS AVANÇOS NA PROGRAMAÇÃO ESTRUTURADA
POR: BRUNO FERREIRA, MARCELO HENRIQUE E RAFAEL VALLE
Programação
Estruturada:
A programação
estruturada é um paradigma de programação, independente de linguagem de
programação, que tem como objetivo construir programas claros, legíveis,
eficientes e de fácil manutenção.
A programação estruturada
impõe uma disciplina de programação que faz uso de três estruturas de controle
para a construção da lógica de um programa. Os três tipos de estrutura de
controle são a sequência, a seleção e a repetição. Com apenas estes três tipos
de estrutura de controle, é possível construir programas sem o uso de desvios
incondicionais.
Alguns exemplos de
linguagens de programação estruturada são C, Python (multiparadigma), Ruby
(multiparadigma) e Pascal.
História
Os problemas encontrados nas etapas do processo de desenvolvimento de software começaram a ser observados no final da década de 60 e continuam atormentando a vida dos projetistas até hoje. A crise se manifesta de várias formas, citando: a baixa produtividade dos programadores (projetos ultrapassando os prazos e orçamentos), a falta de uma "metodologia formal" para o desenvolvimento de software e os códigos de baixa qualidade (programas literalmente sem a possibilidade de serem mantidos). As soluções para a crise de software passam principalmente pelo uso de melhores técnicas, métodos e ferramentas.
O histórico com o surgimento das linguagens de programação está intensamente ligado a evolução das tecnologias de hardware e de software. Foi com o aumento da tecnologia e da capacidade dos computadores que problemas mais complexos puderam ser resolvidos pela máquina.
Em 1968, Edsger W. Dijkstra, através do artigo "A Case against the GO TO Statement" critica o uso excessivo do comando de desvio incondicional GOTO nos programas desenvolvidos na época. Já em 1972 , novamente Dijkstra, escreve sobre os conceitos da Programação Estruturada no "Capítulo I- Notes on Structured Programming" do livro "Structured Programming" publicado juntamente com outros dois autores: Charles Antony Richard Hoare e Ole-Johan Dahl.
Conceito
Na programação estruturada o "método dos refinamentos sucessivos" é uma "sistemática" de abordagem útil no projeto detalhado e na implementação de softwares. Partindo-se de um dado problema, para qual se deseja encontrar um programa de solução, deve-se procurar subdividi-lo em problemas menores e consequentemente de solução mais simples (dividir para conquistar). Alguns destes problemas menores (subproblemas) terão solução imediata (na forma de um subprograma) e outros não. Os subproblemas para os quais não for possível encontrar uma solução direta devem ser novamente subdivididos. Assim, o processo é repetido até que se consiga encontrar um subprograma para solucionar cada um dos subproblemas definidos. Então, o programa de solução do problema original será composto pela justaposição dos subprogramas usados para solucionar cada um dos subproblemas em que o problema original foi decomposto.
Os anos 1990's: A Era da Internet
- 1991 - Python
- 1991 - Java
- 1993 - Ruby
- 1993 - Lua
- 1994 - ANSI Common Lisp
- 1995 - JavaScript
- 1995 - PHP
- 2000 - C#
- 2008 - JavaFX Script
A evolução das linguagens de programação continua, tanto na indústria quanto na pesquisa. Algumas das tendências atuais incluem
- Mecanismos para a adição de segurança e verificação da confiabilidade para a linguagem: verificação estática prolongada, controle de fluxo de informação, estático segurança em threads;
- Mecanismos alternativos de modularidade: mixin s, Delegação de programação, programação orientada a aspectos;
- Desenvolvimento de software orientado a componentes;
- Metaprogramação, Reflexão ou acesso a árvores de sintaxe abstratas...
- Maior ênfase na distribuição e mobilidade;
- Integração com bases de dados, incluindo XML e bancos de dados relacionais;
- Suporte para Unicode de forma que o código-fonte não esteja restrito aos caracteres contidos no código ASCII; permitindo, por exemplo, o uso de scripts não latinos ou pontuação estendida;
- XML para a interfaces gráficas (XUL, XAML);
- Arquitetura Orientada a Serviços (SOA).
Boa noite pessoal!














