Programação é o processo de escrita, teste e manutenção de um programa de computador. O programa é escrito em uma linguagem de programação, embora seja possível, com alguma dificuldade, escrevê-lo diretamente em linguagem de máquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens.
Diferentes linguagens de programação funcionam de diferentes modos. Por esse motivo, os programadores podem criar programas muito diferentes para diferentes linguagens; muito embora, teoricamente, a maioria das linguagens possa ser usada para criar qualquer programa.
Há várias décadas se debate se a programação é mais semelhante a uma arte (Donald Knuth), a uma ciência, à matemática (Edsger Dijkstra), à engenharia (David Parnas), ou se é um campo completamente novo. Predefinição:Escute
Programas ou algoritmos?
Um algoritmo é uma sequência de passos para realizar uma tarefa ou resolver um problema. Em nosso dia a dia utilizamos algoritmos para realizar nossas atividades, definindo a sequência de atividades que devemos fazer para atingir um objetivo.
Um algoritmo é, num certo sentido, um programa abstrato — dizendo de outra forma, um programa é um algoritmo concretizado. No entanto, os programas são, à exceção dos menores, visualizados mais facilmente como uma coleção de algoritmos menores combinados de um modo único — da mesma forma que uma casa é construída a partir de componentes.
Dessa forma, um algoritmo é uma descrição de como um computador pode ser levado a executar uma operação simples e específica, como, por exemplo, uma ordenação. Um programa, por outro lado, é uma entidade que na verdade implementa uma ou mais operações de forma que seja útil para as pessoas.
Engenharia de software
A criação de um programa de computador consiste de cinco passos principais:
- Reconhecer a necessidade de um programa para resolver um problema
- Planificar o programa e seleccionar as ferramentas necessárias para resolver o problema
- Escrever o programa na linguagem de programação escolhida
- Compilação: tradução do código fonte legível pelo homem em código executável pela máquina, o que é feito através de compiladores e outras ferramentas
- Testar o programa para ter a certeza de que funciona; se não, regressar ao passo 3
Estes cinco passos são colectivamente conhecidos como engenharia de software. A programação põe ênfase nos passos 2, 3 e 4. A codificação põe ênfase no passo 3. O termo coder, por vezes usado como sinônimo para programador, pode tornar-se aviltante porque ignora as capacidades necessárias para lidar com os outros quatro passos.
História
Heron de Alexandria no século primeiro inventou teatros automatizados que usavam programação análoga para controlar os fantoches, portas, luzes e efeitos de som.
A mais antiga programadora de computadores que se conhece é Ada Lovelace, filha de Anabella e de Lord Byron (o poeta). Anabella transmitiu a Ada o seu amor à matemática, a qual, depois de conhecer Charles Babbage, traduziu e expandiu uma descrição da sua máquina analítica. Muito embora Babbage nunca tenha completado a construção de nenhuma das suas máquinas, o trabalho que ele e Ada desenvolveram sobre elas, garantiu a Ada o título de primeira programadora de computadores do mundo (veja as notas de Ada Byron sobre a máquina analítica. A linguagem de programação Ada recebeu o seu nome.
Um dos primeiros programadores que se tem notícia de ter completado todos os passos para a computação sem auxílio, incluindo a compilação e o teste, é Wallace J. Eckert. O trabalho deste homem antecede a ascensão das linguagens de computador, porque ele usou a linguagem da matemática para solucionar problemas astronômicos. No entanto, todos os ingredientes estavam lá: ele trabalhou um laboratório de computação para a Universidade de Columbia com equipamentos fornecidos pela IBM, completos com uma divisão de serviço de atendimento ao cliente, e consultores de engenharia para propósitos especiais, na cidade de Nova York, na década de 1930, usando cartões perfurados para armazenar os resultados intermediários de seus cálculos, e então formatando os cartões perfurados para controlar a impressão das respostas, igual ao trabalho para os censos décadas antes. Tinha técnicas de debug tais como códigos de cores, bases cruzadas, verificação e duplicação. Uma diferença entre Eckert e os programadores dos dias de hoje é que o exemplo do seu trabalho influenciou o projeto Manhattan. Seu trabalho foi reconhecido por astrônomos do Observatório da Universidade de Yale, Observatório da Universidade de Princeton, Observatório da Marinha dos EUA, Observatório da Faculdade Harvard, Observatório dos estudantes da Universidade da Califórnia, Observatório Ladd da Universidade de Brown e Observatório Sproul da Faculdade de Swarthmore.
Alan Turing é frequentemente encarado como o pai da ciência de computadores e, por afinidade, da programação. Ele foi responsável por ajudar na elaboração e programação de um computador destinado a quebrar o código alemão ENIGMA durante a Segunda Guerra Mundial — ver Máquina Enigma.
Lista de linguagens
Existem várias linguagens de programação; de acordo com o Índice Tiobe, as 20 mais populares são:[1]
Referências
- ↑ «Linguagens de programação populares» (em inglês). tiobe.com. Consultado em 5 de dezembro de 2011
Ver também
- Callback
- Ciência da computação
- Documentação de software
- Engenharia de software
- Falha de segmentação
- Linguagem de programação
- Lista de linguagens de programação
- Orientação a objetos
- Programação baseada em ARS
- Programação estruturada
- Programação funcional
- Programação imperativa
- Programação orientada por acontecimentos
- Software
- Testes de caixa negra
Ligações externas
- «A História da Programação de Computadores» (em português)
- «Programmer's Wiki» (em English)
- Predefinição:Dmoz
Predefinição:Engenharia de Software
Predefinição:Processo--------- de desenvolvimento de software
af:Rekenaarprogrammering an:Programación ar:برمجة ast:Programación be-x-old:Кампутарнае праграмаваньне bg:Програмиране bn:কম্পিউটার প্রোগ্রামিং bs:Programiranje bug:ᨅᨔ ᨄᨛᨑᨚᨁᨛᨑᨆᨗ ca:Programació d'ordinadors cs:Programování da:Programmering de:Programmierung el:Προγραμματισμός en:Computer programming es:Programación et:Programmeerimine eu:Programazio fa:برنامهنویسی fi:Ohjelmointi fr:Programmation informatique gl:Programación he:תכנות מחשבים hi:प्रोग्रामिंग hr:Računalno programiranje hu:Számítógép-programozás id:Pemrograman it:Programmazione (informatica) ja:プログラミング (コンピュータ) jbo:sampla ka:დაპროგრამება kk:Программалау km:កុំព្យូទ័រផ្រូក្រាមមីង(Computer programming) ko:컴퓨터 프로그래밍 lt:Programavimas lv:Programmēšana mhr:Программлымаш ml:കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ്ങ് mn:Програмчлал ms:Pengaturcaraan nl:Programmeren (computer) nn:Programmering no:Programmering pl:Programowanie ro:Programare ru:Программирование sh:Programiranje simple:Computer programming sk:Programovanie sl:Računalniško programiranje sq:Programimi kompjuterik sr:Програмирање sv:Programmering th:การเขียนโปรแกรมคอมพิวเตอร์ tk:Programmirleme tr:Programlama uk:Програмування ur:شمارندی برمجہ vi:Lập trình máy tính yi:קאמפיוטער פראגראמירן zh:程序设计