tema 3.computadores e linguagens linguagens de ... · schaum’s outline series. mcgraw-hill. h....

18

Click here to load reader

Upload: truongkhanh

Post on 08-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Aula teórica 3

Tema 3.Computadores e linguagens •  Linguagens de Programação •  Compilação e linkagem •  LP Java

Preparado por eng.Tatiana Kovalenko

Page 2: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Linguagens de Programação Para escrever programas é necessário utilizar linguagens de programação (LP). Uma linguagem de programação é um conjunto de comandos e símbolos especiais que têm um significado exacto e inequívoco, correspondendo a tarefas bem definidas, que se pretende que o computador execute. As LP possuem a sua própria gramática. Já aprendemos que computador trata, internamente, os dados sob a forma de um código baseado na numeração binária (0,1). A linguagem que o processador “entende”, de facto, é construída pelas instruções elementares que fazem parte do seu instruction set. Essa linguagem designa-se por linguagem máquina. As instruções codificadas em linguagem máquina são constituídas por sequências de bits com correspondência directa a determinadas acções a efectuar pelo processador e apresentam um aspecto semelhante ao seguinte:

2

Page 3: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

0 15 código endereço endereço 2º operando operação 1º operando ou instrução

Fig. Instrução típica de um processador de 16 bit.

Os primeiros computadores eram exclusivamente programados em linguagem máquina, o que tornava a programação um trabalho extremamente lento, complexo e muito sujeito a erros. Ex: 1101 0000 0000 0111

1011 1111 1110 1000 1101 0010 0000 0111 1011 1111 1110 1000 1001 0000 0000 0000

As linguagens de programação baseadas neste código são designadas por linguagens de baixo nível.

011 0110 01101001

3

Page 4: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Para facilitar a leitura destas instruções, na década de 50 desenvolveram-se l inguagens, que uti l izam mnemónicas correspondentes às instruções binárias mas que ainda estão directamente relacionadas com o hardware são linguagens Assembly. Por exemplo: Instrução MOV significa que o processador deve mover informação dos seus próprios registos internos para determinada localização de memória.

MOV A,1 MOV B,2 ADD A,B MOV 4C00h,A INT 21h

Existe uma relação muito directa entre as instruções assembly e as instruções máquina. Todavia, o processador não pode executar directamente as linguagens assembly.

4

Page 5: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Estas linguagens necessitam de um outro programa tradutor chamado Assembler.

Linguagem Assembly Assembler Linguagem

Máquina CPU

Assembly são muito mais fáceis de tratar pelos programadores, mas possuem ainda alguns inconvenientes:

Ø  dependem do próprio hardware, sendo diferentes de computador para computador;

Ø  são ainda pouco práticas.

Para contornar essas dificuldades desenvolveu-se um conjunto de linguagens de alto nível (BASIC, COBOL, FORTRAN, Pascal, C, C++, Java,etc), que não exigem ao programador o conhecimento da organização interna do computador e estão mais próximas da linguagem humana. A cada instrução em LP de alto nível correspondem muitas instruções em linguagem máquina.

Ex. de instrução numa LP de alto nível : x = a+ b; 5

Page 6: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Estas linguagens têm regras de sintaxe próprias. Para computador poder executar um programa na linguagem de alto nível é necessário de efectuar a tradução desta para o código da máquina.

Existem duas classes de programas que fazem essa tradução: §  os compiladores; §  os interpretadores.

O compilador transforma o programa escrito em linguagem de alto nível, num outro programa, escrito em linguagem máquina. Este processo designa-se por compilação.

O programa original, escrito em linguagem de alto nível, designa-se por programa fonte (source program).

O programa obtido depois da compilação designa-se por programa objecto (object program).

O interpretador no momento em que cada instrução é executada intervém, para transformar essa instrução de alto nível no código máquina que o processador executa. Este processo, torna naturalmente mais lenta a execução dos programas interpretados. 6

Page 7: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Linguagem de Alto Nível

Compilador Interpretador

Linguagem máquina CPU

Programa fonte

Programa objecto

Do ponto de vista do programador, as LP de alto nível são relativamente independentes do processador que as vai executar.

Para que uma LP de alto nível possa ser executada em processadores diferentes, é necessário que exista, para cada processador o respectivo compilador da linguagem.

7

Page 8: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Compilação e linkagem No que diz respeito aos programas compilados, existem duas

fases necessárias, até se obter um programa executável: 1. compilação que consiste na transformação do código fonte

em código objecto. 2.  a fase imediatamente subsequente designa-se por

l i n k a g e m . N e s t a f a s e a d i c i o n a m - s e r o t i n a s complementares, disponibilizadas pelo próprio compilador e que complementam esse código, produzindo um programa executável.

Código em linguagem de alto nível

Código objecto

Programa executável

Funções complementáres

Compilação

Linkagem

8

Page 9: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Os programas DOS (executam-se sob sistema operativo MS-DOS) utilizam a linkagem estática. Isto é, que todas as rotinas que fazem parte do programa são integradas no programa executável e carregadas para a memória quando o programa é executado. No ambiente Windows utilizam a linkagem dinâmica. Neste caso, uma aplicação pode ser constituída por um programa executável e por vários ficheiros contendo código executável (.dll – Dinamic Linking Libraries) e só são carregados para a memória quando necessário.

