Introdução à Computação
Unidade III - Software
INF0198 – Introdução à Computação
1
Software
Software
Aplicativo
Programas
Aplicativos para
Finalidades
Gerais
Executa Tarefas de
Processamento de
Informações para
Usuários Finais
Programas
Aplicativos para
Específicos
Navegadores de Rede
Contabilidade
Correio Eletrônico
Gerenc. de Vendas
Process. De Textos
Proc. de Transações
Planilhas Eletrônicas
Comércio Eletrônico
Gerenciam. de BD´s
Ciência e Engenharia
Pacotes Integrados
Educação
Editoração Eletrônica
Entretenimento, etc.
Gráficos de Apresentação
Gerencia e Apóia
Operações de
Sistemas e Redes
De Computadores
Programas de
Gerenciamento
de Sistemas
Software de
Sistemas
Programas de
Desenvolvimento
de Sistemas
Sistemas Operacionais
Tradutores de LinguaProgramas de Gerengem de Programação
ciamento de Rede
Editores e FerramenSGBD´s
tas de Programação
Utilitários do Sistema
CASE
Monitores de Desempenho
Monitores de Segurança
3 - Software – Visão Geral
Uma das principais funções do software é direcionar os
trabalhos do hardware. O software consiste em Programas de
Computador que controlam o funcionamento do hardware, ou
seja, são seqüências de instruções interpretáveis pela máquina,
juntamente com a Documentação do Programa usada para
explicar seu funcionamento ao usuário.
INF0198 – Introdução à Computação
3
Software – Visão Geral
Os Programas de Computador são conjuntos de
instruções ou ordens para o computador, que dirigem o circuito
no hardware para operar de uma determinada maneira.
A Documentação do Programa é o conjunto de
descrições narrativas destinadas a auxiliar o uso e a
implementação do programa, podendo ser internas ou externas.
Existem dois tipos fundamentais de software: software
básico e software aplicativo.
INF0198 – Introdução à Computação
4
Software – Visão Geral
O software básico (ou de sistemas) constitui um
conjunto de programas projetados para coordenar as atividades
e funções do hardware e de vários programas que rodam no
computador. O software básico é projetado para determinada
CPU e para uma classe particular de hardware. A configuração
do hardware combinada com o software básico constituem a
Plataforma do Sistema do Computador.
O software aplicativo consiste em programas que
ajudam os usuários a solucionar problemas específicos. Ele
possui um maior potencial para atender aos processos que
agregam valor a um negócio.
INF0198 – Introdução à Computação
5
Software Básico ou de Sistemas
Existem três tipos fundamentais de software básico:
 Programas Tradutores de Linguagem;
 Programas Utilitários;
 Sistemas Operacionais.
