Você está na página 1de 36

Programao de Computadores I

Nilton Kazuo Gomes Suzuki, M.Sc.

Introduo
Computador
Mquina que armazena dados (nmeros, palavras, figuras), interagem com dispositivos (a tela do monitor, o sistema de som, a impressora), e executa programas.

Programas
Os programas so sequencias de instrues e decises que o computador segue para executar uma tarefa.
Um programa de computador executa uma sequencia de operaes bsicas em rpida sucesso.

Programao de Computadores
Ato de projetar e implementar programas .

Introduo
Linguagem de Programao
Uma linguagem de programao um vocabulrio e um conjunto de regras gramaticais usadas para escrever programas de computador. Cada linguagem possui um conjunto nico de palavras-chaves (palavras que ela reconhece) e uma sintaxe (regras) especfica para organizar as instrues dos programas. As linguagens de programao podem ser divididas em trs tipos, com relao sua similaridade com a linguagem humana:
Linguagem de mquina; Linguagem simblica; Linguagem de alto nvel.

Introduo
Linguagem de mquina
a linguagem de mais baixo nvel de entendimento pelo ser humano e a nica, na verdade, entendida pelo processador (UCP). constituda inteiramente de nmeros, o que torna praticamente impossvel entend-la diretamente. Cada UCP tem seu conjunto nico de instrues que definem sua linguagem de mquina, estabelecido pelo fabricante do chip.

Uma instruo tpica em linguagem de mquina seria algo como:


0100 1111 1010

Introduo
Linguagem simblica (assembly)
a linguagem de nvel imediatamente acima da linguagem de mquina. Ela possui a mesma estrutura e conjunto de instrues que a linguagem de mquina, porm permite que o programador utilize nomes (chamados mnemnicos) e smbolos em lugar de nmeros. A linguagem simblica tambm nica para cada tipo de UCP, de forma que um programa escrito em linguagem simblica para uma UCP poder no ser executado em outra UCP de uma famlia diferente. Nos primrdios da programao todos os programas eram escritos nessa linguagem.

Introduo
Hoje a linguagem simblica, utilizada quando a velocidade de execuo ou o tamanho do programa executvel gerado so essenciais. A converso da linguagem simblica para a linguagem de mquina se chama montagem, e feito por um programa chamado montador (ou assembler). Uma tpica instruo em linguagem simblica seria:
ADD A,B.

Introduo
Linguagem de alto nvel
So as linguagens de programao que possuem uma estrutura e palavras-chave que so mais prximas da linguagem humana. Tornando os programas mais fceis de serem lidos e escritos. Esta a sua principal vantagem sobre as linguagens de nvel mais baixo. Os programas escritos nessas linguagens so convertidos para a linguagem de baixo nvel atravs de um programa denominado compilador ou de um interpretador. Uma instruo tpica de uma linguagem de alto nvel :
if (A>10) then A:=A-7;

Introduo
Interpretadores e Compiladores
So programas que operam sobre programas escritos pelo programador (programa fonte).

Interpretador
Programa que l o programa fonte e executa as suas instrues linha aps linha. Dessa forma, o interpretador deve sempre estar presente e ativo durante a execuo de um programa; No h gerao de cdigo-objeto (executvel)

Compilador
Programa que l todo o programa fonte e o converte para um cdigo-objeto, que uma traduo do cdigo fonte em uma forma que pode ser diretamente executada pelo processador. H gerao de cdigo-objeto Aps a gerao do cdigo no h mais a necessidade do compilador; Desvantagem: tempo de compilao do programa

Linguagem de Programao
Interpretadas
So interpretadas linha a linha em tempo de execuo.
Perl; ASP(Active Server Pages); JavaScript; Basic.

Linguagem de Programao
Compiladas
Computador traduz o programa fonte , uma vez para a linguagem compilada (executvel). Neste processo de compilao o cdigo e submetido a uma anlise sinttica, lxica e semntica. Caso algum erro seja encontrado, o arquivo executvel no gerado, e os erros so apontados pelo compilador.
Pascal; C/C++; Java.

Java
O que Java?
Plataforma de desenvolvimento de sistema de software composta por:
Linguagem de programao Java; Ferramenta de desenvolvimento: compiladores, depuradores, entre outras; Bibliotecas para desenvolvimento de aplicaes desktop, web, dispositivos mveis, cartes inteligentes, entre outos; Mquina virtual Java (JVM Java Virtual Machine) responsvel pela execuo de um progrma Java em um Sistema Operacional.

Historia do Java
Sun Microsystem
Projeto Green 1991
James Gosling
Star Seven (*7) Linguagem de programao Oak (C e C++)

Star Seven (*7)


Monitor LCD 5, colorido e touchscreen Interface PCMCIA-Wireless Verso de Unix rodando em menos de 1 MB Linguagem segura, interpretada, multiplataforma, com theads, bibliotecas grficas, com coleta automtica de lixo Controle Remoto Permitia distribuio de objetos em uma rede sem fio

Duke mascote Java Oak -> Java 1993 -> World Wide Web -> Java para Intenet JavaScript (LiveScript) - Netscape

Mquina Virtual
Compilao em C ou Pascal

