Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de...

204
Linguagens de Programa¸ ao Evolu¸ ao das linguagens de programa¸ ao aquina Versus Racioc´ ınio Humano Perto da m´ aquina +dependentes da aquina +dif´ ıcil para o racioc´ ınio humano >>>> Perto do racioc´ ınio hu- mano (algoritmos) +independente da m´ aquina arios paradigmas Nelma Moreira (DCC-FC) Introdu¸ ao aos Computadores Aula 13 1 / 36

Transcript of Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de...

Page 1: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 2: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 3: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 4: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 5: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 6: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de Programacao

Evolucao das linguagens de programacao

Maquina Versus Raciocınio Humano

Perto da maquina+dependentes damaquina+difıcil para o raciocıniohumano

>>>>

Perto do raciocınio hu-mano(algoritmos)+independenteda maquinaVarios paradigmas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 1 / 36

Page 7: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 8: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 9: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 10: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 11: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 12: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem maquina (1a¯ geracao)

Sequencias de bits que um CPU descodifica em instrucoes que executa.

Cada instrucao tem um codigo para a operacao e informacao sobre osoperandos.

Exemplo dum programa em linguagem maquina (eventualemente...):

000100010101001000110011

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 2 / 36

Page 13: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem Assembly (2a¯ geracao)

mnemonicas para as instrucoes

etiquetas para os enderecos

directivas para a reserva e a inicializacao de posicoes de memoria

Linguagem Apoo

load x R1load y R2add R1 R2store R2 z

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 3 / 36

Page 14: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem Assembly (2a¯ geracao)

mnemonicas para as instrucoes

etiquetas para os enderecos

directivas para a reserva e a inicializacao de posicoes de memoria

Linguagem Apoo

load x R1load y R2add R1 R2store R2 z

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 3 / 36

Page 15: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem Assembly (2a¯ geracao)

mnemonicas para as instrucoes

etiquetas para os enderecos

directivas para a reserva e a inicializacao de posicoes de memoria

Linguagem Apoo

load x R1load y R2add R1 R2store R2 z

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 3 / 36

Page 16: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem Assembly (2a¯ geracao)

mnemonicas para as instrucoes

etiquetas para os enderecos

directivas para a reserva e a inicializacao de posicoes de memoria

Linguagem Apoo

load x R1load y R2add R1 R2store R2 z

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 3 / 36

Page 17: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagem Assembly (2a¯ geracao)

mnemonicas para as instrucoes

etiquetas para os enderecos

directivas para a reserva e a inicializacao de posicoes de memoria

Linguagem Apoo

load x R1load y R2add R1 R2store R2 z

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 3 / 36

Page 18: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 19: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 20: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 21: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 22: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 23: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 24: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 25: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

Programa que traduz de Assembly para linguagem maquina:

NOTA:para cada linguagem-maquina e Assembly tem de haver umassemblador

Os assembladores podem traduzir em 2 passos:

1 constroem uma tabela em que associam as etiquetas a enderecos(tabela de sımbolos)

2 para cada instrucao, traduzem cada mnemonica pelo codigo (seq. debits) de cada operacao e cada identificador por um endereco (umendereco relativo).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 4 / 36

Page 26: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 27: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 28: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 29: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 30: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 31: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 32: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 33: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 34: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 35: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Embora o Apoo seja um processador virtual, pode-se facilmente associaruma linguagem maquina.

Apoo32

(P. Vasconcelos, 2006)

maquina com 32 registos de 32 bits

cada codigo de instrucao ocupa 1 ou 2 palavras de 32 bits

a primeira palavra e dividida em 3 campos:

codigo da operacao (opcode) (7:0): de 0x0 a 0x17e dois operandos opcionais (arg0 e arg1), que representam registos:inteiros de 8 bits.

a segunda palavra se existir um campo de 32bits que podera conterum endereco ou um valor (modo imediato)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 5 / 36

Page 36: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Por exemplo:

Add R2 R3

opcode Add : 0x7arg0 R2 : 0x2arg1 R3 : 0x3

palavra 0 : 0x30207

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 6 / 36

Page 37: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Por exemplo:

Add R2 R3

opcode Add : 0x7arg0 R2 : 0x2arg1 R3 : 0x3

palavra 0 : 0x30207

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 6 / 36

Page 38: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Por exemplo:

Add R2 R3

opcode Add : 0x7arg0 R2 : 0x2arg1 R3 : 0x3

