Hardware X Software - univasf.edu.brmarcelo.linder/arquivos_iapCA/aulas/aula2.pdf · Hardware X...
Transcript of Hardware X Software - univasf.edu.brmarcelo.linder/arquivos_iapCA/aulas/aula2.pdf · Hardware X...
Introdução
Hardware X Software
19
Corpo Humano
Parte Física
Componentes Capacidade de utilizar o corpo em atividades especificas explorando seus componentes
Introdução
Hardware
Parte física: placas, periféricos, circuitos, cabos e componentes.
Sozinho, não serve para nada.
20
Software (programa)
Parte Lógica, em outras palavras, constitui um conjunto de instruções que explora o hardware visando a geração de resultados ou a execução de uma tarefa.
Introdução
21
Mozilla Thunderbird
Linux
Podemos classificar os softwares em:
Sistemas operacionais
Linux
Introdução
22
Aplicativos
Mozilla Thunderbird
Associação:
Introdução
23
http://rd1.ig.com.br/gafes-mostram-que-esta-na-hora-de-ana-maria-braga-deixar-a-tv/
http://www.ksnoticias.com/mais-voce-receitas/
Associação:
A cozinha é o hardware (H)
Ana Maria Braga é o Software Aplicativo (SA)
A Maria é o Sistemas Operacionais (SO)
SASO
Introdução
24
H
SASO
http://superaudiencia.zip.net/arch2008-01-13_2008-01-19.html
Sistemas operacionaisSoftwares de sistema, que gerenciam a própria operação do computador;Controla os recursos do computador e fornece a base para os softwares de aplicação serem escritos;Escrever programas para controlar discos, leitores de CD/DVD e outras partes do hardware é
Introdução
25
de CD/DVD e outras partes do hardware é demasiadamente complexo. Fazer todas as partes do hardware trabalharem de forma integrada e otimizada é mais complexo ainda;Para afastar o desenvolvedor (programador) da camada do hardware foi criada uma camada intermediária de software denominada S.O.
Softwares AplicativosSoftwares de aplicação, que resolvem problemas/ efetuam tarefas para os usuários.
Sendo assim o S.O. é um programa que se situa entre os softwares aplicativos e o hardware: Gerenciando os recursos do
Organização do software de computadores
Introdução
2626
Gerenciando os recursos do computador (UCP, dispositivos periféricos, etc.).
Estabelece uma interface com o usuário. Determina como o usuário
interage com o hardware.
Provê e executa serviços para softwares aplicativos.
O autor fornece-o gratuitamente para ser usado por todos.
Freeware
Classificação do software de computadoresQuanto à propriedade intelectual
Introdução
2727
por todos.
O autor detém o copyright (direitos autorais).
Ele pode impor restrições ao uso.
O software não pode ser alterado ou redistribuído sem permissão.
Software que não possui copyright.
Domínio público
Classificação do software de computadoresQuanto à propriedade intelectual
Introdução
2828
Software que não possui copyright.
Pode ser usado e até mesmo alterado sem permissão.
Tipicamente, é desenvolvido por universidades e/ou instituições de pesquisa, normalmente usando subsídios governamentais.
Uma variação de freeware.
Software de fonte aberta
Classificação do software de computadoresQuanto à propriedade intelectual
Introdução
2929
O código-fonte é disponibilizado.
Código-fonte: legível por seres humanos.
Outros programadores podem modificar e redistribuir os programas livremente.
Ajuda a identificar erros (bugs) e a criar melhorias mais facilmente.
Software garantido por copyright, distribuídogratuitamente para um período experimental.
Shareware
Classificação do software de computadoresQuanto à propriedade intelectual
Introdução
3030
gratuitamente para um período experimental.
Se você gostar dele, deve registrá-lo, pagandouma taxa.
A maioria dos autores acrescentadocumentação, ampliações, suporte eatualizações gratuitas para estimular aspessoas a fazer o registro.
Software proprietário é aquele cuja cópia,redistribuição ou modificação são de alguma
Software Proprietário
Classificação do software de computadoresQuanto à propriedade intelectual
Introdução
3131
redistribuição ou modificação são de algumaforma restritos pelo seu criador ou distribuidor.
A expressão foi cunhada em oposição aoconceito de software livre.
Linguagens de Programação
32
Linguagens de Programação
13
Linguagens de ProgramaçãoUma linguagem de programação é um vocabulário e
um conjunto de regras gramaticais usadas paraescrever programas de computador. Esses programasinstruem o computador a realizar determinadas tarefasespecíficas. Cada linguagem possui um conjunto únicode palavras-chaves (palavras que ela reconhece) euma sintaxe (regras) específica para organizar asinstruções dos programas.
Os programas de computador podem ser escritos
3333
Os programas de computador podem ser escritosem várias linguagens de programação, algumasdiretamente compreensíveis pelo computador e outrasque exigem passos de tradução intermediária. Aslinguagens de programação podem ser divididas emtrês tipos, com relação à sua similaridade com alinguagem humana:
Linguagem de máquina;
Linguagem simbólica;
Linguagem de alto nível.
Linguagens de Programação
Linguagem de máquina (machine languale): éa linguagem de mais baixo nível de entendimentopelo ser humano e a única, na verdade, entendidapelo processador (UCP).
É constituída inteiramente de números (0’s e1’s), o que torna praticamente impossível entendê-la diretamente. Cada UCP tem seu conjunto único
3434
la diretamente. Cada UCP tem seu conjunto únicode instruções que definem sua linguagem demáquina, estabelecido pelo fabricante do chip.
Uma instrução típica em linguagem de máquinaseria algo como:
0100 1111 1010
Essa linguagem é também classificada comouma linguagem de primeira geração.
Linguagens de Programação
Linguagem simbólica (assembly): é alinguagem de nível imediatamente acima dalinguagem de máquina. Ela possui a mesmaestrutura e conjunto de instruções que alinguagem de máquina, porém permite que oprogramador utilize nomes (chamadosmnemônicos) e símbolos em lugar de números.
3535
mnemônicos) e símbolos em lugar de números.
A linguagem simbólica é também única paracada tipo de UCP, de forma que um programaescrito em linguagem simbólica para uma UCPpoderá não ser executado em outra UCP de umafamília diferente.
Nos primórdios da programação os programaseram escritos nessa linguagem.
Linguagens de ProgramaçãoHoje a linguagem simbólica, é utilizada quando a
velocidade de execução ou o tamanho doprograma executável gerado são essenciais. Aconversão da linguagem simbólica para alinguagem de máquina se chama montagem, e éfeita por um programa chamado montador (ouassembler).
3636
assembler).
Uma típica instrução em linguagem simbólicaseria:
ADD A, B
Essa linguagem é também classificada comolinguagem de segunda geração, e, assim como alinguagem de máquina, é considerada umalinguagem de baixo nível.
Linguagens de Programação
Linguagem de alto nível: São as linguagens deprogramação que possuem uma estrutura epalavras-chave que são mais próximas dalinguagem humana. Tornando os programas maisfáceis de serem lidos e escritos. Esta é a suaprincipal vantagem sobre as linguagens de nívelmais baixo.
3737
mais baixo.
Os programas escritos nessas linguagens sãoconvertidos para a linguagem de baixo nívelatravés de um programa denominado compiladorou de um interpretador.
Uma instrução típica de uma linguagem de altonível é:
if (A>10) then A:=A-7;
Linguagens de Programação
3838
Linguagens de Programação
Conceitos básicos de linguagens
Legibilidade
facilidade com que os programas podem ser lidos e entendidos.
Portabilidade
3939
Portabilidade
está relacionada a possibilidade de se utilizar o código fonte em diversas arquiteturas.
Linguagens de Programação
Conceitos básicos de linguagens
Confiabilidade
Diz-se que um programa é confiável se ele se comporta de acordo com suas especificações sob todas as
4040
suas especificações sob todas as condições.
Segurança
associada com a confiabilidade
Linguagens de Programação
Conceitos básicos de linguagens
Definição e uso de abstrações
abstração é a capacidade de definir e, depois, de usar estruturas ou operações complicadas de uma maneira que permita ignorar muitos detalhes.
4141
permita ignorar muitos detalhes.
Expressividade
significa que uma linguagem tem formas relativamente convenientes, em vez de desajeitadas, de especificar computações.
Linguagens de Programação
Conceitos básicos de linguagens
Flexibilidade
capacidade de utilizar suas características em diversos contextos.
Custo
4242
Custo
treinamento – capacitação dos programadores
desenvolvimento – escrita e compilação do programa
execução – verificação de tipos e interpretação
Linguagens de Programação
Conceitos básicos de linguagens
Custo (continuação)
manutenção – capacidade de adaptar o programa existe
Desempenho
4343
Desempenho
relacionado com a otimização (compilação x execução)
Linguagens de Programação
O processo de programação é norteadopor regras que especificam como oprogramador estruturará sua solução para oproblema em questão.
Este conjunto de regras que serve comoexemplo geral ou modelo é denominado
4444
exemplo geral ou modelo é denominadoparadigma.
Dentre os paradigmas de programaçãoexistentes podemos destacar comoprincipais os paradigmas: imperativo,orientado a objetos, funcional e lógico.