O documento discute conceitos de lógica, programação de computadores e tipos de linguagens de programação. Ele também aborda técnicas de programação como programação modular, estruturada e orientada a objetos.
2. 1.1 Conceito de lógica
◦O dicionário Houaiss descreve a lógica da seguinte
forma:
“1. Estudo filosófico das formas do pensamento
(dedução, indução, hipótese, inferência etc.) e do
raciocínio, considerados como condição para o
conhecimento; 2. Forma de encadeamento e/ou de
raciocínio; 3. Coerência, fundamento”
Introdução à Lógica
01/09/15
3. 1.2 Conceito de programação de
computadores
◦A principal característica que diferencia um
computador de qualquer outro equipamento ele-
trônico é sua “programabilidade”, ou seja, a
capacidade de ser programável para executar um
grande número de tarefas diferentes.
01/09/15
5. No entanto, tudo que os computadores (e outros
dispositivos controlados por microprocessadores ou
microcontroladores) entendem são sinais elétricos,
representados pelos dígitos 0 (ausência de voltagem)
e 1 (presença de voltagem), também conhecidos
como bits. E são esses bits, ou mais precisamente a
combinação deles, que formam todas as instruções
que fazem o computador agir da forma que
desejamos. Sendo assim, eles são completamente
ignorantes no que diz respeito ao reco- nhecimento
de comandos dados em nossa própria língua.
01/09/15
9. Existem diversos tipos de linguagens de
programação, que trabalham de forma diferente
e possuem estrutura e comandos diferentes.
No início da era da computação, os
programadores se viam obrigados a programar
diretamente em linguagem de máquina,
composta por inúmeras combina- ções de 0s e
1s, o chamado código binário.
2.1 Linguagens de
programação
01/09/15
10. Como era muito difícil decorar a função que
cada uma das combinações exercia no
processador, criou-se então uma linguagem
mais próxima do entendi- mento humano que
foi denominada de Assembly.
Em inglês significa montagem
01/09/15
12. Existem dois termos técnicos muito empregados em
programação que devem ser esclarecidos antes de
prosseguirmos. O primeiro é código-fonte, que designa o texto
escrito numa linguagem de programação e que pode ser lido
por qualquer pessoa, mesmo quem não sabe programar. Esse
texto segue as regras impostas pela linguagem, como sintaxe
dos coman- dos e funções.
O segundo termo é programa executável, que consiste numa
sequência de instruções em linguagem de máquina (códigos
binários) inteligível ao computador e muito difícil (ou quase
impossível) de ser entendido por um ser humano. Esse pro-
grama executável é criado por dois processos distintos,
conhecidos como interpretação e compilação.
Fique de olho!
01/09/15
13. Na interpretação, um processo empregado
principalmente pela linguagem BASIC
(Beginners All Purpose Symbolic Instruction
Code) nos computadores das décadas de 1970
a 1990, o código-fonte do programa é
convertido em linguagem de máquina à medida
que o programa é executado.
01/09/15
14. Já em programas compilados, o código-fonte
é inteiramente convertido em linguagem de
máquina uma única vez. O software que efetua
essa conversão é chamado de compilador.
01/09/15
15. Esses arquivos objetos são uma versão
intermediária entre o código-fonte e o código
exe- cutável. Não é possível rodá-los
diretamente, sendo necessário o processo de
linkedição, como é chamada a ligação desses
arquivos com as bibliotecas da linguagem. Na
compilação, cada comando ou função existente
no código-fonte é convertido numa chamada
para o código real que se encontra gravado
nessas bibliotecas.
01/09/15
17. Um terceiro método de execução de programas é
denominado pseudocompilação. Nele, o compilador
gera um código intermediário, com instruções em
código de máquina, mas não resolve os endereços de
chamada a rotinas da biblioteca de funções da
linguagem. Durante a execução, um programa
denominado Run-time é carregado na memória junto
com o código compilado. Esse Run-time é
responsável por determinar os endereços de memória
das funções e procedimentos chama- dos pelo
programa durante o tempo de execução.
01/09/15
18. Existe ainda o método empregado pela linguagem
Java, que é bastante semelhante à pseudo-
compilação. O Run-time dessa linguagem consiste
num programa denominado Máquina Virtual Java
(JVM - Java Virtual Machine), que não apenas resolve
as referências de endereço, mas também oferece uma
camada de software que serve de ponte entre o nosso
programa e o sistema operacional.
01/09/15
19. Todo programa de computador é o resultado da busca pela
solução de um problema. Considere como exemplo a
necessidade de registrar as vendas de uma empresa. É criado
então um rascunho da ideia principal.
A partir desse rascunho é desenvolvido o algoritmo do
programa, que pode ser representado por um diagrama de
blocos ou por uma descrição narrativa bastante detalhada de
todos os processos.
Com base nesse algoritmo, o programador constrói o programa
utilizando uma linguagem de programação. O programa é
testado para detecção de possíveis problemas e/ou erros e
quando for finalizado, se torna disponível ao usuário.
2.2 Do problema ao programa
01/09/15
22. 3.1 Programação modular
◦Assim como ocorre quando precisamos solucionar
um problema de Matemática ou Física, ao nos
depararmos com situações de programação difíceis
de serem resolvidas, a melhor opção é decompor o
problema em porções menores, mais fáceis de
trabalhar. Com isso dividimos a complexidade de
forma a simplificar o problema.
Técnicas de Programação
01/09/15
23. Cada parte em que o
problema é dividido resulta
num fragmento de código que
denominamos de módulo ou
subprograma. Essa divisão de
um programa maior em
diversos subprogramas é uma
técnica denominada de
programação modular.
01/09/15
24. A técnica de programação estruturada é
fundamentada na construção de sistemas com a
utilização de blocos como estruturas básicas, que
podem ser expandidas até o nível de complexidade
necessário à resolução de um determinado problema.
Um bloco é formado por diversas instruções que são
executadas em conjunto por estarem logicamente
ligadas.
3.2 Programação estruturada
01/09/15
25. O código final obtido pela programação
estruturada é muito claro e de fácil
entendimento, mesmo por outras pessoas que
não sejam as que desenvolveram o código.
01/09/15
26. Entre as principais vantagens da programação
estruturada temos:
◦possibilidade de padronização devido ao número
reduzido de estruturas;
◦as estruturas podem ser inseridas em módulos
distintos;
◦programas estruturados geralmente já possuem
uma autodocumentação interna;
◦aumento na produtividade dos programadores.
01/09/15
27. A técnica de programação orientada por objeto
surgiu no final dos anos de 1970 e início de
1980, quando os pesquisadores do Centro de
Pesquisas da Xerox, em Palo Alto, Califórnia,
desenvolveram uma linguagem de programação
chamada SmallTalk, que utilizava pela primeira
vez o conceito de classes e objetos.
3.3 Programação orientada por objeto
01/09/15
28. A ideia básica por trás dessa técnica é a
capacidade de reutilização de códigos já
prontos, denominados classes, para criarmos as
partes vitais do programa, denominadas de
objetos. Com isso é possível economizar um
bom tempo no processo de desenvolvimento de
um programa.
01/09/15
29. Uma característica interessante da
programação orientada por objetos é que
podemos derivar um objeto de outro
previamente criado. Em outras palavras,
significa que podemos criar um objeto que
herda alguns atributos e ações do antecessor.
01/09/15
30. Entre as principais linguagens de programação
orientada por objetos temos C++, Object Pascal
e Java. A ferramenta de projeto mais utilizada
no desenvolvimento de aplicações que emprega
essa metodologia é a UML (Unified Modeling
Language - Linguagem de Modelagem
Unificada).
01/09/15