
Programação de computador
Fundo para as escolas Wikipédia
Esta seleção é feita para as escolas de caridade infantil leia mais . Antes de decidir sobre o patrocínio de uma criança, por que não aprender sobre as diferentes instituições de caridade de patrocínio primeiro ?
Programação de computadores (muitas vezes abreviado para programação ou codificação), por vezes considerada um ramo da matemática aplicada , é o processo de escrita, teste, depuração / solução de problemas e manutenção da código-fonte do programas de computador. Este código-fonte é escrito em uma linguagem de programação . O código pode ser uma modificação de uma fonte existente ou algo completamente novo. O objetivo da programação é criar um programa que exibe um certo comportamento desejado (personalização). O processo de escrever código fonte requer conhecimento em diversos assuntos, incluindo o conhecimento do domínio da aplicação, especializados algoritmos e lógica formal .
Processo de desenvolvimento de software |
---|
![]() A desenvolvedor de software no trabalho |
Atividades e etapas |
|
Metodologias |
|
Apoiar disciplinas |
|
Ferramentas |
|
Dentro engenharia de software, programação (a implementação) é considerada como uma fase em um processo de desenvolvimento de software.
Há um debate em curso sobre a medida em que a escrita de programas é uma arte, um ofício ou uma disciplina da engenharia. Bom programação é geralmente considerada como a aplicação de medição de todos os três, com o objetivo de produzir uma solução eficiente e de fácil manutenção (os critérios de "eficiente" e "sustentável" variar consideravelmente). A disciplina difere de muitas outras profissões técnicas em que os programadores geralmente não precisam ser licenciados ou passam todos os testes padronizados de certificação (ou pelo governo regulamentados), a fim de chamar-se "programadores" ou mesmo "engenheiros de software".
Outro debate em curso é a medida em que a linguagem de programação usada em programas de escrita afeta a forma que o programa final tem. Esta discussão é análoga à que rodeia o Hipótese de Sapir-Whorf em lingüística , que postula que a natureza de uma linguagem particular influencia o pensamento habitual de seus falantes. Padrões de linguagem diferentes produzem diferentes padrões de pensamento. Esta ideia desafia a possibilidade de representar o mundo perfeitamente com a linguagem, porque reconhece que os mecanismos de qualquer língua condicionar os pensamentos de sua comunidade falante.
Programadores
Os programadores de computador são aqueles que escrevem software de computador. Seu trabalho geralmente envolve:
- Análise de requisitos
- Especificação
- A arquitetura de software
- Codificação
- Compilação
- O teste de software
- Documentação
- Integração
- Manutenção
Linguagens de programação
Diferentes linguagens de programação suportar diferentes estilos de programação (chamados paradigmas de programação). A escolha da linguagem utilizada é sujeita a muitas considerações, tais como a política da empresa, adequação a tarefa, a disponibilidade de pacotes de terceiros, ou preferência individual. Idealmente, a linguagem de programação mais adequado para a tarefa à mão serão selecionados. Trade-offs deste ideal envolvem encontrar programadores suficientes que sabem a língua para construir uma equipe, a disponibilidade de compiladores para que a linguagem, e da eficiência com que programas escritos em um determinado idioma executar.
Allen Downey, em seu livro Como pensar como um cientista da computação, escreve:
Os detalhes olham diferente em diferentes línguas, mas algumas instruções básicas aparecem em praticamente todas as linguagens: Entrada: Obter dados do teclado, um arquivo, ou algum outro dispositivo de saída:. Exibir dados na tela ou enviar dados para um arquivo ou outro dispositivo de matemática:. Executar operações matemáticas básicas, como adição e multiplicação execução condicional:.. Verificar se há certas condições e executar a seqüência apropriada de demonstrações repetição: Executar alguma ação repetidamente, normalmente com alguma variação.
Muitas linguagens de computador fornecem um mecanismo para chamar funções fornecidas por bibliotecas. Desde que as funções em uma biblioteca de seguir as convenções de tempo de execução (por exemplo, o método de passagem de argumentos), então estas funções podem ser escritos em qualquer outra língua.
História da programação