9

Page 10: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Linguagem de programação Java q  foi criada nos anos 90 com objectivo de criar uma nova LP

que pudesse ser executada em qualquer tipo do computador;

q  foi considerado um computador virtual que se imagina capaz de executar um código constituído por instruções simples. Este código é chamado por bytecode, pois é usado 1 byte para representar cada instrução;

q compilador de Java, ao contrário dos compiladores tradicionais, não vai gerar código executável, mas sim bytecode;

q é necessário que cada computador tenha um programa que possa interpretar e executar bytecode. Ao conjunto de todos os intérpretes disponíveis dá-se o nome de máquina virtual Java (JVM- Java Virtual Machine).

10

Page 11: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

O esquema seguinte descreve o processo de criação, compilação e execução de um programa em Java:

11

Page 12: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Para criar programas em Java é necessário ter o Java Development Kit (JDK) instalado no computador. O JDK inclui diversas ferramentas úteis, como seja o compilador (chamado javac), o interprete de bytecode (chamado java) e um largo conjunto de classes já programadas com respectiva documentação. É comum a utilização de ambientes integrados de desenvolvimento que facilitam a utilização do JDK (tais como Gel, Eclipse, BlueJ, NetBeans, etc.

12

Page 13: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Estrutura de um programa em Java Um programa em Java é um conjunto de uma ou mais classes, uma das quais será a principal e deve ter o mesmo nome que o ficheiro.

Uma classe pode ser vista como um conjunto de variáveis e subprogramas(métodos), sendo que cada um destes últimos contêm instruções que lhes permitem desempenhar uma determinada tarefa.

Três tipos de componentes principais constituem um programa: v Declarações , que reservam a memória para o

armazenamento da informação envolvida. v  Instruções, que definem as acções e decisões a tomarem. v Comentários que são úteis para os humanos, mas

ignorados pelo computador. 13

Page 14: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

O conjunto de caracteres do Java A sintaxe do Java inclui palavras reservadas, símbolos, identificadores e valores. Utilizam-se: Ø  as letras de A a Z (maiúsculas e minúsculas), Ø  os dígitos 0 a 9, Ø  os símbolos especiais:

+ . < ( - : <= ) * ; > [ / ‘ >= ] % , = = { = ^ != }

q palavras reservadas que têm em Java um significado padrão e predefinido. Por exemplo, while, if e new são instruções e class, int indicam tipos de informação declarada. 14

Page 15: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Identificadores  Um identificador é um nome que é dado a um elemento do programa, tal como uma constante, variável, subprograma ou classe.

Os identificadores são compostos de letras (somente da língua inglesa), dígitos, caracteres _ e $ em qualquer ordem, desde que o primeiro caracter não seja um digito.

O Java distingue entre maiúsculas e minúsculas, ou seja, Max, max e MAX são considerados identificadores diferentes.

É comum usar certas convenções para os identificadores: •  o nome de uma classe começa por maiúscula (Poligono); •  o nome de um subprograma(método) começa por minúscula

(por ex. main()); •  o nome de uma variável começa por minúscula (cateto1); •  o nome de uma constante é todo em maiúsculas (TAXA).

 15

Page 16: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

M Não pode usar palavras reservadas como identificadores x1, 2x1, soma, a_b, $dollar, máximo, teste 1

Variáveis

Uma variavel representa uma localização em memória do computador que tem um nome atribuído pelo programador e que vai servir para guardar informação de um determinado tipo.

O valor de uma variável pode variar durante a execução de um programa.

A declaração de variáveis é obrigatória. A sintaxe da declaração de variáveis é a seguinte:                  tipo_dado nome_da_variavel;  ou      tipo_dado nome_da_variavel=valor_inicial; Segunda forma, alem de declarar, inicializa a variável com valor fornecido.

16

Page 17: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Exemplos:  int numConta; int valMax = 1; double preco, total;

 

Constantes    Constantes são os dados cujos valores se mantém inalterados ao longo do programa. A sintaxe de declaração de uma constante é a seguinte:     final tipo_de_dado NOME_DE_CONSTANTE = valor;    Exemplo:  final int MAX_STUDENTS = 25;

M Não pode mudar o valor da constante após a sua declaração!

17

Page 18: Tema 3.Computadores e linguagens Linguagens de ... · Schaum’s Outline series. McGraw-Hill. H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman. Rui Rossi

Referência bibliográfica:

António José Mendes; Maria José Marcelino. “Fundamentos de programação em Java 2”. FCA. 2002.

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- O Núcleo de Sistema“. Centro de Tecnologias de Informação Ltd. Lisboa. 1997

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- Periféricos, Internet e multimédia“. Centro de Tecnologias de Informação Ltd. Lisboa. 1997.

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- Tecnologias de Software“. Centro de Tecnologias de Informação Ltd. Lisboa.1997.

Elliot Koffman; Ursula Wolz. “Problem Solving with Java”. 1999.

John R. Hubbard. “Theory and problems of programming with Java”. Schaum’s Outline series. McGraw-Hill.

H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman.

Rui Rossi dos Santos. “Programando em Java 2– Teoria e aplicações”. Axcel Books. 2004

18