palavra 0 : 0x30207

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 6 / 36

Page 39: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Por exemplo:

Add R2 R3

opcode Add : 0x7arg0 R2 : 0x2arg1 R3 : 0x3

palavra 0 : 0x30207

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 6 / 36

Page 40: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assemblador para o Apoo

Por exemplo:

Add R2 R3

opcode Add : 0x7arg0 R2 : 0x2arg1 R3 : 0x3

palavra 0 : 0x30207

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 6 / 36

Page 41: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 42: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 43: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 44: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 45: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 46: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Assembladores

O codigo gerado por um assemblador e normalmente recolocavel:osenderecos sao relativos a um valor base que so sera conhecido quando oprograma estiver a ser executado. Nessa altura os enderecos passam aabsolutos.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 7 / 36

Page 47: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores permitem associar varios programas objectos num so codigoexecutavel.Resolvem referencias externas aos programas objecto.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 8 / 36

Page 48: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores permitem associar varios programas objectos num so codigoexecutavel.Resolvem referencias externas aos programas objecto.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 8 / 36

Page 49: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores permitem associar varios programas objectos num so codigoexecutavel.Resolvem referencias externas aos programas objecto.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 8 / 36

Page 50: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores permitem associar varios programas objectos num so codigoexecutavel.Resolvem referencias externas aos programas objecto.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 8 / 36

Page 51: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 52: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 53: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 54: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 55: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 56: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 57: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Ligadores-Carregadores (Linkers-Loaders)

Os ligadores podem ser:

Estaticos Ligam os programas objecto num programa executavel, quedepois pode ser carregado. Esse programa executavel enormalmente guardado num ficheiro.

Dinamicos So ligam os programas quando estao carregados em memoriapara execucao

Os carregadores colocam o programa numa area de memoria, identificadapelo sistema de operacao e encarregam-se dos ajustamentos necessariosdurante a execucao do programa.

Ambos sao usados tambem pelos programas que foram compilados...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 9 / 36

Page 58: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 59: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 60: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 61: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 62: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 63: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 64: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 65: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Existem varias geracoes e paradigmas.

Alguns dos objectivos:

Descrever os problemas em termos dos conceitos relativos aoproblema a resolver e nao aos da maquinaPermitir programas (algoritmos) mais legıveis; mais faceis deconceber, de corrigir erros e de modificarMaior independencia da maquina (e do sistemas de operacao):permitir portabilidade

Qualquer destas linguagens tem de ter tradutores para aslinguagem-maquina!

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 10 / 36

Page 66: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Conceitos gerais as linguagens de programacao:

Estruturas de dados

Estrutura de programas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 11 / 36

Page 67: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Conceitos gerais as linguagens de programacao:

Estruturas de dados

Estrutura de programas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 11 / 36

Page 68: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Conceitos gerais as linguagens de programacao:

Estruturas de dados

Estrutura de programas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 11 / 36

Page 69: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens de alto-nıvel

Conceitos gerais as linguagens de programacao:

Estruturas de dados

Estrutura de programas

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 11 / 36

Page 70: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 71: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 72: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 73: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 74: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 75: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 76: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Paradigmas de Programacao

Imperativo

Orientado a objectos

Declarativo: funcional ou logico

Associados a aplicacoes: folhas de calculo, gestores de bases dedados, processadores de texto, cientıficas (MATHEMATICA,MAPLE,. . . ), de“scripting”, “de cola”, etc. 4a

¯ geracao)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 12 / 36

Page 77: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 78: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 79: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 80: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 81: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 82: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 83: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Imperativas (3a¯ geracao)

influencia da linguagem maquina

estrutura sequencial de instrucoes

Paradigma imperativo de programacao:

Desenvolvimento duma sequencia de comandos, que quandoseguidos manipulam os dados para obter um determinadoresultado. Os programas representam um metodo para resolverum dado problema.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 13 / 36

Page 84: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 85: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 86: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 87: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 88: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 89: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 90: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 91: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 92: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 93: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 94: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 95: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

Linguagem Descricao Autores DataFORTRAN (FORmula TRANslation) Para calculo numerico Backus 1957F77 (FORmula TRANslation) 1977F97 1997ALGOL 60 +Estruturado; Descricao Formal 1960ALGOL 68BASIC Beginners all-purpose symbolic instruction code Kemeny 1965VisualBasic (Varias geracoes) 199?PASCAL +Estruturas de Dados programacao sistematica N. Wirth 1971C Origem: BCPL; associado a implementacao do