INF0198 – Introdução à Computação
6
Tradutores de Linguagem
A programação envolve a tradução do que o usuário
quer realizar em um código que o computador possa entender e
executar, desta forma surge a necessidade de Programas
Tradutores de Linguagem, que convertem uma instrução de
uma linguagem de programação de alto nível em uma
linguagem de máquina.
O código do programa de alto nível escrito pelo
programador é chamado de código fonte, e o código da
linguagem de máquina, código objeto.
INF0198 – Introdução à Computação
7
Tradutores de Linguagem - Tipos
Interpretador  é um tradutor que converte cada
instrução de um programa em linguagem de máquina em tempo
de execução.
Compilador/Ligador  é um tradutor que traduz um
programa completo para um programa completo em linguagem
de máquina. A ligação é realizada por um programa chamado
ligador, que pega os módulos-objetos (alguns podem estar
armazenado em bibliotecas) e os junta como se fossem um
quebra-cabeças para montar a forma final do programa – o
arquivo executável. Desta forma aproveitamos a modularidade
para compilarmos somente os fontes alterados.
INF0198 – Introdução à Computação
8
Programas Utilitários
Apesar de os desenvolvedores de sistemas operacionais
tentarem oferecer todos os recursos de que os usuários precisam
para utilizar e manter seus sistemas, invariavelmente eles deixam
de satisfazer a algumas expectativas. Essas falhas criaram um
mercado para softwares de terceiros, chamados utilitários.
Os utilitários são programas que preencheram a lacuna
entre a funcionalidade de um sistema operacional e as
necessidades dos usuários.
Com a popularização dos programas utilitários, os
desenvolvedores de sistemas operacionais acabam por incorporálos a novas versões de seus produtos.
INF0198 – Introdução à Computação
9
3.1 - Sistemas Operacionais
Todo computador tem, em seu nível mais básico de
software, uma camada de inteligência que dá vida à máquina.
Quando você liga o computador, instruções internas orientam-no
para encontrar e “rodar” o sistema operacional, que continua a
operar durante todo o tempo em que a máquina fica ligada.
Um Sistema Operacional (S.O.) nada mais é do que um
programa muito especial – talvez o mais complexo e importante
em um computador. O S.O. “acorda” o equipamento e faz com
que ele reconheça a CPU, a memória, o teclado, o sistema de
vídeo e as unidades de disco. Além disso oferece aos usuários a
facilidade de se comunicar com o computador e serve de
plataforma para a execução de programas aplicativos. (P.Norton)
INF0198 – Introdução à Computação
10
Sistemas Operacionais
Usuário
Programas
Sistema Operacional
Hardware
Arquivos
O SO é o núcleo do mecanismo que faz o computador funcionar.
Ele trabalha nos bastidores como intermediário entre as solicitações dos usuários e dos programas; gerencia e orienta o hardware
do computador, lê e grava dados de e para unidades de disco.
INF0198 – Introdução à Computação
11
Sistemas Operacionais
Um S.O. compreende um conjunto de programas que
controla o hardware do computador e atua como uma interface
entre os aplicativos.
Geralmente estão armazenados em disco, e após a
inicialização da máquina, processo de boot, partes desse, é
transferida para a memória principal conforme a necessidade.
Dentre suas atividades, encontram-se funções comuns do
hardware, proporcionando um certo grau de independência do
hardware, memória e tarefas de sistemas gerenciadores, e ainda
uma intermediação com o usuário.
INF0198 – Introdução à Computação
12
S.O. - Funções Básicas
Funções comuns de hardware. São chamadas ao
sistema, onde uma função bem determinada, será executada
através de um conjunto de instruções que o hardware exige. Ex:
 Receber registros através do teclado ou de algum dispositivo de entrada
 Ler e escrever dados nos discos ou outros dispositivos secundários
 Produzir e transcrever a informação para a tela do computador
Interface com o usuário. Permite que os indivíduos
acessem e comandem o computador. As primeiras interfaces,
para mainframes e computadores pessoais, eram através de
comandos. Hoje em dia temos as interfaces gráficas com o
usuário (GUI), usando imagens (chamadas ícones) e menus
exibidos na tela para enviar comandos ao computador.
INF0198 – Introdução à Computação
13
S.O. - Funções Básicas (cont.)
Gerenciamento da memória. Consiste em controlar o
acesso, o espaço disponível e o armazenamento na memória.
Controlar o acesso à memória possibilita ao computador
armazenar e recuperar dados e instruções, fornecendo-os para a
CPU. Áreas de memória protegida também é uma técnica
utilizada para que danos não aconteçam em regiões de memória
que contêm códigos críticos do SO.
Devido ao espaço finito da memória, alguns sistemas
operacionais fazem uso da memória virtual, que aloca espaço
em disco para suplementar a capacidade funcional imediata de
memória RAM.
INF0198 – Introdução à Computação
14
S.O. - Funções Básicas (cont.)
Independência de hardware. O SO serve como uma interface
entre o programa aplicativo e o hardware. Essa interface
acontece automaticamente, de forma que o usuário não precisa
fazer nada para que ela ocorra. Podemos citar a troca e utilização
de diferentes periféricos sem alterar o software aplicativo.
Gerenciamento de tarefas. Distribui os recursos do computador
para fazer o melhor uso de cada componente do sistema. Permite
a um usuário rodar vários programas ou tarefas ao mesmo tempo
(multitarefa ou multidocumento) e que vários usuários usem,
simultaneamente, o mesmo computador (tempo compartilhado).
INF0198 – Introdução à Computação
15
S.O. - Funções Básicas (cont.)
Capacidade de rede. Pode prover características e recursos
que tornam possível a conexão a uma rede de computador.
Acesso aos recursos do sistema. Os computadores lidam com
dados confidenciais que podem ser acessados por rede. O
sistema operacional deve fornecer um alto nível de segurança
contra o acesso não autorizado a dados e programas do usuário.
Gerenciamento de arquivo. O sistema operacional executa uma
função de gerenciamento de arquivo para assegurar não só que
os arquivos no armazenamento secundário estarão disponíveis
quando necessário, bem como que estarão protegidos contra o
acesso de usuários não autorizados.
INF0198 – Introdução à Computação
16
S.O. - Histórico p/ Microcomputador
No início, o único padrão real entre os microcomputadores era o
chip do processador, com isso muitos softwares só rodavam no
computador em que tinha sido desenvolvido.
Nos anos 70 foi criado o CP/M (Control Program for Microcomputers)
PC/MS-DOS 1
1981 primeira versão do MS-DOS
PC/MS-DOS 2
1983 HD, arquivos hierárquicos
PC/MS-DOS 3
1984 disquetes de 1.2MB, redes
PC/MS-DOS 4
1988 interface gráfica por shell
OS/2
1988 IBM, multitarefa e memória virtual
PC/MS-DOS 5
1991 utilitários de gerenc. de memória
PC/MS-DOS 6
1993 compr. de dados, otimização memória
PC-DOS 7
1994 desfragmentação de arquivos
Windows 95
1995 interface gráfica, não requer DOS.
INF0198 – Introdução à Computação
17
S.O. - Classificação
Entre as questões mais básicas no projeto de um Sistema
Operacional estão:
 O S.O. deve ser capaz de executar mais de uma tarefa ao