A primeira programável máquina (que é uma máquina cujo comportamento pode ser controlado por alteração de um "programa") foi Programável de Al-Jazari robô humanóide em 1206. Al-Jazari de robot era originalmente um barco com quatro músicos automáticas que flutuavam em um lago para entreter os convidados em festas beber reais. Sua mecanismo tinha uma bateria eletrônica programável com cavilhas ( cams) que topar com pouco alavancas que operam a percussão. O baterista poderia ser feito para tocar diferentes ritmos e diferentes padrões de bateria, movendo os pinos para locais diferentes.
O Jacquard Loom, desenvolvido em 1801, é frequentemente citado como uma fonte de técnica anterior. A máquina utilizada uma série de cartões de papelão com furos neles. O buraco padrão representado o padrão que o tear tinha que seguir em tecelagem. O tear poderia produzir completamente diferentes tecidos usando diferentes conjuntos de cartas. O uso de cartões perfurados também foi adotado por Charles Babbage por volta de 1830, para controlar seu Máquina Analítica.
Esta inovação foi posteriormente refinado por Herman Hollerith que, em 1896 fundou a Tabulating Machine Company (que se tornou a IBM ). Ele inventou o Hollerith de cartões perfurados, a leitor de cartão, eo máquina de soco chave. Estas invenções eram a fundação da indústria de processamento de informação moderna. A adição de um plug-placa para o seu 1906 Tipo I Tabulator lhe permitiu fazer trabalhos diferentes sem ter de ser reconstruído (o primeiro passo em direção a programação). Ao final de 1940, havia uma variedade de máquinas programáveis plug-tabuleiro, chamado equipamentos de registo da unidade, para executar tarefas de processamento de dados (leitura do cartão). Os primeiros computadores também foram programados usando plug-boards.