UNIXKerninghan &D.Ritchie

1978

Ansi C 1988

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 14 / 36

Page 96: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

FORTRANINTEGER IREAL X(10), SUMSUM = 0.0DO 100 I=1,10

100 SUM=SUM+ X(I)**2IF (SUM .GT. 1E+5) STOPWRITE(6,200) I,SUM

200 FORMAT(’SOMA’,I,’VALORES E’,E15.7)END

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 15 / 36

Page 97: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

FORTRANINTEGER IREAL X(10), SUMSUM = 0.0DO 100 I=1,10

100 SUM=SUM+ X(I)**2IF (SUM .GT. 1E+5) STOPWRITE(6,200) I,SUM

200 FORMAT(’SOMA’,I,’VALORES E’,E15.7)END

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 15 / 36

Page 98: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

BASIC10 INPUT N20 LET FACT=130 IF N=0 THEN GOTO 7040 FOR K=N TO 1 STEP -150 LET FACT=FACT*K60 NEXT K70 PRINT ’’fact’’N’’E’’FACT80 END

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 16 / 36

Page 99: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

BASIC10 INPUT N20 LET FACT=130 IF N=0 THEN GOTO 7040 FOR K=N TO 1 STEP -150 LET FACT=FACT*K60 NEXT K70 PRINT ’’fact’’N’’E’’FACT80 END

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 16 / 36

Page 100: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

PASCAL

PROGRAM factorial(input,output);VAR n: INTEGER;

FUNCTION fac(i:INTEGER): INTEGER;BEGINIF i = 0

THEN fac := 1ELSE fac := i*fact(i-1)

END;BEGIN program

REPEATREAD(n);WRITELN(fac(n))

UNTIT n=0END.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 17 / 36

Page 101: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

PASCAL

PROGRAM factorial(input,output);VAR n: INTEGER;

FUNCTION fac(i:INTEGER): INTEGER;BEGINIF i = 0

THEN fac := 1ELSE fac := i*fact(i-1)

END;BEGIN program

REPEATREAD(n);WRITELN(fac(n))

UNTIT n=0END.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 17 / 36

Page 102: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

C

int factorial(int);main(){int n;scanf("%d",&n);printf(’Factorial de %d = %d\n’,n,factorial(n));

}/* definic~ao da func~ao */int factorial(int x){

if(x==0) return(1);return(x*factorial(x-1));

}

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 18 / 36

Page 103: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplos de linguagens imperativas

C

int factorial(int);main(){int n;scanf("%d",&n);printf(’Factorial de %d = %d\n’,n,factorial(n));

}/* definic~ao da func~ao */int factorial(int x){

if(x==0) return(1);return(x*factorial(x-1));

}

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 18 / 36

Page 104: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 105: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 106: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 107: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 108: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 109: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 110: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Dadosconstantes

variaveis

Tipos de Dados

Simples: inteiros, racionais, caracteres (Codigo ASCII), booleanos (0ou 1), apontadores (enderecos)

Complexos: variaveis indexadas, estruturas, listas, arvores, conjuntos,etc.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 19 / 36

Page 111: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 112: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 113: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 114: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 115: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 116: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Estruturas de Dados e de Programas de LinguagensImperativas

Programas

A descricao de um programa pode ser:

Ascendente sequencia de passos elementares

Descendente divide-se um programa em sub-programas

Os passos elementares sao as INSTRUCOES, isto e, accoes quemanipulam os dados.As instrucoes tem uma sintaxe rıgida.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 20 / 36

Page 117: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 118: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 119: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 120: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 121: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 122: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 123: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Atribuicao Associcao de valores a variaveisEx. x=3;

Condicional Execucao de instrucoes condicionada pela verificacao dumacondicao.Ex. if (x==0) x=3;

Instrucao composta Sequencia de instrucoesEx: {x=8; y=5}

Ciclo Repeticao (iteracao) de instrucoes de acordo com umacondicao. Ex. while (x>0) x--;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 21 / 36

Page 124: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 125: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 126: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 127: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 128: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 129: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 130: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Tipos de instrucoes

Exemplos em C

Escolha da execucao de instrucoes com base em certos valores de umparametro. Ex. switch(i) 1:2: x=3;break; default:x=0;