mesmo tempo?
 O S.O. deve funcionar com apenas um usuário, ou deve
aceitar vários simultaneamente?
 O S.O. deve ser capaz de usar mais de uma CPU?
INF0198 – Introdução à Computação
18
S.O. - Classificação
Multitarefa  refere-se à capacidade que um S.O. tem de rodar
mais de uma programa ao mesmo tempo.
Multiusuário  refere-se à capacidade que um S.O. tem de
permitir que mais de um usuário acesse o computador ao mesmo
tempo.
Multiprocessamento  refere-se à capacidade que um S.O. tem
de usar e gerenciar uma série de CPUs.
INF0198 – Introdução à Computação
19
S.O. - Estrutura
Chamadas de Sistema
Os programas de usuário solicitam serviços do sistema
operacional através de execução de chamadas de sistema. A cada
chamada corresponde um procedimento de uma biblioteca de
procedimentos que o programa do usuário pode chamar. Tal
procedimento coloca os parâmetros da chamada do sistema em
locais específicos, tais como registradores, e emite uma instrução
de “TRAP”, ou seja, uma chamada a procedimento protegida,
para iniciar a execução do sistema operacional.
Ex: Criar processo, gerenciar memória,, ler e escrever em
arquivos, manipular dispositivos de I/O (terminais, impressoras).
INF0198 – Introdução à Computação
20
S.O. - Estrutura
Arquitetura Monolítica.
Não há estruturação visível. O S.O. é escrito como um conjunto
de procedimentos, cada um podendo chamar qualquer dos
demais sempre que necessário. Cada procedimento deve ter uma
interface bem definida em termos de parâmetros e de resultados.
Todos os procedimentos individuais são compilados juntos de
forma a ligá-los em um único arquivo objeto.
A única estruturação é em relação às Chamadas de Sistema
fornecidas pelo S.O., pois são requisitadas através da colocação
de parâmetros em lugares muito bem determinados, tais como
registradores ou pilhas, seguindo-se a execução de uma instrução
especial de TRAP, chamada ao supervisor (ou kernel)
INF0198 – Introdução à Computação
21
S.O. - Estrutura
Arquitetura de Camadas.
É quando o sistema operacional está organizado como uma
hierarquia de níveis, cada um construído sobre o nível
imediatamente abaixo.
Ex: THE – foi o 1º, sendo construído por E.W. Dijkstra em 1968.
5
Operador
4
Programas do Usuário
3
Gerência dos dispositivos de I/O
2
Comunicação processo-operador
1
Gerência da memória e do tambor magnético
0
Alocação do processador e implementação da multiprogramação
INF0198 – Introdução à Computação
22
S.O. - Estrutura
Máquina Virtual ou estendida
Evolução natural e gradual do S.O. de forma afastar o usuário da
complexidade do hardware, apresentando-o uma interface muito
simples de entender e de programar e equivalente ao hardware,
fazendo-o pensar que a máquina é “somente dele”.
O coração do sistema, conhecido como monitor de máquina
virtual, roda sobre o hardware, e implementa a
multiprogramação, fornecendo não só uma, mas várias máquinas
virtuais para o nível acima, com cópias fiéis do hardware,
incluindo os modos kernel/usuário, entrada/saída, interrupções, e
tudo o mais que uma máquina real possui.
INF0198 – Introdução à Computação
23
S.O. - Estrutura
Modelo Cliente-Servidor
O S.O. ganhou muita simplicidade pelo fato de mover parte do
seu código tradicional (implementação da máquina virtual) para
um nível mais alto.
Uma tendência nos sistemas operacionais modernos é aproveitar
esta idéia, deixando o S.O. reduzido à sua expressão mais
simples, ou seja, o kernel.. Normalmente, as funções tradicionais
são implementadas como processos do usuário. Para solicitar um
serviço, como a leitura de um arquivo, o processo usuário, agora
denominado processo cliente, envia uma requisição para o
processo servidor, o qual então realiza o trabalho solicitado e
envia a resposta de volta ao processo usuário.
INF0198 – Introdução à Computação
24
S.O. - Estrutura
Modelo Cliente-Servidor (cont.)
Neste modelo, tudo o que o kernel faz é implementar a comunicação entre
clientes e servidores. Através da divisão do SO em várias partes, cada uma
tratando de uma faceta do sistema, tal como servidor de arquivos, de
processos, de terminais, gerente de memória, consegue-se fazer com que cada
uma das partes torne-se menor e mais facilmente gerenciável.
Como os servidores rodam no modo usuário e não no kernel, eles não tem
acesso ao hardware, como conseqüência, se for detectado um bug no servidor
de arquivos, este serviço pode entrar em colapso, mas não a máquina toda.
Processo Processo Servidor de Servidor de
Cliente
Cliente Processo Terminal
...
Servidor de Servidor de
Arquivo
Memória
Kernel
Modo Usuário
Modo Supervisor
Processos clientes obtém serviços enviando mensagens para para os processos servidores
INF0198 – Introdução à Computação
25
S.O. - Estrutura
Modelo Cliente – Servidor Sistema distribuído
Outra vantagem é sua adaptabilidade aos sistemas distribuídos.
Se um cliente se comunica com um servidor por troca de
mensagens, o cliente não precisa saber se a mensagem é tratada
localmente, em sua própria máquina, ou se ela foi enviada
através da rede, para um servidor em uma máquina remota.
Máquina 1
Máquina 2
Máquina 3
Máquina 4
Cliente
Servidor
de Processo
Servidor
de Arquivo
Servidor
de Terminal
Kernel
Kernel
Kernel
Kernel
INF0198 – Introdução à Computação
26
S.O. - Estrutura
Existem duas correntes de pensamento a respeito da estrutura
dos sistemas distribuídos. Uma diz que cada máquina deve rodar
um kernel tradicional que forneça a maioria dos serviços ele
próprio, outra acha que o kernel deve fornecer tão pouco serviço
quanto possível, com o grosso dos serviços sendo prestado a
partir de servidores a nível usuário.
Kernel Monolítico  é simplesmente um SO centralizado que
foi ampliado com facilidades de rede e de integração remotos. A
maioria das chamadas de sistema são feitas mandando um trap
para o kernel, com o trabalho sendo feito no kernel, e com este
retornando os resultados ao processo usuário. A maioria das
máquinas tem de possuir discos e precisa gerenciar seus próprios
sistemas de arquivos locais.
Ex: Unix e suas extensões/imitações.
INF0198 – Introdução à Computação
27
S.O. - Estrutura
MicroKernel  A maioria dos sistemas distribuídos que têm
sido projetados desde o início, sem aproveitar nada que já esteja
pronto, usa este método. O microkernel é mais flexível pelo fato
de não fazer quase nada. Basicamente fornece quatro serviços:
1. Um mecanismo de comunicação entre processos.
2. Um mínimo de funções para gerência da memória.
3. Um mínimo de funções de gerência de processos e
escalonamento.
4. Funções de entrada/saída de baixo nível
Em particular não fornece sistemas de arquivos, de diretórios, a
gerência completa de processos, e a manipulação da maioria das
chamadas do sistema. O objetivo é mantê-lo o menor possível.
INF0198 – Introdução à Computação
28
S.O. - Exemplos
Windows Server 2003 – Microsoft
Solaris 10 UNIX – Sun Microsystems
Netware 5.1 – Novell
Linux 6.1 – Red Hat Software
INF0198 – Introdução à Computação
29
3.2 - Software Aplicativo
Consiste em programas escritos para resolver problemas
específicos dos usuários, sua função principal é aplicar o poder
do computador para dar às pessoas, grupos e organizações a
capacidade de resolver problemas e executar atividades ou
tarefas específicas. Os programas aplicativos então interagem
com o software básico.
INF0198 – Introdução à Computação
30
3.2 - Software Aplicativo
Classificação quanto ao Desenvolvimento:
Uma empresa pode tanto desenvolver um programa único no
gênero voltado para uma aplicação específica (chamado
software proprietário) ou comprar e usar um software já
existente (chamado de software padronizado).
Software aplicativo proprietário. Ele geralmente é criado
internamente, mas também pode ser adquirido de outra empresa.
Podemos ter a opção do desenvolvimento interno ou através de
uma firma terceirizada um software de contrato.
INF0198 – Introdução à Computação
31
3.2 - Software Aplicativo
Software aplicativo padronizado. Pode ser comprado,
licenciado ou alugado de uma empresa especializada que
desenvolve programas e os vende para muito usuários de
computador e organizações.
Pacote customizado ou personalizado. Em alguns casos, as
empresas optam por uma combinação entre desenvolvimento de
software interno e externo, ou seja, os pacotes de software
padronizados são modificados ou adaptados pelo pessoal interno.
INF0198 – Introdução à Computação
32
3.2 - Software Aplicativo
Classificação quanto à Utilização:
 Comercial;
 Técnico-Científico;
 Automação;
 Educacional.
