P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique [email protected]

14
PARADIGMAS DE LINGUAGENS SUBPROGRAMAS Prof. Thiago Pereira Rique [email protected] http://thiagorique.wordpress.com/

Transcript of P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique [email protected]

Page 1: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

PARADIGMAS DE LINGUAGENS

SUBPROGRAMAS

Prof. Thiago Pereira [email protected]://thiagorique.wordpress.com/

Page 2: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

AGENDA Fundamentos dos subprogramas Métodos de passagem de parâmetros Subprogramas sobrecarregados

Page 3: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Características gerais dos subprogramas:

Cada subprograma tem um único ponto de entrada;

Toda unidade chamadora é suspensa durante a execução do programa chamado.

O controle sempre retorna ao chamador quando a execução do subprograma se encerra.

Page 4: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:

Uma definição de subprograma descreve a interface e as ações da abstração de subprograma.

Uma chamada a subprograma é a solicitação explícita para executar o subprograma.

Diz-se que um subprograma é ativo se, depois de ter sido chamado, ele iniciou a execução, mas ainda não a concluiu.

Page 5: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:

Cabeçalho de subprograma

Especifica que a unidade sintática seguinte é uma definição de subprograma;

Oferece um nome para o subprograma;

Especifica uma lista de parâmetros (opcional).

Page 6: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:

Cabeçalho de subprograma

Exemplos:

FORTRAN SUBROUTINE SOMADORA(parâmetros)

Ada procedure SOMADORA(parâmetros)

Page 7: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:

Cabeçalho de subprograma

Exemplos:

C void somadora(parâmetros)

Page 8: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Parâmetros:

Acesso aos dados Acesso direto a variáveis não-locais Passagem de parâmetros

Em algumas situações é conveniente ser capaz de transmitir computações como parâmetros a subprogramas.

Page 9: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

FUNDAMENTOS DOS SUBPROGRAMAS Parâmetros:

Parâmetros formais – parâmetros no cabeçalho de um programa.

Parâmetros reais – parâmetros na chamada ao subprograma.

Page 10: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

MÉTODOS DE PASSAGEM DE PARÂMETROS Passagem por valor:

Valor do parâmetro real é usado para inicializar o parâmetro formal correspondente.

Chamador Chamado(sub(a, b, c)) (procedure sub(x, y, z))

a

b

c

x x = a

y y = b

z z = c

Page 11: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

MÉTODOS DE PASSAGEM DE PARÂMETROS Passagem por referência:

Transmite um caminho de acesso (endereço).

Proporciona o caminho de acesso à célula que armazena o parâmetro real.

Chamador Chamadoint x; void fun(int *v)...fun(&x);

x

v

Page 12: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

SUBPROGRAMAS SOBRECARREGADOS Um subprograma sobrecarregado tem o mesmo nome

que outro no mesmo ambiente de referenciamento.

Cada versão deve ser diferente quanto ao número, à ordem ou aos tipos de seus parâmetros (ou em seu tipo de retorno, se for uma função).

C++, Java e Ada incluem subprogramas sobrecarregados predefinidos.

Ex. (Java): JOptionPane.showMessageDialog(null, msg); JOptionPane.showMessageDialog(null, msg, title,

JOptionPane.PLAIN_MESSAGE);

Page 13: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

SUBPROGRAMAS SOBRECARREGADOS Na Ada, duas funções sobrecarregadas podem ter o

mesmo perfil de parâmetro e diferir somente em seus tipos de retorno.

No C++ e no Java, o tipo de retorno é irrelevante para tirar ambiguidade de funções (ou de métodos) sobrecarregadas.

Ex. (Java): public int metodo(int a, int b) { ... } public double metodo(int d, int e) { ... } //ilegal public int metodo(int a, double b) { ...}

Page 14: P ARADIGMAS DE L INGUAGENS S UBPROGRAMAS Prof. Thiago Pereira Rique thiagorique2011@gmail.com

REFERÊNCIA SEBESTA, R. W. Conceitos de Linguagens de

Programação. 5a. Edição. São Paulo: Bookman, 2003.