Eval

Eval

Eval

Eval en varios lenguajes de programación, es una función que evalúa el contenido pasado como parámetro como si fuera una expresión.

Funciones como eval son más comunes en lenguajes de programación interpretados que compilados, puesto que incluyendo esa función en un lenguaje compilado requiere incluir un intérprete o compilador con el programa, y más información sobre la ejecución (como por ejemplo los nombres de las variables). Algunos lenguajes compilados tienen instrucciones similares a eval.

Contenido

Implementación

Aunque a primera vista no parezca una instrucción útil, con esta instrucción podemos controlar variables y manipularlas dentro de funciones. Por ejemplo:

c = eval (cadena_texto.replace ("v",g) ).toString()

Seguridad

Se debe tener un especial cuidado al usar eval con datos obtenidos desde una fuente que no sea de confianza. Por ejemplo, asumiendo que la función obtenerDatos adquiere datos desde Internet, el código siguiente en Python es inseguro:

datos = obtenerDatos()
eval(datos)

Un atacante podría suministrar el string "borrarArchivosDelSistema()" como datos, lo cual resultaría en una llamada a una función borrarArchivosDelSistema(). Para remediar la situación, todo parámetro de la función eval debe ser escapado, o eval debe ser ejecutado sin acceso a funciones potencialmente peligrosas.

Lenguajes de programación

ActionScript

Imprime una página según le pasemos en la función.

_pj = new printJob
 
_pj.addPage(eval(pg() - 2))

JavaScript y ECMAScript

El próximo fragmento de código hace calcular una variable más 23.

 //usando eval
 
 function count_more(n, o)
 {
   var x = eval( o * 23)
   var j= x-n
   return j
 }

PHP

En el siguiente ejemplo de PHP vemos que la variable $foo le pasamos la cadena 'Hola Mundo' y un salto de línea, por la cual usamos eval para que nos la imprima en pantalla ésa variable.

<?php
$foo = "Hola mundo!\n";
eval('echo $foo;');
?>

PostScript

 # make divide-by-zero nonfatal
    eval { $answer = $a / $b; }; warn $@ if $@;

Python

En Python, eval evalúa una sola expresión. Ejemplo: (modo interactivo)

>>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1

exec ejecuta varias instrucciones a la vez. Ejemplo: (modo interactivo)

>>> x = 1
>>> y = 1
>>> exec "x += 1; y -= 1"
>>> x
2
>>> y
0

Enlaces externos

Obtenido de "Eval"

Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Eval — est une fonction utilisée en programmation. Elle est présente dans de nombreux langages interprétés et permet d exécuter une commande à partir d une chaîne de caractères (ou String) générée par le programme lui même en cours d exécution.… …   Wikipédia en Français

  • Eval — ist eine besondere Programmierungsfunktion zur Metaprogrammierung, mit der ein Interpreter (oder das Paar Compiler/Laufzeitsystem) angewiesen wird, ein in der Programmiersprache selbst geschriebenes Codefragment, das als Datenobjekt vorliegt,… …   Deutsch Wikipedia

  • eval — eval·u·ate; eval·u·a·tion; eval·u·a·tive; eval·u·a·tor; …   English syllables

  • Eval — E val ([=e] val), a. [L. aevum lifetime, age, eternity.] Relating to time or duration. [Obs.] [1913 Webster] …   The Collaborative International Dictionary of English

  • Eval — In some programming languages, eval is a function which eval uates a string as though it were an expression and returns a result; in others, it executes multiple lines of code as though they had been included instead of the line including the… …   Wikipedia

  • Eval Apartments — (Саранда,Албания) Категория отеля: 4 звездочный отель Адрес: Rr. Turizem Kanali i Çu …   Каталог отелей

  • eval — abbreviation evaluation …   New Collegiate Dictionary

  • EVAL — Evaluation (Governmental » Military) * Poly(Ethylene Vinyl Alcohol) (Miscellaneous » Plastics) …   Abbreviations dictionary

  • eval — evaluate, evaluated, evaluation …   Medical dictionary

  • EVAL — Evaluate/Evaluation NASA …   Acronyms

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”