Transferencia de controlo (saltos) execucao duma instrucao noutro pontodo programa.Ex.(Em C nao se usa.) GOTO 70 (BASIC)

Chamada de sub-programa Ex. fact(5);

Retorno de sub-programa Ex. return n;

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 22 / 36

Page 131: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Declarativas

A questao e Qual e o problema? e nao Como se resolve o problema?.

Paradigma declarativo:

Implementacao de um algoritmo generico de resolucao deproblemas. Para resolver um problema ele tem de ser descritode um modo compatıvel com esse algoritmo e depois aplica-se oalgoritmo. Neste contexto, a tarefa do programador edesenvolver uma descricao precisa do problema em vez dedescobrir um metodo para o resolver.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 23 / 36

Page 132: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Declarativas

A questao e Qual e o problema? e nao Como se resolve o problema?.

Paradigma declarativo:

Implementacao de um algoritmo generico de resolucao deproblemas. Para resolver um problema ele tem de ser descritode um modo compatıvel com esse algoritmo e depois aplica-se oalgoritmo. Neste contexto, a tarefa do programador edesenvolver uma descricao precisa do problema em vez dedescobrir um metodo para o resolver.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 23 / 36

Page 133: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Declarativas

A questao e Qual e o problema? e nao Como se resolve o problema?.

Paradigma declarativo:

Implementacao de um algoritmo generico de resolucao deproblemas. Para resolver um problema ele tem de ser descritode um modo compatıvel com esse algoritmo e depois aplica-se oalgoritmo. Neste contexto, a tarefa do programador edesenvolver uma descricao precisa do problema em vez dedescobrir um metodo para o resolver.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 23 / 36

Page 134: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Declarativas

A questao e Qual e o problema? e nao Como se resolve o problema?.

Paradigma declarativo:

Implementacao de um algoritmo generico de resolucao deproblemas. Para resolver um problema ele tem de ser descritode um modo compatıvel com esse algoritmo e depois aplica-se oalgoritmo. Neste contexto, a tarefa do programador edesenvolver uma descricao precisa do problema em vez dedescobrir um metodo para o resolver.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 23 / 36

Page 135: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Declarativas

A questao e Qual e o problema? e nao Como se resolve o problema?.

Paradigma declarativo:

Implementacao de um algoritmo generico de resolucao deproblemas. Para resolver um problema ele tem de ser descritode um modo compatıvel com esse algoritmo e depois aplica-se oalgoritmo. Neste contexto, a tarefa do programador edesenvolver uma descricao precisa do problema em vez dedescobrir um metodo para o resolver.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 23 / 36

Page 136: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 137: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 138: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 139: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 140: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 141: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

Descricao de problemas em predicados de logica

Deducao de verdades usando regras de inferencia

PROLOG

(1974)A:-B le-se B implica A ou A se B

Suponhamos que e verdade:

pai(luis,antonio).pai(jose,luis).antepassado(X,Y) :- pai(X,Y).antepassado(X,Y) :- pai(X,Z), antepassado(Z,Y).

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 24 / 36

Page 142: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

PROLOG

Podemos perguntar:

?- antepassado(jose,antonio).yes

?- antepassado(X,Y).X = luisY = antonio ? ;X = joseY = luis ? ;X = joseY = antonio ? ;no

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 25 / 36

Page 143: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

PROLOG

Podemos perguntar:

?- antepassado(jose,antonio).yes

?- antepassado(X,Y).X = luisY = antonio ? ;X = joseY = luis ? ;X = joseY = antonio ? ;no

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 25 / 36

Page 144: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas)

PROLOG

Podemos perguntar:

?- antepassado(jose,antonio).yes

?- antepassado(X,Y).X = luisY = antonio ? ;X = joseY = luis ? ;X = joseY = antonio ? ;no

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 25 / 36

Page 145: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas

PROLOG

E o factorial fica:

fac(0,1).fac(X,Y):- X1 is X-1,fac(X1,Y1), Y is Y1*X.

?-fac(5,X).X = 120

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 26 / 36

Page 146: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas

PROLOG

E o factorial fica:

fac(0,1).fac(X,Y):- X1 is X-1,fac(X1,Y1), Y is Y1*X.

?-fac(5,X).X = 120

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 26 / 36

Page 147: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas

PROLOG

E o factorial fica:

fac(0,1).fac(X,Y):- X1 is X-1,fac(X1,Y1), Y is Y1*X.

