Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência de...
Transcript of Linguagens de Programa¸c˜ao - FCUP - Departamento de Ciência 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Exemplo de um interface grafico (escrito em python)
Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 34 / 36
Exemplo de um interface grafico (escrito em python)
Nelma Moreira (DCC-FC) Introducao aos Computadores Aula 13 34 / 36
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
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
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