hardware x software - univasf.edu.brmarcelo.linder/arquivos_iapca/aulas/aula2.pdf · hardware x...

Post on 09-Jun-2020

15 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related