Objetivos Compreender a importncia das linguagens de programao Identificar as formas de classificao das linguagens de programao Conhecer a diferena de entre interpretador e compilador Identificar as caractersticas da linguagem Java Construir um pequeno exemplo de programa em Java Consideraes Para a parte final da aula, ser importante que o aluno esteja de posse de um computador.
Caso no esteja, realizar o exerccio em casa. Roteiro da Aula 1 parte O que linguagem de programao e para que serve.
2 parte - formas de classificar as linguagens de programao
3 parte conceitos bsicos da linguagem java. Linguagem de Programao Problema Algoritmo Programa Soluo do problema como uma sequncia de aes algortmicas Implementao da soluo algortmica em uma linguagem de programao Algoritmo: uma sequencia finita de aes para resolver um problema: Ex: Trocar uma lmpada 1. pegar a escada 2. subir na escada 3.retirar a lmpada velha 4. colocar lmpada nova. ... ...
Linguagem de Programao Programa uma implementao de uma soluo algortmica em linguagem de programao. Como iremos nos comunicar com o computador se a mquina s entende linguagem de 0s e 1s ? Linguagem de Programao Linguagem de programao: uma linguagem que est entre a linguagem natural dos humanos (portugus, ingles, etc) e a linguagem das mquinas. Conjunto de regras sintticas e semnticas. A linguagem de programao precisa ser traduzida para a linguagem de mquina atravs de softwares tradutores. Compilador Interpretador
Linguagem de Programao Podemos classifica-las de acordo com : O Paradigma de programao Grau de Abstrao Linguagens Compiladas ou interpretadas
Paradigma de Programao Representa a ideia central em que se baseia a linguagem. Paradigma Imperativo: Baseado em comandos e procedimentos. Ex: Pascal, C, Fortran Paradigma Orientado a Objetos: Baseados em Objetos e Classes. Ex: Java e Smaltalk Paradigma Funcional: Baseado em Funes. Ex: Lisp e Haskel Grau de Abstraes Linguagem de Mquina
Linguagem de Baixo Nvel
Linguagem de Alto Nvel Linguagem de Mquina Linguagem compreendida pelo processador, formada por uma sequencia de 0s e 1s. mais rpida por estar mais prxima do hardware e mais difcil de utiliza, tambm est muito sujeita a erros.
Exemplo de uma pequena poro do cdigo mquina do processador desenhado por Von Neumman em 1946: 000000101011110010100000001011111100100000000 011001110101000
Linguagem de Baixo Nvel So chamadas de linguagens Assembly ou montagem. So bastante prximas das linguagens de mquina, mantendo a mesma estrutura e conjunto de instrues, mas permite que o programador utilize smbolos em lugar dos 0s e 1s. O Montador Assembly o programa responsvel por converter os mnemnicos para codgo de mquina. O Montador e a linguagem Assembly especfico do tipo de processador. ARM, MIPS, PowerPC, x86. Linguagens de Alto Nvel So as mais prximas linguagem humana e mais distantes das linguagens de mquina, o que torna mais fcil a sua compreenso. necessrio compiladores ou interpretadores para gerar instrues do microprocessador. Java, C, Pascal, Fortran e as demais linguagens. Exemplos de cdigo nos trs nveis de abstrao Instruo em linguagem de alto nvel X = A+B-C Linguagem assembly equivalente ao comando acima. LDA A ADD B SUB C STR X Linguagem de mquina equivalente ao cdigo assembly acima. 000100100011 001100100100 010000100101 001000100110
Diferena entre linguagem interpretada e compilada Compilador traduz do cdigo fonte (ex: Pascal ou C++) para um executvel (linguagem de mquina) Compilador Programa fonte Programa objeto Simulam uma mquina real atravs de mquina virtual Programa fonte lido sequencialmente e as instrues so executadas imediatamenten (tempo de execuo) Interpretador Programa fonte Entrada
Sada Introduo ao Java Linguagem de programao orientada a objetos desenvolvida por uma equipe de programadores, liderados por Patrick Naughton, Mike Sheridan e James Gosling, na empresa Sun Microsystems.
Linguagem de alto desempenho, suporta multithreading, e recursos de comunicao em rede.
uma linguagem compilada e interpretada ao mesmo tempo. O cdigo fonte compilado para um "bytecode", que interpretado por uma mquina virtual (JVM). 16 Principais Caractersticas do Java Portabilidade: O Java pode ser executado em qualquer plataforma ou equipamento que possua um interpretador Java (JVM). Do celular a sua geladeira.
Orientada a Objetos: Contm a sintaxe similar linguagem C++, mas baseada no modelo Simula67.
Recursos de redes: Possui extensa biblioteca de rotinas que facilitam a cooperao com protocolos TCP/IP, como HTTP e FTP
Segurana: Pode ser executado via rede, com restries de segurana 17 Por que estudar Java? Orientao a Objetos: Totalmente orientada a objetos, permitindo herana e reutilizao de cdigo.
Dinamismo: Classes armazenas que podem ser carregadas em tempo de execuo
Facilidade: Derivada do C/C++, bem familiar. O ambiente retira do programador a responsabilidade de gerenciar a memria. 18 Utilizaes e Aplicaes do Java Desenvolvimento de aplicativos corporativos de grande porte.
Desenvolvimento de aplicativos Web.
Fornecimento de aplicativos para dispositivos voltados para o consumo popular (celulares, pagers, PDAs, etc.).
Muitos outros propsitos. 19 Funcionamento de um Programa em Java Editor a escrita ou desenvolvimento do programa (cdigo-fonte). Se faz necessrio um editor de texto simples como o Bloco de Notas (Windows) ou o Vi (Linux). Existem ambientes de desenvolvimento integrado (IDE Integrated Development Environment) que fornecem muitas ferramentas de suporte ao processo de desenvolvimento de software em Java e outras linguagens. NetBeans; Eclipse; JCreator; BlueJ. 20 Funcionamento de um Programa em Java Compilador O compilador Java converte o cdigo-fonte Java em "bytecodes", que representam as tarefas a serem realizadas durante a fase de execuo. Os bytecode so executados pela Java Virtual Machine (JVM) uma parte do JDK e a base da plataforma Java. 21 Funcionamento de um Programa em Java Carregador Todo programa deve ser colocado na memria antes de poder executar. O carregador de classe transfere os arquivos .class contendo os bytecode do programa para a memria principal. O carregador de classe tambm carrega qualquer arquivo .class fornecido pelo Java que seu programa utiliza. Os arquivos .class podem ser carregados a partir de um disco em seu sistema ou em uma rede. 22 Funcionamento de um Programa em Java Verificador Aps as classes serem carregadas, o verificador de bytecode examina os cdigos para assegurar que eles so vlidos e no violam restries de segurana do Java. 23 Funcionamento de um Programa em Java Interpretador A JVM executa o programa interpretando os bytecodes gerados na fase de compilao. Com isso, sequncias de aes especificadas pelo programador so, enfim, executadas. A mquina virtual Java (JVM) um aplicativo de software que simula um computador, mas oculta o sistema operacional e o hardware subjacentes dos programas que interagem com a VM.
24 Ambiente de Programao em Java O ambiente de desenvolvimento de software Java, Java Development Kit (JDK), formado, essencialmente, por um conjunto de aplicativos que permite, entre outras tarefas, realizar a compilao e a execuo de programas escritos na linguagem Java.
Este ambiente pode ser baixado gratuitamente a partir do site da Oracle: http://www.oracle.com/technetwork/java/javase/downloads/
As ferramentas bsicas do kit de desenvolvimento Java so: javac - O compilador Java,. java - O interpretador de aplicaes Java (mquina virtual). appletviewer - O interpretador de applets Java. 25 Entendendo as Siglas dos Ambientes Java J2SE (Java2 Standard Edition): Fornece as principais APIs (Application Programming Interface Interface de Programao de Aplicaes) e enfoca o desenvolvimento de aplicaes para PCs ou Servidores. No permite distribuio de objetos nem oferece suporte a tecnologias para Internet. J2EE (Java2 Enterprise Edition): Fornece um conjunto de APIs para o desenvolvimento corporativo e enfoca na integrao entre sistemas. Disponibiliza alta distribuio de objetos e oferece total suporte a tecnologias para Internet. J2ME (Java2 Micro Edition): Fornece as APIs para o desenvolvimento de aplicaes para computao mvel, em pequenos dispositivos ou tecnologias embarcadas. 26 Construindo um Ambiente para Programao em Java Para desenvolver programas em Java, precisamos obter o Kit de Desenvolvimento Java, que gratuito e disponvel para download no seguinte endereo: http://www.oracle.com/technetwork/java/javase/downloads/ Neste link, a Oracle disponibiliza uma srie de kit's para cada perfil. Sugerimos baixar o JDK. necessrio, ainda, que o usurio escolha a plataforma (o computador e o sistema operacional) onde o kit ser instalado (32 ou 64 bits; Windows, Mac ou Linux...). Para instalar, clique no arquivo baixado e siga as instrues do site para efetuar a correta instalao. No link abaixo, existe um artigo que auxilia o usurio na instalao do J2SE no Windows. http://www.guj.com.br/article.show.logic?id=163 27 Escrevendo e Executando o Primeiro Programa 1. Abra o Bloco de Notas e digite o cdigo a seguir: 28 Escrevendo e Executando o Primeiro Programa 2. Em Java, uma classe pblica deve ser salva em um arquivo com o mesmo nome, com a extenso .java. Como nossa classe se chama PrimeiroPrograma, devemos salvar este arquivo como PrimeiroPrograma.java. Muita ateno com a caixa da letra, pois o Java "case sensitive" (faz diferena entre letras maisculas e minsculas). 29 Escrevendo e Executando o Primeiro Programa 3. Abra o prompt do DOS. Para compilar o cdigo, iremos usar uma ferramenta SDK, o compilador javac. Isso faz com que o bytecode seja gerado. Este processo faz com que o arquivo PrimeiroPrograma.class seja gerado. 30 Escrevendo e Executando o Primeiro Programa 4. Observe na figura abaixo que estamos na pasta onde salvamos o nosso arquivo PrimeiroPrograma.java. O comando javac foi executado, nenhum erro foi encontrado e foi gerado o arquivo PrimeiroPrograma.class. 31 Escrevendo e Executando o Primeiro Programa 5. Para executar este cdigo, temos que chamar a mquina virtual. Para isso, basta digitar: java PrimeiroPrograma. Observe que no h necessidade de colocar a extenso neste passo. E finalmente executamos o nosso primeiro programa! 32 Introduo Linguagem de Programao Exerccios de Fixao 33 Exerccios de Fixao 1. Explique com suas palavras a diferena entre linguagem de mquina, linguagem de baixo nvel e linguagem de alto nvel. 34 Exerccios de Fixao 2. Escolha a opo que no uma caracterstica do Java. a) Portabilidade b) Orientada a objetos c) Linguagem de baixo nvel d) Segurana 35 Introduo Linguagem de Programao
Proxima Aula: Paradigma Orientado a Objetos 36 Duvidas: gabrielveloso2@gmail.com