A invenção do Arquitectura permitido programas de computador de von Neumann para ser armazenado em memória do computador. Programas para a primeira teve de ser meticulosamente trabalhada usando as instruções da máquina em particular, muitas vezes em binário notação. Cada modelo de computador seria provável a necessidade de instruções diferentes para fazer a mesma tarefa. Mais tarde linguagens assembly foram desenvolvidos que permitem ao programador especificar cada instrução em um formato de texto, entrando abreviaturas para cada código de operação em vez de um número de endereços e especificando de forma simbólica (por exemplo, ADD X, TOTAL). Em 1954 Fortran, a primeira linguagem de programação de nível superior, foi inventado. Isto permitiu que os programadores para especificar cálculos inserindo uma fórmula directamente (por exemplo, Y = X * 2 + 5 * X + 9). O texto do programa, ou fonte, foi convertido em instruções de máquina usando um programa especial chamado compilador. Muitos outros idiomas foram desenvolvidos, incluindo aqueles para programação comercial, tais como COBOL. Os programas foram em sua maioria ainda inserido usando cartões perfurados ou fita de papel. (Ver programação de computadores na era de cartões perfurados). No final dos anos 1960, e dispositivos de armazenamento de dados terminais de computador se tornou barata o suficiente para que os programas poderiam ser criados digitando diretamente nos computadores. Editores de texto foram desenvolvidos que permitiram mudanças e correções a serem feitas com muito mais facilidade do que com cartões perfurados.
Enquanto o tempo progrediu, os computadores têm feito grandes saltos na área de poder de processamento. Isso trouxe linguagens de programação mais recentes que são mais abstraído do hardware subjacente. Embora essas linguagens mais abstraídas exigem adicional em cima, na maioria dos casos, o enorme aumento na velocidade dos computadores modernos trouxe diminuição pouco desempenho em comparação com homólogos anteriores. Os benefícios destas línguas mais abstraídas é que eles permitem tanto uma curva de aprendizado mais fácil para as pessoas menos familiarizadas com as linguagens de programação de baixo nível mais velhos, e eles também permitem que um programador mais experiente para desenvolver aplicativos simples rapidamente. Apesar destes benefícios, grandes programas complicados e programas que são mais dependentes da velocidade ainda exigem as línguas relativamente mais rápidas e de baixo nível com hardware de hoje. (As mesmas preocupações foram levantadas sobre a linguagem Fortran original).
Ao longo da segunda metade do século XX, a programação era uma carreira atraente em países mais desenvolvidos. Algumas formas de programação têm sido cada vez mais sujeitos a offshore outsourcing (importação de software e serviços de outros países, geralmente com salários inferiores), a tomada de decisões de carreira programação em países desenvolvidos mais complicados, e aumentar as oportunidades econômicas em áreas menos desenvolvidas. Não está claro até que ponto esta tendência vai continuar e quão profundamente ela terá um impacto salários programador e oportunidades.
Programação moderna
Os requisitos de qualidade
Seja qual for a abordagem de desenvolvimento de software pode ser, o programa final deve satisfazer algumas propriedades fundamentais. Os cinco seguintes propriedades estão entre as mais relevantes:
- Eficiência: a quantidade de recursos do sistema um programa consome (tempo do processador, espaço de memória, dispositivos lentos, largura de banda de rede e, em certa medida de interação mesmo usuário), quanto menos, melhor.
- Confiabilidade: quantas vezes os resultados de um programa estão corretas. Isso depende de prevenção de propagação de erros resultantes de conversão de dados e prevenção de erros resultantes de buffer overflows, underflows e divisão zero.
- Robustez: o quão bem um programa antecipa situações de conflito tipo de dados e outras incompatibilidades que resultam em erros de tempo de execução e paradas de programa. O foco está principalmente na interação do usuário e ao tratamento das exceções.
- Usabilidade: o clearity e intuitividade de uma saída de programas pode fazer ou quebrar o seu sucesso. Isto envolve uma vasta gama de elementos textuais e gráficas que faz com que um programa de fácil e confortável de usar.
- Portabilidade: a gama de plataformas de hardware e sistema operacional no qual o código fonte de um programa pode ser compilado e executado. Isso depende principalmente da variedade de compiladores de plataforma específicas para a linguagem do código fonte ao invés de qualquer coisa que tenha a ver com o programa diretamente.
Complexidade algorítmica
O campo acadêmico ea prática de engenharia de programação de computador são ambos bastante preocupada com a descoberta e implementar as mais eficientes algoritmos para uma determinada classe de problema. Para este efeito, os algoritmos são classificados em ordens usando chamada Notação Big O, O (n), que expressa a utilização de recursos, tais como tempo de execução ou o consumo de memória, em termos do tamanho de uma entrada. Programadores especialistas estão familiarizados com uma variedade de algoritmos bem estabelecidos e suas respectivas complexidades e usar esse conhecimento para escolher algoritmos que são mais adequados para as circunstâncias.
Metodologias
O primeiro passo na maioria dos projetos de desenvolvimento de software formal é análise de requisitos, seguido de modelagem, implementação e eliminação falha ( debugging). Existem uma série de diferentes abordagens para cada uma dessas tarefas. Uma abordagem popular para análise de requisitos é Use a análise de caso.
Técnicas de modelagem mais populares incluem Análise Orientada a Objetos e Projeto ( OOAD) e Model-Driven Architecture ( MDA). A Unified Modeling Language ( UML) é uma notação utilizada para ambos OOAD e MDA.
Uma técnica semelhante à usada para o projeto de banco de dados é Entidade-Relacionamento Modeling ( ER Modeling).
Técnicas de implementação incluem linguagens imperativas ( orientada a objetos ou processual), linguagens funcionais, e linguagens lógicas.
Depuração é mais freqüentemente feito com IDEs como Visual Studio, NetBeans, e Eclipse. Depuradores separadas como gdb também são utilizados.
O uso da linguagem de medição
É muito difícil determinar o que são os mais populares de linguagens de programação modernas. Algumas línguas são muito populares para determinados tipos de aplicações (por exemplo, COBOL ainda é forte no data center corporativo, muitas vezes em grande mainframes, Fortran em aplicações de engenharia, e C em aplicações embarcadas), enquanto que algumas línguas são regularmente utilizados para escrever muitos tipos diferentes de aplicações.
Métodos de medição linguagem popularidade incluem: contagem do número de anúncios de emprego que mencionam a língua, o número de livros que ensinam a língua que são vendidos (esta superestima a importância das línguas mais recentes), e as estimativas do número de linhas existentes de código escrito em a linguagem (isso subestima o número de usuários de línguas de negócios, tais como COBOL).
Depuração
A depuração é uma tarefa muito importante no processo de desenvolvimento de software, porque um programa errada pode ter consequências significativas para os seus utilizadores. Algumas línguas são mais propensas a alguns tipos de falhas porque a sua especificação não exige compiladores para executar tanto a verificação como outras línguas. Utilização de um ferramenta de análise estática pode ajudar a detectar alguns possíveis problemas.