O que significa "argumento fictício"?

8

O que significa quando um argumento para uma função é chamado de argumento fictício ? Não encontrei esse termo fora de Fortran, é um termo geral em ciência da computação? Quais seriam os exemplos de argumentos passados ​​como fictícios e não passados ​​como fictícios?

Encontrei essa definição , que não tenho certeza de que entendi, mas parece que um argumento fictício é uma variável que é passada por referência; nesse caso, no Fortran, todas as variáveis ​​são variáveis ​​fictícias? (confuso)

Edit: Acabei de me deparar com o seguinte ensaio que me ajudou a entender melhor o argumento / função de Fortran que chamava teminologia: Dortor Fortran: Eu vim aqui para uma discussão

Kyss Tao
fonte
Encontrei este post no site da Intel para ser útil! software.intel.com/en-us/…
user515577 em 30/04

Respostas:

15

"Manequim" como "não utilizado"

Em geral (não no Fortran), um argumento fictício é um argumento que não será usado pelo corpo da função.

Por exemplo, na função a seguir, zé um argumento fictício, mas xe ynão é.

int f(int x, int y, int z) {
  return (x + y);
}

Eles podem ser usados ​​por vários motivos:

  • dependendo de outro argumento ou de alguma configuração, o argumento será usado (não simulado) e, às vezes, não (simulado), mas a configuração de programação impõe a aprovação de um argumento de qualquer maneira. Nesse caso, você geralmente pode passar qualquer coisa para a função, NULLou seja 0, dependendo da configuração;

  • o argumento não é mais necessário, mas você deve fornecer um por motivos de compatibilidade com versões anteriores;

  • a função não aceita nenhum argumento (pode ser chamado de procedimento), mas a configuração impõe para fornecer pelo menos um argumento. Você pode encontrar isso em linguagens de programação funcionais impuras, mas em geral não é chamado de "fictício" porque o tipo ( unitem ocaml ) sugere.

"Manequim" em Fortran e Pascal

Em Fortran e Pascal, e provavelmente no seu caso, há uma noção mais obscura do argumento fictício de objetos passados que não consegui compreender. Mas parece preocupar-se mais com a especificação do que com o procedimento de passagem de argumentos. (Algumas explicações: link 1 com os dois idiomas , link 2 em francês ).

Não sei se essa noção ainda é usada.

"Manequim" como "encadernado"

Eu não recomendaria essa terminologia em nenhum caso, mas "variável dummy" pode significar "variável vinculada", mas essa noção é mais uma coisa de matemática e ciência da computação.

jmad
fonte
Meu entendimento (observação: eu sei semântica em francês e em linguagem de programação, mas não o Fortran) é que "argumento fictício", em todos os 3 links da seção Fortran / Pascal, significa um argumento que é um nome local para um objeto passado por referência.
Gilles 'SO- stop be evil'
16

No fortran, um argumento fictício é o que os outros idiomas chamam de argumento formal . Portanto, os argumentos fictícios são a lista de argumentos na definição da função (ou sub-rotina).

Os argumentos reais são a lista de argumentos na lista de chamadas, no ponto do código-fonte em que uma função é chamada (isto é, usada).

Paulo
fonte
2
Esta é a única resposta correta aqui em relação ao significado de Fortran.
21415 Vladimir F
3

Uma função é bem definida como: relação entre um conjunto de entradas e um conjunto de saídas permitidas . Uma variável dummy seria qualquer entrada que não tivesse efeito na saída.

Em "C", a função time leva um ponteiro para um objeto time_t como entrada. Como esse ponteiro é usado apenas para obter saída, ele pode ser considerado uma "variável dummy".

gam3
fonte
não seria mais preciso chamá-lo de variável de saída? De fato, em algumas configurações (por exemplo, em C #), na verdade seria dada a palavra-chave "out" para rotulá-la como um parâmetro out.
Joe
1

Um argumento fictício é realmente um argumento em uma função que não é usada na função, mas é substituído na expressão da função quando é referenciada

David
fonte
Oi. Obrigado pela resposta, mas que novidades ela traz sobre as respostas existentes? Veja nossas Perguntas frequentes e como elaborar uma boa resposta .
Ran G.