?-fac(5,X).X = 120

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 26 / 36

Page 148: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens logicas

PROLOG

E o factorial fica:

fac(0,1).fac(X,Y):- X1 is X-1,fac(X1,Y1), Y is Y1*X.

?-fac(5,X).X = 120

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 26 / 36

Page 149: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 150: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 151: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 152: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 153: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 154: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 155: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 156: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 157: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 158: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens funcionais (ou aplicativas)

Baseadas em metodos gerais de avaliacao de funcoes quedescrevem o problema. O objectivo e dividir o problema numconjunto de sub-tarefas (funcoes) cada uma delas aceitandodados e produzindo um resultado, que podera ser os dados deoutra.

Exemplos:

Linguagem Descricao Autores Data

LISP List Processing J. McCarthy 195?ML Meta language R.Milner 1979Scheme Tipo LISP G.Steele&G.J.Sussman 1975HASKELL Wadler&al. 1989GOFER M.Jones 1991

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 27 / 36

Page 159: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

LISP

Baseia-se na avaliacao de expressoes S: listas e constantes

Ex: (a b c)

Quando e que um elemento pertence a uma lista?

(defun member (items)(cond ((null s) nil)

((equal item (car s)) s)(t (member item (cdr s)))))

e o factorial...

(defun factorial (n)(cond ((zerop n) 1)

(t (times n (factorial (sub 1 n))))))

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 28 / 36

Page 160: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

LISP

Baseia-se na avaliacao de expressoes S: listas e constantes

Ex: (a b c)

Quando e que um elemento pertence a uma lista?

(defun member (items)(cond ((null s) nil)

((equal item (car s)) s)(t (member item (cdr s)))))

e o factorial...

(defun factorial (n)(cond ((zerop n) 1)

(t (times n (factorial (sub 1 n))))))

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 28 / 36

Page 161: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

LISP

Baseia-se na avaliacao de expressoes S: listas e constantes

Ex: (a b c)

Quando e que um elemento pertence a uma lista?

(defun member (items)(cond ((null s) nil)

((equal item (car s)) s)(t (member item (cdr s)))))

e o factorial...

(defun factorial (n)(cond ((zerop n) 1)

(t (times n (factorial (sub 1 n))))))

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 28 / 36

Page 162: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

LISP

Baseia-se na avaliacao de expressoes S: listas e constantes

Ex: (a b c)

Quando e que um elemento pertence a uma lista?

(defun member (items)(cond ((null s) nil)

((equal item (car s)) s)(t (member item (cdr s)))))

e o factorial...

(defun factorial (n)(cond ((zerop n) 1)

(t (times n (factorial (sub 1 n))))))

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 28 / 36

Page 163: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

LISP

Baseia-se na avaliacao de expressoes S: listas e constantes

Ex: (a b c)

Quando e que um elemento pertence a uma lista?

(defun member (items)(cond ((null s) nil)

((equal item (car s)) s)(t (member item (cdr s)))))

e o factorial...

(defun factorial (n)(cond ((zerop n) 1)

(t (times n (factorial (sub 1 n))))))

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 28 / 36

Page 164: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 165: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 166: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 167: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 168: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 169: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Funcoes de ordem superior (funcoes que tem funcoes comoargumento)

Sistema de tipos polimorficos para as funcoes

Avaliacao parcial de funcoes

Avaliacao retardada de funcoes

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 29 / 36

Page 170: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Varias maneiras de calcular o factorial...

Factorial

fac n := if n=0 then 1 else n* fac(n-1)fac1 0 = 1fac1 n = n* fac(n-1)fac2 n =product[1..n]

Comprimento duma lista:

len []=0len (x:xs)=1 + len xs

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 30 / 36

Page 171: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Varias maneiras de calcular o factorial...

Factorial

fac n := if n=0 then 1 else n* fac(n-1)fac1 0 = 1fac1 n = n* fac(n-1)fac2 n =product[1..n]

Comprimento duma lista:

len []=0len (x:xs)=1 + len xs

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 30 / 36

Page 172: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Varias maneiras de calcular o factorial...

Factorial

fac n := if n=0 then 1 else n* fac(n-1)fac1 0 = 1fac1 n = n* fac(n-1)fac2 n =product[1..n]

Comprimento duma lista:

len []=0len (x:xs)=1 + len xs

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 30 / 36

Page 173: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

Varias maneiras de calcular o factorial...

Factorial

