Escolar Documentos
Profissional Documentos
Cultura Documentos
No+º+ Es de Linguagem 28 09 2009
No+º+ Es de Linguagem 28 09 2009
Setembro 2009
de programas responsveis pelo controle do sistema para a execuo das tarefas consideradas
de software: Software de sistema, ou sistema operacional Software aplicativo Editores de texto: Word, WordPerfect, etc Planilhas eletrnicas: Excel, Lotus 123, QuatroPro, etc Apresentao: PowerPoint, etc Desenho: CorelDraw, etc
Jogos
Compiladores
Sistema Operacional
Hardware
Funes Bsicas de um Sistema Operacional: Comunicao usurio x computador Gerenciamento do hardware Manuteno e gerenciamento dos sistemas de arquivos Exemplos de SOs: Windows Linux MS-DOS Unix Macintosh, Solaris, OS/2
aplicativo: programas desenvolvidos ou adquiridos pelos usurios para algum fim especfico. Podem ser de natureza: profissional, educacional ou mesmo de lazer;
Software
Definio de Programa
Programa uma seqncia de instrues (comandos) que, a partir de dados inseridos, obtm um resultado que ser disponibilizado por algum dispositivo de sada
Entrada de Dados
Sada de Dados
2+5
10
Sintaxe Semntica
Se voc escrever a palavra seguintes" com a letra "r" (serguintes), este um erro sinttico Se voc no conjugar o verbo com o sujeito em uma frase, ter um outro erro sinttico
Em linguagem natural a sintaxe conhecida como Gramtica
idade
Considere o comando para a atribuio de valor uma varivel, em Java idade = 10;
idade 10
Considere o comando para a atribuio de valor uma varivel, em Java idade := 10; Erro: := idade = 10 Erro: Falta ;
Durante o incio do aprendizado de uma linguagem de programao, natural demorar muito tempo procurando erros de sintaxe, Conforme o programador ganhar experincia, entretanto, cometer menos erros e os encontrar mais rapidamente;
- O Sol uma estrela - Na Fsica Quntica h o conceito de superposio - Tem dia que de noite
assim mesmo - P daqui, p dali
- Aquela manga
azul - Vi uma pessoa no parque com binculo Depende...
Semanticamente incorretas
relacionados
ao
Para este tipo de erro, o programa vai executar com sucesso, no sentido de que o computador no ir gerar quaisquer mensagens de erro, Mas ele no far a coisa certa. Far exatamente o que o programador mandar
Linguagens de Programao Classificao A proximidade que a linguagem de programao tem com a humana determina sua classe (o nvel): Linguagem de mquina (primeira gerao) Linguagem assembly - de montagem (segunda gerao) Linguagem de alto nvel (terceira gerao) Linguagem de muito alto nvel (quarta gerao)
Linguagem de Mquina/Representao
Linguagens de Programao
Instrues de linguagem de mquina so representadas por cdigos na forma de palavras binrias. Por exemplo: 0100010100011101010101000010010 101...
Linguagem Hexadecimal: seqncia de bits pode ser representada por nmeros hexadecimais Notao em hexadecimal 1011000000000001b = B001h
Programao impraticvel para escrita e leitura (mesmo com hexadecimal)... O que fazer??
MOV
R1, R2
dois registradores como parmetros: R1 e R2 processador comanda o movimento do contedo de R2 para R1 equivalente instruo Java R1 = R2;
Linguagem Assembly (de Montagem) ADD R1, R2 mnemnico ADD (abreviao de ADDITION) dois registradores como parmetros: R1 e R2 processador comanda a adio do contedo de R1 ao contedo de R2 e o resultado armazenado em R1 equivalente instruo em Java R1=R1+R2;
Simplificaes
Linguagens de Programao
da linguagem assembly: escolhe nomes descritivos para as memria, usa mnemnicos para representar operao;
posies cdigos
de de
Linguagens de Programao
A converso da linguagem assembly para a linguagem de mquina se chama montagem E feita por um programa chamado montador (ou assembler)
Linguagem de Montagem
Linguagem de Mquina
(Assembly)
Linguagens de Programao
A linguagem assembly tambm nica para cada tipo de CPU (processador), Utiliza instrues de baixo nvel que operam com registros e memrias diretamente, No pode ser reutilizada em famlias de processadores diferentes, Famlias geralmente mantm um certo nvel de interoperabilidade Famlia x86 processador Pentium suporta o assembly do 80486, que suporta o do 80386...;
Linguagens de Programao
Aplicaes para a linguagem assembly: Controle de processos com resposta em tempo real devido possibilidade de gerar programas mais eficientes Comunicao/transferncia de dados: devido possibilidade de acessar diretamente o
hardware
Otimizao de sub-tarefas da programao de alto nvel um programa no precisa somente ser escrito em linguagem assembly ou linguagem de alto nvel
Usam palavras reservadas extradas do vocabulrio corrente (int, public, if, ...)
class HelloWorld {
Permitem a manipulao dos dados nas mais diversas formas: nmeros inteiros, reais, matrizes, etc... A linguagem assembly trabalha com bits e bytes, armazenados em memria;
Compilador ou interpretador
Linguagem de Mquina
Linguagens de Programao
As linguagens de quarta gerao tm uma estrutura mais prxima da linguagem humana do que as linguagens de programao de alto nvel Definem o que deve ser feito, e no como deve ser feito Como exemplo de linguagens de quarta gerao tem-se: linguagens de consulta a banco de dados, linguagens de prototipao (ferramentas case);
As linguagens de consulta foram desenvolvidas para manipular bases de dados. Exemplo: linguagem SQL
Apresenta os dados dos campos nome e telefone da tabela Funcionario: select nome, telefone FROM Funcionario;
(String[]args)
System.out.println(HelloWorld); }
System.out.println(HelloWorld); }
Compilao e interpretao so os processos pelos quais o cdigo fonte traduzido em cdigo de mquina H ainda a possibilidade de uma mescla das duas (em um sistema hbrido), como o caso da linguagem Java;
2.
Execuo linha 1
Execuo linha 2
As aes indicadas pelos comandos da linguagem so diretamente executadas Existe, para executar cada ao possvel, um subprograma (escrito na linguagem de mquina do computador hospedeiro)
Um interpretador um programa que executa repetidamente a seguinte seqncia: Obter o prximo comando do programa Determinar que aes devem ser executadas Executar estas aes
Caractersticas do processo de interpretao: No gera um arquivo de cdigo executvel Toda a vez que for executar o programa, ter que ler o cdigo fonte necessrio ter o interpretador na mquina onde o cdigo fonte foi desenvolvido, bem como onde o cdigo fonte ser executado independente de plataforma
Estas anlises so feitas em todo o cdigo fonte, para depois gerar o cdigo executvel
class HelloWorld {
(String[]args) {
System.out.println(HelloWorld); } }
Programas escritos em linguagem de alto nvel so compilados para verses equivalentes em linguagem de mquina, antes de serem executados
Caractersticas do processo de compilao: A primeira vez que for executar um programa ser relativamente demorado, pois ser necessrio compil-lo, Mas nas prximas execues, ser mais rpido Gera cdigo executvel, Como gera o executvel, no necessrio recompilar novamente para executar o programa;
Caractersticas do processo de compilao (cont): preciso ter um compilador na mquina onde se desenvolve o programa, mas no onde ele executado dependente de plataforma, pois o cdigo fonte gerado preparado para rodar em uma plataforma especfica (Windows, Linux, Apple, etc)
seno
imprima (num2 igual ou maior a num1)
leia (num1)
leia (num2) se (num1 > num2) ento imprima (num1) seno imprima (num2 igual ou maior a num1)
No paradigma Funcional qualquer computao formulada em termos de funes, que transformam um estado computacional em outro
n1 + n2 (+ n1 n2)
Exemplos de linguagens que suportam o paradigma funcional: LISP Haskell Miranda ML Meta Language
Exemplos de linguagens que suportam o paradigma declarativo (linguagens lgicas): Prolog GPSS
LISP
ML
Scheme
FUNCIONAIS
GPSS
Prolog
DECLARATIVAS OU LGICAS
SIMULA Smaltalk
C++
O programa organizado em funo de objetos, Objeto uma entidade independente com uma identidade e certas caractersticas prprias, Um objeto contm no s as estruturas de dados, mas tambm as funes que sobre eles agem;
nome
nome
idade
lingua
andar() respirar() alimentar() falar()
idade lingua
andar() respirar() alimentar() falar()
est?
idade=39
lingua=Tupi/Port.
andar() respirar() alimentar() falar()
Nome=Joao
idade=37 lingua=Port.
andar() respirar() alimentar() falar()