Articulo de referencia

Anidamiento (informática)

En ciencias de la computación e informática , el anidamiento [ 1 ] se refiere a la organización de la información en capas, o a la presencia de objetos que contienen otros objet...

En ciencias de la computación e informática , el anidamiento [ 1 ] se refiere a la organización de la información en capas, o a la presencia de objetos que contienen otros objetos similares. Casi siempre alude a estructuras autosimilares o recursivas en algún sentido.

Terminología

Anidar puede significar:

En hojas de cálculo

En una hoja de cálculo, las funciones se pueden anidar unas dentro de otras, creando fórmulas complejas. El asistente de funciones de la aplicación Calc de OpenOffice.org permite navegar por varios niveles de anidamiento, lo que permite al usuario editar (y posiblemente corregir) cada uno de ellos por separado.

Por ejemplo:

=SI(SUMA(C8:G8)=0,"S","N")

En esta fórmula de Microsoft Excel , la función SUMA está anidada dentro de la función SI. Primero, la fórmula calcula la suma de los números en las celdas de C8 a G8. Luego, determina si la suma es cero y muestra la letra Y si lo es, y la letra N si no lo es.

Naturalmente, para permitir la resolución matemática de estas fórmulas encadenadas (o mejor dicho: anidadas ), las expresiones internas deben evaluarse previamente, y esta dirección hacia afuera es esencial porque los resultados que devuelven las funciones internas se utilizan temporalmente como datos de entrada para las externas .

Debido a la posible acumulación de paréntesis en una sola línea de código, la edición y la detección de errores (o depuración ) pueden resultar algo complicadas . Por eso, los entornos de programación modernos —así como las hojas de cálculo— resaltan en negrita el par correspondiente a la posición de edición actual. El control de equilibrio (automático) entre el paréntesis de apertura y el de cierre se conoce como comprobación de coincidencia de llaves .

Con las versiones actuales de Excel, las funciones LAMBDA se pueden usar para crear funciones personalizadas con nombre en una fórmula y llamar a las funciones de forma recursiva [ 2 ] .

En programación

Estructuras de control

En los lenguajes de programación estructurados , el anidamiento está relacionado con el encapsulamiento de estructuras de control unas dentro de otras, generalmente indicado a través de diferentes niveles de indentación dentro del código fuente , como se muestra en esta sencilla función BASIC :

función LookupCode ( sCode como cadena ) como entero dim iReturnValue como entero dim sLine , sPath como cadenasPath = "C:\Test.dsv" if FileExists ( sPath ) then open sPath for input as # 1 do while not EOF ( 1 ) line input # 1 , sLine if sCode = left ( sLine , 3 ) then 'Acción(es) a realizar End if loop close # 1 End if LookupCode = iReturnValue end function

En este pequeño y sencillo ejemplo, el bloque condicional “if... then... end if” está anidado dentro del bucle “do while...”.

Algunos lenguajes, como Pascal y Ada, no tienen restricciones en las declaraciones según el nivel de anidamiento, lo que permite subprogramas anidados con precisión o incluso paquetes anidados (Ada). Aquí hay un ejemplo de ambos (simplificado a partir de un caso real):

-- Eliminar el problema de las variables globales (no se pueden usar en paralelo) -- de un conjunto de fuentes antiguas, sin necesidad de cambiar la lógica o la estructura de ese código. -- procedimiento Nesting_example_1 esEl tipo Buffer_type es un array ( rango de enteros <>) de enteros ;procedure Decompress ( compressed : in Buffer_type ; decompressed : out Buffer_type ) is -- Aquí están las fuentes heredadas, traducidas: package X_Globals is index_in , index_out : Integer ; -- *** ^ Estas variables son locales a Decompress. -- *** Ahora Decompress es seguro para tareas. end X_Globals ; -- Métodos 1,2,3,... (especificaciones) package X_Method_1 is procedure Decompress_1 ; end X_Method_1 ; -- Métodos 1,2,3,... (código) package body X_Method_1 is use X_Globals ; procedure Decompress_1 is begin index_in := compressed ' First ; -- Aquí, el código de descompresión, método 1 end Decompress_1 ; end X_Method_1 ; -- Fin de las fuentes heredadas begin X_Method_1 . Decompress_1 ; fin de la descompresión ;test_in , test_out : Buffer_type ( 1..10_000 ) ;begin Decompress ( test_in , test_out ); end Nesting_example_1 ;

Estructuras de datos

Las estructuras de datos anidadas también son comunes en la programación.

Ceceo

En los lenguajes de programación funcional , como Lisp , existe una estructura de datos de lista , así como una estructura de datos de átomo más simple. [ 3 ]

  • Las listas simples contienen solo átomos. [ 3 ]
( ÁTOMOS )

Los átomos de la lista son A, T, O, M y S.

  • Las listas anidadas contienen tanto átomos como otras listas. [ 3 ]
( ( ( LISTAS ANIDADAS ) ( PUEDEN ) ( SER ) INNECESARIAS ( COMPLEJAS ) )

Véase también

Referencias

  1. https://study.com/academy/lesson/nesting-loops-stan Programación en C
  2. https://support.microsoft.com/en-us/office/lambda-function-bd212d27-1cd1-4321-a34a-ccbf254b8b67
  3. 1 2 3 Sebesta, Robert W. (2012). Conceptos de lenguajes de programación (impreso) (10.ª  ed.). Boston, MA, EE. UU.: Addison-Wesley. pág.  49. ISBN 978-0-13-139531-2.