Compilao em Java

Mquina Virtual

Mquina Virtual

Mquina Virtual
Java multiplataforma.
Quando um programa Java compilado um cdigo intermedirio gerado, chamado de bytecode. Este bytecode interpretado pelas mquinas virtuais java (JVMs) para a maioria dos sistemas operacionais. A mquina virtual a responsvel por criar um ambiente multiplataforma, ou seja, se algum construir um sistema operacional novo, basta criar uma mquina virtual java que traduza os bytecodes para cdigo nativo e pronto! Todas as aplicaes java estaro rodando sem problemas. Entre outras funes, a mquina virtual java tambm responsvel por carregar de forma segura todas as classes do programa, verificar se os bytecodes aderem a especificao JVM e se eles no violam a integridade e a segurana do sistema.

Verses Java
Java Stand Edition (JavaSE)
APIs funes bsicas do Java como I/O, multitarefas, network, conectividade com banco de dados, etc.

Java Micro Edition (JavaME)


APIs funes para desenvolvimento para pequenos dispositivos eletrnicos que possuam uma KVM (Mquina Virtual para pequenos dispositivos)

Verses Java
Java Enterprise Edition (JavaEE)
APIs funes para desenvolvimento para aplicaes em servidores tais como Servlets, JSP (JavaServer Pages), EJB (Enterprise Java Beans), JMS (Java Message Service) e JSF (JavaServe Faces).

Preparando o PC para Java

Preparando o PC para Java


O que necessrio para programar e executar programas Java? (inicialmente)
Fazer download de uma verso JDK (Java Development Kit)
java.sun.com

Preparando o PC para Java


Instalar o JDK
Configurar as variveis de ambiente (Configurao)

Criar uma varivel JAVA_HOME


Nome da varivel: JAVA_HOME Valor da varivel: C:\java\jdk1.6.0_04

Configurando a varivel PATH


Nome da varivel: PATH Valor da varivel: [outros_valores];%JAVA_HOME%\BIN

Criar a varivel CLASSPATH


Nome da varivel: CLASSPATH Valor da varivel: %JAVA_HOME%;.

Preparando o PC para Java


Codificar o programa Java usando um editor de texto ou uma IDE:
Bloco de notas Edit do DOS Note Pad++ TextPad (www.textpad.com) JCreator (www.jcreator.com) Eclipse (www.eclipse.org) Netbeans (www.netbeans.org)

Primeiro Programa Java


Codificando um Programa: public class MeuPrograma { public static void main(String [] args) { // miolo do programa comea aqui! System.out.println(Minha primeira aplicao Java!!"); // fim do miolo do programa } }

Primeiro Programa Java


Regras para salvar o arquivo:
O nome do arquivo deve ter o mesmo nome da classe:
MeuPrograma.java
Nome do Arquivo Extenso do arquivo

Primeiro Programa Java


Compilando o arquivo:
Atravs da linha de comando do DOS:
c:\>javac MeuPrograma.java

Chamada do compilador Java

Programa a ser Compilado

Primeiro Programa Java


Resultado da Compilao
Uma vez compilado o programa, gerado um arquivo intermedirio, chamado bytecode, com o mesmo nome do arquivo fonte, porm com a extenso class.
MeuPrograma.class

Primeiro Programa Java


Interpretao (execuo) do arquivo:
c:\>java MeuPrograma

Obs.: Somente ser gerado o Bytecode se o arquivo fonte estiver livre de erros de sintaxe e semntica.

Primeiro Programa Java


Erros comuns
class MeuPrograma{ public static void main (String[] args) { System.out.println("Falta ponto e vrgula") } } Esse o erro de compilao mais comum: aquele onde um ponto e vrgula fora esquecido. Repare que compilador explcito em dizer que a linha 4 a com problemas. Erro: MeuPrograma.java:4: ';' expected } ^ 1 error

Primeiro Programa Java


Erros comuns
class MeuPrograma{ public static void main (String[] args) { System.out.println("Falta ponto e vrgula") } Nomear o programa diferente da classe } principal. Javac meuprograma.java

Erro:

Exception in thread "main" java.lang.NoClassDefFoundError:


MeuPrograma (wrong name: meuprograma)

Como o Byte Code


O MeuPrograma.class gerado no legvel por seres humanos (no que seja impossvel). Ele est escrito no formato que a virtual machine sabe entender e que foi especificado que ela entendesse. Podemos ler os mnemnicos utilizando a ferramenta javap que acompanha o JDK:
javap -c MeuPrograma

Como o Byte Code


E a sada:
MeuPrograma();
Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3; //String Minha primeira aplicao Java!! 5: invokevirtual #4; //Method java/io/PrintStream.println: (Ljava/lang/String;)V 8: return

Exerccios
1. 2. Altere seu programa para imprimir a seguinte mensagem Estou iniciando em Java. Altere seu programa para imprimir as frases Meu primeiro programa Java e Estou iniciando em Java em duas linhas de texto usando duas linhas de cdigo System.out. Sabendo que os caracteres \n representam uma quebra de linhas, imprima duas linhas de texto usando uma nica linha de cdigo System.out.

3.

Você também pode gostar