fac n := if n=0 then 1 else n* fac(n-1)fac1 0 = 1fac1 n = n* fac(n-1)fac2 n =product[1..n]

Comprimento duma lista:

len []=0len (x:xs)=1 + len xs

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 30 / 36

Page 174: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

A avaliacao e baseada em reducoes, que nao sao efectuadas se faltaremargumentos:

(\ x y -> y + x) 2 35

Mas

(\ x y -> y + x) 4

Nao e avaliada...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 31 / 36

Page 175: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

A avaliacao e baseada em reducoes, que nao sao efectuadas se faltaremargumentos:

(\ x y -> y + x) 2 35

Mas

(\ x y -> y + x) 4

Nao e avaliada...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 31 / 36

Page 176: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

A avaliacao e baseada em reducoes, que nao sao efectuadas se faltaremargumentos:

(\ x y -> y + x) 2 35

Mas

(\ x y -> y + x) 4

Nao e avaliada...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 31 / 36

Page 177: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

A avaliacao e baseada em reducoes, que nao sao efectuadas se faltaremargumentos:

(\ x y -> y + x) 2 35

Mas

(\ x y -> y + x) 4

Nao e avaliada...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 31 / 36

Page 178: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

HASKELL

A avaliacao e baseada em reducoes, que nao sao efectuadas se faltaremargumentos:

(\ x y -> y + x) 2 35

Mas

(\ x y -> y + x) 4

Nao e avaliada...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 31 / 36

Page 179: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 180: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 181: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 182: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 183: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 184: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 185: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 186: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 187: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 188: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 189: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os dados sao “objectos” a que estao associados metodos(rotinas, mensagens) que os manipulam. Os objectosorganizam-se em classes que possuem metodos e pode haverhierarquias de classes com heranca de metodos.Isso permite oencapsulamento da informacao em estruturas de dadosabstractas.

Exemplos:

Linguagem Autor Data

SIMULA 1978?SMALLTALK Alan Kay 1972C++ B. Stroustrup 1980Java J. Gosling& al. 1990Python Guido van Rossum 1990

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 32 / 36

Page 190: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 191: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 192: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 193: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 194: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 195: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 196: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 197: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 198: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 199: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Linguagens Orientadas a Objectos

Os objectos podem ser:

dados estrurados

graficos: linhas, rectangulos, imagens

interfaces: janelas, menus, icons,...

processos

ficheiros

pontos de rede

...

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 33 / 36

Page 200: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplo de um interface grafico (escrito em python)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 34 / 36

Page 201: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplo de um interface grafico (escrito em python)

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 34 / 36

Page 202: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplo de um interface grafico (escrito em python)

from Tkinter import *class Test(Frame):

def printit(self):print self.hi_there["command"]

def createWidgets(self):self.QUIT = Button(self,text=’QUIT’,foreground=’red’,

command=self.quit)self.QUIT.pack(side=LEFT, fill=BOTH)self.hi_there = Button(self, text=’Hello’,

command=self.printit)self.hi_there.pack(side=LEFT)self.guy2 = Button(self, text=’button 2’)self.guy2.pack()self.guy3 = Button(self, text=’button 3’)self.guy3.pack()

def __init__(self, master=None):Frame.__init__(self, master)Pack.config(self)self.createWidgets()

test = Test()test.mainloop()

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 35 / 36

Page 203: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Exemplo de um interface grafico (escrito em python)

from Tkinter import *class Test(Frame):

def printit(self):print self.hi_there["command"]

def createWidgets(self):self.QUIT = Button(self,text=’QUIT’,foreground=’red’,

command=self.quit)self.QUIT.pack(side=LEFT, fill=BOTH)self.hi_there = Button(self, text=’Hello’,

command=self.printit)self.hi_there.pack(side=LEFT)self.guy2 = Button(self, text=’button 2’)self.guy2.pack()self.guy3 = Button(self, text=’button 3’)self.guy3.pack()

def __init__(self, master=None):Frame.__init__(self, master)Pack.config(self)self.createWidgets()

test = Test()test.mainloop()

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 35 / 36

Page 204: Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de …nam/aulas/0607/ic/tic13.pdf · 2016-05-21 · directivas para a reserva e a inicializa¸c˜ao de posicoes de

Leituras

[Bro97] GB, Cap. 4.5,5

J. Glenn Brookshear.Computer Science, an overview.Addison-Wesley, 1997.

Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 36 / 36