INF0198 – Introdução à Computação
33
3.2 - Software Aplicativo
Classificação quanto à Comercialização:
 Comercial;
 Freeware;
 Shareware;
 Domínio Público
INF0198 – Introdução à Computação
34
3.2 - Software Aplicativo
Comercial
Comercial' não é sinônimo para ``não-livre''.
Um programa é comercial se ele é desenvolvido como uma
atividade de um negócio. Um programa comercial pode ser livre
ou não-livre, dependendo da sua licença. Da mesma maneira, um
programa desenvolvido por uma escola ou por um indivíduo
pode ser livre ou não-livre, dependendo da sua licença. As duas
perguntas: que tipo de entidade desenvolveu o programa e qual
liberdade seus usuários possuem são independentes.
INF0198 – Introdução à Computação
35
3.2 - Software Aplicativo
Freeware
Não é sinônimo para ``free software'' ou ``software livre''. O
termo ``freeware'' foi usado comumente nos anos 80 para
programas publicados apenas como executáveis, sem código
fonte disponível. Atualmente não existe um consenso a respeito
de sua definição.
INF0198 – Introdução à Computação
36
3.2 - Software Aplicativo
Shareware
Softwares que pode ser testado gratuitamente por determinado
tempo (normalmente 30 dias), para que o usuário possa decidir
se deseja ou não comprá-lo. Após o período de avaliação, o
usuário deve decidir se deseja efetuar o registro (termo utilizado
para a compra de um shareware), ou removê-lo do computador.
A troca fica baseada na confiança, pois o usuário utiliza, de
graça, o aplicativo e, se ficar contente com o resultado, envia
dinheiro para quem o desenvolveu.
INF0198 – Introdução à Computação
37
3.2 - Software Aplicativo
Shareware (cont.)
Nem todos os usuários são confiáveis e alguns passaram a usar
os produtos sem enviar qualquer contribuição para o autor. Nesse
momento, os programadores resolveram aplicar restrições aos
programas, até que eles fossem registrados pelos usuários.
Assim que nasceram os Demos, programas que têm sua
funcionalidade total durante um determinado período de tempo e
também aqueles que são feitos incompletos como é o caso de
demos de jogos e até os aplicativos convencionais que só
possuem algumas opções habilitadas.
INF0198 – Introdução à Computação
38
3.2 - Software Aplicativo
Software Livre
Termo que se refere à liberdade dos usuários executarem,
copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem
o software. Mais precisamente, ele se refere a quatro tipos de
liberdade para os usuários do software:
 A liberdade de executar o programa, para qualquer propósito.
 A liberdade de estudar como o programa funciona, e adaptá-lo
