¿Qué significa "argumento ficticio"?

8

¿Qué significa cuando un argumento de una función se llama argumento ficticio ? No he encontrado este término fuera de Fortran, ¿es un término general en informática? ¿Cuáles serían ejemplos de argumentos pasados ​​como ficticios y no pasados ​​como ficticios?

Encontré esta definición , que no estoy seguro de entender, pero parece que un argumento ficticio es una variable que se pasa por referencia, en cuyo caso en Fortran todas las variables son variables ficticias. (confuso)

Editar: Acabo de encontrarme con el siguiente ensayo que me ayudó a comprender mejor el argumento / función de Fortran llamando a la teminología: Dortor Fortran: He venido aquí para discutir

Kyss Tao
fuente
¡Encontré esta publicación en el sitio web de Intel útil! software.intel.com/en-us/…
user515577

Respuestas:

15

"Dummy" como "no utilizado"

En general (no en Fortran) un argumento ficticio es un argumento que no será utilizado por el cuerpo de la función.

Por ejemplo, en la siguiente función, zes un argumento ficticio, pero xy yno lo son.

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

Se pueden usar por varias razones:

  • dependiendo de otro argumento o alguna configuración, el argumento se usará (no ficticio) y, a veces, no (ficticio), pero la configuración de programación impone pasar un argumento de todos modos. En ese caso, generalmente puede pasar cualquier cosa a la función, es decir , NULLo 0, según la configuración;

  • el argumento ya no es necesario, pero debe dar uno por razones de compatibilidad con versiones anteriores;

  • la función no toma ningún argumento (puede llamarse un procedimiento) pero la configuración impone dar al menos un argumento. Puede encontrar esto en lenguajes de programación funcionales impuros, pero en general no se llama "ficticio" porque el tipo ( uniten ocaml ) lo sugiere.

"Dummy" en Fortran y Pascal

En Fortran y Pascal, y probablemente en su caso, hay una noción más oscura de argumento ficticio de objeto pasado que no he podido comprender. Pero parece referirse más a la especificación que al procedimiento real de pasar argumentos. (Algunas explicaciones: enlace 1 con ambos idiomas , enlace 2 en francés ).

No sé si esta noción todavía se usa.

"Dummy" como "atado"

En cualquier caso, no recomendaría esta terminología, pero "variable ficticia" puede significar "variable ligada", pero esta noción es más una cuestión de matemática e informática.

jmad
fuente
Mi comprensión (nota: sé semántica en francés y lenguaje de programación pero no Fortran) es que "argumento ficticio", en los 3 enlaces en su sección Fortran / Pascal, significa un argumento que es un nombre local para un objeto pasado por referencia.
Gilles 'SO- deja de ser malvado'
16

En fortran, un argumento ficticio es lo que otros idiomas llaman un argumento formal . Entonces, los argumentos ficticios son la lista de argumentos en la definición de la función (o subrutina).

Los argumentos reales son la lista de argumentos en la lista de llamadas, en el punto del código fuente donde se llama a una función (es decir, se usa).

Pablo
fuente
2
Esta es la única respuesta correcta aquí con respecto al significado de Fortran.
Vladimir F
3

Una función está bien definida como: relación entre un conjunto de entradas y un conjunto de salidas permitidas . Una variable ficticia sería cualquier entrada que no tuviera efecto en la salida.

En "C", la función de tiempo toma un puntero a un objeto time_t como entrada. Como este puntero solo se utiliza para obtener resultados, podría considerarse una "variable ficticia".

gam3
fuente
¿No sería más preciso llamarlo una variable de salida? De hecho, en algunas configuraciones (por ejemplo, en C #), en realidad se le daría la palabra clave "out" para etiquetarlo como un parámetro out.
Joe
1

Un argumento ficticio es en realidad un argumento en una función que no se ha utilizado en la función, sino que se sustituye en la expresión de la función cuando se hace referencia a ella.

David
fuente
Hola. Gracias por la respuesta, pero ¿qué novedades aporta sobre las respuestas existentes? Vea nuestras preguntas frecuentes y cómo escribir una buena respuesta .
Ran G.