stringtranslate.com

Magia (programación)

En el contexto de la programación informática, magia es un término informal para la abstracción ; se utiliza para describir el código que maneja tareas complejas mientras oculta esa complejidad para presentar una interfaz simple. El término es un tanto irónico y a menudo conlleva malas connotaciones, ya que implica que el verdadero comportamiento del código no es inmediatamente evidente. Por ejemplo, los mecanismos de tipado y cierre polimórficos de Perl a menudo se denominan "mágicos".

El término implica que la complejidad oculta es al menos en principio comprensible, en contraste con las variantes que describen técnicas arcanas que están deliberadamente ocultas o son extremadamente difíciles de entender. Sin embargo, el término también puede aplicarse de manera cariñosa, sugiriendo un "encanto" en el código.

La acción de tales abstracciones se describe como realizada " automágicamente ", un compuesto de "automáticamente" y "mágicamente".

Opacidad referencial

El término "magia" hace referencia a procedimientos que realizan cálculos basados ​​en datos que no se les proporcionan claramente, accediendo a otros módulos, posiciones de memoria o variables globales a las que no deberían acceder (en otras palabras, no son referencialmente transparentes). Según los modelos de arquitectura de software más recientes , incluso cuando se utiliza programación estructurada , se suele preferir que cada función se comporte de la misma manera cada vez que se le pasan los mismos argumentos, siguiendo así uno de los principios básicos de la programación funcional . Cuando una función rompe esta regla, a menudo se dice que contiene "magia".

Un ejemplo simplificado de magia negativa es el siguiente código en PHP :

función  mágica () {  global  $algunavariable ; echo  $algunavariable ; }$algunavariable  =  verdadero ;magia ();

Si bien el código anterior es claro, si se lo ve en un proyecto grande, suele ser difícil comprender magic()de dónde obtiene el valor la función. Es preferible escribir ese código utilizando el siguiente concepto:

función  noMagic ( $mivariable ) {  echo  $mivariable ; }$algunavariable  =  verdadero ;noMagic ( $algunavariable );

No ortogonalidad

Cualquier SV [valor escalar] puede ser mágico, es decir, tiene características especiales que un SV normal no tiene.

—  Larry Wall , página del manual de perlguts , [1] Perl 5

Esta definición de magia o mágico se puede extender a un tipo de datos , fragmento de código, palabra clave o dirección de máquina que tiene propiedades que no comparten otros objetos idénticos. Las propiedades mágicas pueden estar documentadas o no.

Véase también

Referencias

  1. ^ "perlguts – perldoc.perl.org". 5 de octubre de 2014. Consultado el 18 de febrero de 2015 .
  2. ^ Banahan, Mike; Brady, Declan; Doran, Mark (1991). "9.10.3 El archivo de encabezado". El libro de C: Presentación del estándar ANSI C. El conjunto de instrucciones (2.ª ed.). Wokingham, Inglaterra: Addison-Wesley Publishers. pág. 234. ISBNstdio.h 0-201-54433-4No es seguro copiar estos objetos dentro del programa; a veces sus direcciones pueden ser "mágicas" .
  3. ^ "perlop – perldoc.perl.org". 7 de septiembre de 2010. Consultado el 17 de febrero de 2011 .
  4. ^ ab "27. Palabras clave" (PDF) . Manual de referencia de BBC BASIC (1.ª ed.). Cambridge, Inglaterra: Acorn Computers. Octubre de 1992. pp. 229, 349. ISBN 1-85250-103-0. Consultado el 9 de mayo de 2007 .[ enlace muerto ]