para as suas necessidades.
 A liberdade de redistribuir cópias de modo que você possa
ajudar ao seu próximo.
 A liberdade de aperfeiçoar o programa, e liberar os seus
aperfeiçoamentos, de modo que toda a comunidade se beneficie.
INF0198 – Introdução à Computação
39
3.2 - Software Aplicativo
Software Livre (cont.)
Você deve ser livre para redistribuir cópias, seja com ou sem
modificações, seja de graça ou cobrando uma taxa pela
distribuição. O acesso ao código-fonte é uma condição
necessária ao software livre.
Independente de como você obteve a sua cópia, você sempre tem
a liberdade de copiar e modificar o software, ou mesmo de
vender cópias. É uma questão de liberdade, não de preço.
"Software Livre" Não significa "não-comercial". Um programa
livre deve estar disponível para uso comercial, desenvolvimento
comercial, e distribuição comercial.
INF0198 – Introdução à Computação
40
3.2 - Software Aplicativo
Software Aplicativo de Usuário
O software aplicativo pessoal inclui ferramentas para fins
especiais e programas que podem dar suporte a várias
necessidades do indivíduo.
Processador de texto. Se o usuário redige relatórios, cartas ou
documentos em geral, os aplicativos de processamento de textos
são indispensáveis.
Planilha eletrônica. As pessoas usam planilhas eletrônicas para
preparar orçamentos, estimar lucros, analisar programas de
seguro, resumir dados de impostos e analisar investimentos.
INF0198 – Introdução à Computação
41
3.2 - Software Aplicativo
Software Aplicativo de Usuário (cont.)
Programa de banco de dados. Os aplicativos de banco de
dados são ideais para o armazenamento, manipulação e
recuperação de dados e são particularmente úteis quando faz-se
necessário manipular grande quantidade de dados e produzir
relatórios e documentos.
Software de apresentação gráfica. Um programa de
apresentação pode auxiliar na elaboração de uma apresentação,
um desenho ou uma ilustração.
Correio Eletrônico (e-mail). Programa que permite o envio e
recebimento de mensagens eletrônicas pela Internet.
INF0198 – Introdução à Computação
42
3.2 - Software Aplicativo
Software Aplicativo de Usuário (cont.)
Navegador de Rede (browser). É a interface fundamental que é
utilizada para acessarmos a Internet, bem como as Intranets e
Extranets. Especialistas vêem o navegador como o modelo de
como a pessoas utlizarão os computadores no futuro.
Suíte de aplicativos. Corresponde a um conjunto de softwares
embalados juntos em um único pacote. As suítes podem incluir
processadores de texto, planilhas eletrônicas, sistemas de
gerenciamento de banco de dados, programas de apresentação,
ferramentas de comunicação, organizadores, etc ...
INF0198 – Introdução à Computação
43
3.2 - Software Aplicativo
Software Aplicativo de Grupo - Groupware
O software pode também ajudar grupos de pessoas a trabalharem
juntas com maior eficácia e eficiência.
Um Groupware pode dar apoio a um grupo de profissionais
trabalhando no mesmo problema permitindo compartilhar idéias
e o trabalho através de sistemas.
Deve-se notar que as pessoas nas empresas são interdependentes
e estão ligadas pelos sistemas de informação da organização.
INF0198 – Introdução à Computação
44
3.3 – Linguagens de Programação
Tanto o software básico como o software aplicativo são escritos
em esquemas de códigos denominados linguagens de
programação.
Uma linguagem de programação padrão compreende um
conjunto de regras que descrevem como as instruções de
programação devem ser escritas.
A redação ou codificação destas instruções é chamada de
programação, e a pessoa que escreve ou faz a codificação
desempenha o papel de programador. A programação envolve a
tradução do que o usuário quer realizar em um código que o
computador possa entender e executar.
INF0198 – Introdução à Computação
45
3.3 – Linguagens de Programação
Cada linguagem de programação usa um conjunto de instruções
que tem significado especial, como também sua própria série de
regras, chamada de sintaxe da linguagem, que determina como
estas instruções devem combinar em ordens capazes de
transmitir instruções significativas à CPU.
As linguagens tem evoluído com o tempo e de alguma forma
regulada por padrões, devido ao fato de versões diferentes de
uma mesma linguagem rodavam de maneira distinta em um
mesmo computador. Um padrão de linguagem de computação
consiste em uma série de normas que descrevem como os
comandos e ordens da programação devem ser escritos.
Ex.: ANSI – American National Standards Intitute.
INF0198 – Introdução à Computação
46
3.3.1 – Linguagem de Máquina
Primeira Geração. Os programadores escreviam suas instruções
em códigos binários, dizendo à CPU exatamente quais circuitos
ligar ou desligar, e devem possuir conhecimento detalhado das
operações internas da CPU que estão utilizando.
A linguagem de máquina é considerada uma linguagem de baixo
nível, porque não existe um esquema de codificação do
programa menos sofisticado do que os símbolos binários 1 e 0.
Por ser a programação extremamente difícil, pouquíssimos
programas são escritos nesta linguagem. Por ser a única capaz de
instruir diretamente a CPU, toda instrução de programa em outra
linguagem deve ser traduzida para ela antes de sua execução.
ASCII – American Standard Code for Information Interchange.
INF0198 – Introdução à Computação
47
3.3.2 – Linguagem Assembly
Linguagens de 2ª geração. Os programas usados para traduzí-las
em código de máquina são chamados de assemblers (montador).
Foram desenvolvidas para reduzir as dificuldades inerentes à
programação em linguagem de máquina, substituindo os dígitos
binários por símbolos mais facilmente compreendidos pelos
programadores. Da segunda geração em diante, todas as
linguagens são consideradas simbólicas.
Esta mudança para um código mais simbólico e legível permitiu
ao programador se concentrar mais na solução do problema do
que na complexidade da codificação. Apesar disso, ainda é
considerada de baixo nível.
INF0198 – Introdução à Computação
48
3.3.2 – Linguagem Assembly
A maioria dos fabricantes fornece uma linguagem assembly que
reflete o conjunto exclusivo de instruções para uma determinada
linha de computadores.
Essa característica é particularmente desejável para os
programadores de software de sistemas (básico), uma vez que
isto garante a eles maior controle e flexibilidade na concepção de
seus programas.
Desta forma eles podem produzir software mais eficiente, ou
seja, programas que exigem um mínimo de instruções, armazenamento e tempo da CPU para realizar determinada tarefa.
INF0198 – Introdução à Computação
49
3.3.3 – Linguagem de Alto Nível
Linguagens de 3ª Geração. Estas linguagens mantiveram a
tendência em direção ao maior uso de símbolos para instruir o
computador como completar uma operação.
Basic, Cobol, C, C++ e Fortran são exemplos de linguagens de
terceira geração que usam declarações e comandos parecidos
com o inglês.
Características:
Cada declaração traduz várias instruções na linguagem de
máquina.
A linguagem é semelhante à língua inglesa e emprega
abreviações e palavras usadas na comunicação quotidiana.
INF0198 – Introdução à Computação
50
3.3.3 – Linguagem de Alto Nível
Características (cont.):
As linguagens de terceira geração são relativamente
independentes do hardware do computador.
Esta característica está ganhando importância à medida que as
empresas utilizam diferentes computadores em sistema de
processamento distribuídos e, ainda, por força das rápidas
mudanças na tecnologia de hardware.
INF0198 – Introdução à Computação
51
3.3.4 – Linguagem de 4ª Geração
Essas são linguagens de programação menos procedimentais e
até mesmo mais parecidas com o inglês do que as de terceira
geração. Ela enfatiza quais os resultados da produção são
desejados mais do que como as instruções da programação
devem ser escritas. Requer pouco ou nenhum treinamento.
Algumas características incluem a capacidade de consultas e
manipulação de banco de dados, capacidade de geração de
código executável e funcionalidades gráficas.
Como exemplo temos Visual C++, Visual Basic, PowerBuilder,
Delphi, SQL.
INF0198 – Introdução à Computação
52
3.3.5 – Linguag. Orientada a Objetos
Enquanto as outras linguagens separam os dados dos
procedimentos que serão executados sobre eles, as linguagens
OOP os vinculam em conjunto nos objetos. Um objeto consiste
nos dados e nas ações que podem ser executadas nestes dados.
A maioria dos pacotes de OOP fornece uma interface gráfica
com o usuário que suporta uma montagem visual de objetos do
tipo “apontar e clicar”, “arrastar e soltar” conhecida como
programação visual, que a torna mais fácil e intuitiva.
A reutilização de objetos é um dos principais benefícios da OOP.
Estas linguagens são mais fáceis de usar e mais eficientes para
programar as interfaces gráficas gráficas com o usuário.
INF0198 – Introdução à Computação
53
3.3.5 – Linguag. Orientada a Objetos
Conceitos importantes:
O encapsulamento significa que as funções ou tarefas são
encapsuladas em cada objeto.
O polimorfismo permite que o programador desenvolva uma
rotina ou um conjunto de atividades que irão operar ou funcionar
com múltiplos objetos (poli).
A herança significa que os objetos de um grupo de objetos
podem herdar características de outros objetos no mesmo grupo
ou classe de objetos.
Como exemplo temos: Smalltalk, C++ e Java.
INF0198 – Introdução à Computação
54
3.3.5 – Linguag. Orientada a Objetos
Linguagem Procedural. Linguagem procedimental que utiliza
formulações breves e expressões matemáticas para especificar a
seqüência de instruções que um computador deve executar.
Linguagem não Procedural. Se aproximem mais da
conversação humana. Encorajam os usuários e programadores a
especificarem os resultados que eles desejam, ao passo que o
computador determina a seqüência de instruções que realizará
este resultado
Linguagens OO. Diferentemente das anteriores, em que um
programa consistia em procedimentos para executar ações sobre
cada elemento dos dados, nestas os sistemas ordenam a outros
objetos que executem ações sobre si mesmo.
INF0198 – Introdução à Computação
55
3.3.5 – HTML e XML
Assim como a Linguagem Java, são duas linguagens que
constituem importantes ferramentas para a montagem de páginas
para a Internet, sites e aplicações baseadas em rede.
HTML – Hypertext markup Language (Linguagem de marcação
de Hipertexto) é uma linguagem de descrição de página que cria
documentos em hipertexto ou hipermídia. Ela insere códigos de
controle em um documento em pontos que você pode especificar
para criar links (hiperlinks) para outras partes do documento e
para outros documentos em outros pontas da Internet. Ela
embute códigos de controle no texto ASCII de um documento
designando títulos, cabeçalhos, gráficos e componentes de
multimídia, além de hiperlinks no documento.
INF0198 – Introdução à Computação
56
3.3.5 – HTML e XML
XML – eXtensible Markup Language.Diferentemente da HTML,
descreve os conteúdos das páginas da web por meio de
sinalizadores de identificação, ou rótulos de contexto, aos dados
de documento web.
Por exemplo, um site de uma agência de viagens com nomes de
linhas aéreas e tempo de vôo utilizaria etiquetas de XML ocultas
como “nome da linha aérea” e “tempo de vôo” para classificar a
duração de cada vôo naquela página. Assim, ela torna a
informação do website mais fácil de ser encontrada e classificada.
Um software de procura utilizando XML poderia encontrar
facilmente determinado produto se os seus dados tivessem sido
rotulados com com sinalizadores XML de identificação.
INF0198 – Introdução à Computação
57
3.3.7 – Selecionando uma Linguagem
Selecionar a melhor linguagem de programação para uso em um
programa em particular envolve a avaliação de características da
linguagem, tais como custo, controle e questões de
complexidade.
As linguagens de máquina e assembly fornecem um controle
mais direto sobre o hardware.
Desenvolver programas de computador usando linguagens de
altíssimo nível consome menos tempo do que com as de baixo
nível.
INF0198 – Introdução à Computação
58
Download

Transparência Unidade3