Anidamiento (informática)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El anidamiento (llamado nesting en inglés) es la práctica de incorporar llamadas (calls) a funciones o procedimientos (unas) dentro de otras, mediante la inclusión de diversos niveles de paréntesis.

Debido a que la potencial acumulación de éstos últimos suele hacer que la edición y la detección de errores se vuelva un proceso engorroso, los entornos de programación modernos -así como los programas de planilla de cálculo- resaltan en negrita el par correspondiente a la posición que está editando el programador o usuario en cada momento. El control (automático) del balance o equilibrio entre los paréntesis de apertura y de cierre se suele conocer como brace match checking en inglés.

Naturalmente, para la resolución matemática de estas complejas formulas encadenadas, las expresiones deben ser evaluadas desde adentro hacia afuera, ya que los resultados de las más internas sirven, temporalmente, de datos de entrada de las exteriores.

En las planillas de cálculo[editar]

En las hojas de cálculo, se suelen anidar o agrupar funciones unas dentro de otras, derivando en fórmulas relativamente complejas. El programa OpenOffice.org Calc permite, mediante su asistente de funciones (function wizard), navegar a través de los varios o múltiples niveles de anidamiento, permitiendo editar (y eventualmente corregir) cada una de ellas por separado. Tal vez de manera sorprendente, su rival Microsoft Excel no posee esa característica, eventualmente deseable cuando se trabaja en algunas grandes planillas.

En programación[editar]

En los lenguajes de programación estructurada, el anidamiento está relacionado a la inclusión de estructuras de control dentro de otras, usualmente indicado mediante la inclusión de distintos niveles de sangría (llamada indentation en inglés) dentro del código fuente, como se muestra en el sencillo código BASIC siguiente:

function BuscarCodigo(cod as string) as integer
dim linea, ruta as string
dim valor_a_devolver as integer
 
ruta="C:\Probar.csv"
if FileExists(ruta) then
  open "C:\Probar.csv" for input as #1
  do while not EOF(1)
    line input #1, linea
    if left(linea, 3)=cod then
     'Realizar una acción o varias acciones
    End if
  loop
  close #1
  BuscarCodigo=valor_a_devolver
end function

En este simple ejemplo, la estructura condicional if... then... end if ("si... entonces... fin si") está anidada dentro de otra que la contiene, el ciclo do while... loop ("repetir... mientras", literalmente "hacer mientras... bucle").

Véase también[editar]