- compreender o problema para poder fazer o programa desejado. Definição dos requisitos do algoritmo (entrada, cálculos, casos especiais, saída).
- Especificar um plano para resolver de maneira certa o algoritmo (desenvolvimento do algoritmo independente da linguagem). Fluxograma, português estruturado.
- Executar o plano: codificação do programa; linguagem java.
- examinar a solução verificando se ela atende aos requisitos do problema: teste do programa, defeito na codificação, na definição do problema ou da solução.
II - MOTIVOS PARA ESTUDAR LINGUAGENS DE PROGRAMAÇÃO:
- avanço global da computação
- aumento da capacidade de expressar ideias
- capacidade para aprender novas linguagens
- maior embasamento para a escolha da linguagem apropriada
- entender melhor a importância da implementação.
III - AUMENTO DA CAPACIDADE DE EXPRESSAR IDEIAS.
A linguagem de programação impõe limites quanto ao uso de estruturas e controles que devem ser usados. Assim, deve-se conhecer uma variedade mais ampla de recursos da linguagem de programação; aprender recursos de outras linguagens mesmo sendo obrigado a usar uma que não disponibilize tais recursos.
IV - MAIOR EMBASAMENTO PARA A ESCOLHA DA LINGUAGEM APROPRIADA
Grande parte dos programadores é autodidata. Eles aprenderam linguagens que não são mais usadas. É preciso estar atualizado e familiarizado para decidir a linguagem a ser usada em um novo projeto de forma mais consciente.
V - CAPACIDADE PARA APRENDER NOVAS LINGUAGENS
O desenvolvimento de software é uma profissão fascinante, mas depende de aprendizagem contínua. Para isto é essencial conhecer os conceitos fundamentais das linguagens de programação.
VI -ENTENDER MELHOR A IMPORTÂNCIA DA IMPLEMENTAÇÃO
Entender melhor as escolhas que podemos fazer e suas consequências. Em alguns casos a compreensão das questões leva ao entendimento da linguagem. Alguns detalhes são decisivos para encontrar erros.
VII - AVANÇO GLOBAL DA COMPUTAÇÃO
Embora normalmente se saiba o motivo pelo qual uma linguagem tornou-se popular, nem sempre as mais populares são as melhores que estão disponíveis. Em geral, se aqueles que escolhem as linguagens forem melhor informados, talvez linguagens melhores se sobrepunham mais rapidamente às ruins.
VIII - DOMÍNIOS DE PROGRAMAÇÃO
- aplicações científicas
- aplicações comerciais
- inteligência artificial
- programação de sistemas
- linguagens de scripting
IX - APLICAÇÕES CIENTÍFICAS
A primeira e mais confiável linguagem para aplicações científicas foi o FORTRAN. O ALGOL 60 e seus descendentes também se destinam a essa área.
X - APLICAÇÕES COMERCIAIS
A primeira linguagem em alto nível bem sucedida para os negócios foi o COBOL. As linguagens comerciais são caracterizadas por facilidades na produção de relatórios estruturados, cadastros, armazenamento e processamento de operações/informações.
XI - INTELIGÊNCIA ARTIFICIAL
É uma área abrangente caracterizada por computações simbólicas e complexas. A programação nessa área requer flexibilidade e heurística. A primeira linguagem amplamente usada foi a LISP. Na década de 70 surgiu uma alternativa com linguagem de programação lógica - PROLOG.
XII - PROGRAMAÇÃO DE SISTEMAS:
Software básico e ferramentas que dão suporte à programação. Devem garantir eficiência e rapidez na execução, além de recursos de baixo nível para fazer a interface com os dispositivos.
XIII - LINGUAGENS DE SCRIPTING:
São usadas colocando-se uma lista de comandos, chamados scripts em um arquivo para serem executados. A JAVASCRIPT foi desenvolvida para ser usada tanto em servidores WEB quanto em navegadores.
XIV - CRITÉRIOS DE AVALIAÇÃO DA LINGUAGEM:
- Legibilidade
- custo
- capacidade de escrita
- confiabilidade
XV - LEGIBILIDADE
Trata-se da facilidade com que um programa pode ser lido e entendido.
XVI - PRINCIPAIS CRITÉRIOS DE LEGIBILIDADE
- simplicidade global
- ortogonalidade
- instruções de controle
- tipos de dados e estruturas
- considerações sobre a sintaxe
XVII - SIMPLICIDADE GLOBAL
Um grande número de componentes básicos torna uma linguagem mais difícil de ser aprendida. Um terceiro problema é a sobrecarga (overloading) de operador, onde um mesmo símbolo pode ter mais de um significado.
XVIII - ORTOGONALIDADE
Significa que um número relativamente pequeno de construções primitivas pode ser combinado com um número relativamente pequeno de maneiras para criar estruturas e dados da linguagem. Na linguagem C existem dois tipos de dados estruturados: matrizes e registros, mas somente registros podem retornar de funções.
XIX - INSTRUÇÕES DE CONTROLE
Instruções muito limitadas nas décadas de 50 e 60.
XX - TIPOS DE DADOS E ESTRUTURAS:
facilidades adequadas para definir tipos de dados e estruturas em uma linguagem.
XXI - CONSIDERAÇÕES SOBRE A SINTAXE
As opções sintáticas que afetam a legibilidade:
- formas de identificadores: uma só letra;
- palavras especiais: mais palavras reservadas pode levar a um melhor entendimento.
- forma e significado: quanto mais a aparência indique pelo menos parcialmente a finalidade.
XXII - CAPACIDADE DE ESCRITA:
É a medida que indica o quão facilmente uma linguagem pode criar programas para um domínio de problema escolhido.
XXIII - CONFIABILIDADE
Diz-se que um programa é confiável se ele se comportar de acordo com suas especificações sob todas as condições. Recursos que exercem efeito sobre a confiabilidade:
- verificação de tipos
- manipulação de exceções
- apelidos
- legibilidade e capacidade de escrita.
XXIV -CUSTOS DE UMA LINGUAGEM
- custo de treinamento
- custo de escrita
- custo de compilação
- implementação da linguagem
- custo de execução
- confiabilidade
- manutenção de programas
XXIV - METODOLOGIAS DE PROGRAMAÇÃO
Intensa análise nas décadas de 60 e 70 no processo de desenvolvimento de software e de projeto de linguagens de programação.
XXV - METODOLOGIAS DE PROGRAMAÇÃO 2
- As metodologias surgidas na década de 70 foram chamadas de projeto top down e refinamento passo a passo.
- As principais deficiências eram a não plenitude da verificação de tipos e a insuficiência de instruções de controle (uso excessivo de GOTOS).
- No final da década de 70 as metodologias mudaram o foco dos processos para os dados.
- Em meados da década de 80 a evolução mais consolidada foi o projeto orientado a objetos.
XXVI - CATEGORIAS DE LINGUAGEM:
- imperativas: algoritmos detalhados e ordem específica na execução de instruções e comandos.
- funcionais: aplica funções a determinados parâmetros.
- lógicas: baseada em regras, sem nenhuma ordem particular.
- orientada a objetos: possuem suporte à abstração de dados.
XXVII - CONFIABILIDADE x CUSTO DE EXECUÇÃO:
A linguagem Ada exige que as referências aos elementos da matriz sejam verificados para assegurar os índices e suas faixas. Isto aumento o custo de execução e também a confiabilidade. A linguagem C não exige verificação de faixa de índice, de modo que os programas em C são executados mais rapidamente do que os programas Ada semanticamente equivalentes.
XXVIII - ARQUITETURA VON NEUMANN
A memória armazena programas e dados e o processador é responsável pela operações (aritméticas e lógicas) também chamadas de macro instruções que constituem a linguagem de máquina (baixo nível).
XXIX - MÉTODOS DE IMPLEMENTAÇÃO
- compilação
- interpretação pura
- sistemas de implementação híbridos.
XXX - COMPILAÇÃO
- Programas que são traduzidos para uma linguagem de máquina a qual pode ser diretamente executada no computados são chamados de implementação compilada.
- analisador léxico: reúne os caracteres do programa-fonte em unidades léxicas que são os identificadores, palavras especiais, operadores, símbolos, ignorando os comentários.
- analisador sintático: usa as unidades do analisador léxico para produzir estruturas hierárquicas.
- gerador de código intermediário: produz um programa em linguagem diferente, no nível intermediário entre o programa-fonte e a saída do compilador.
- otimizador: melhora os programas tornando-os menores e mais rápidos.
- gerador de código: converte a versão do código intermediário em linguagem de máquina equivalente. A linguagem de máquina quase sempre é executada no hardware junto com outro código do sistema operacional (entrada e saída).
XXXI - INTERPRETAÇÃO PURA
O interpretador age como uma simulação de software de uma máquina cujo ciclo buscar-executar é lido em alto nível em vez de instruções de máquina (esta decodificação é seu grande gargalo). Sua execução é de 10 a 100 vezes mais lenta do que em sistemas compilados.
XXXII - SISTEMAS DE IMPLEMENTAÇÃO HÍBRIDOS
Alguns sistemas produzem programação em linguagem de alto nível para uma linguagem intermediária de fácil interpretação. Em vez de traduzir o código em linguagem intermediário para código de máquina, ele simplesmente interpreta. A linguagem PERL é implementada em sistema híbrido e a java também, e atualmente se modo de implementação pode ser configurado.
XXXIII - AMBIENTES DE PROGRAMAÇÃO
- sistemas de arquivos
- editores de texto
- linkeditores
- compiladores
- ferramentas integradas
- plugins
- interfaces
Nenhum comentário:
Postar um comentário