stringtranslate.com

Anidamiento (computación)

En informática y ciencias de la computación , la anidación [1] es cuando la información se organiza en capas o cuando los objetos contienen otros objetos similares. Casi siempre se refiere 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 a través de múltiples niveles de anidación, [ se necesita más explicación ] permitiendo al usuario editar (y posiblemente corregir) cada uno de ellos por separado.

Por ejemplo:

=SI(SUMA(C8:G8)=0,"Y", "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, decide si la suma es 0 y muestra la letra Y si la suma es 0 y la letra N si no lo es.

Naturalmente, para permitir la resolución matemática de estas fórmulas encadenadas (o mejor: anidadas ), las expresiones internas deben ser evaluadas 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 detección de errores (o depuración ) puede llegar a resultar algo complicada . Por eso, los entornos de programación modernos -así como los programas de hojas de cálculo- resaltan en negrita el par correspondiente a la posición de edición actual. El control (automático) del balanceo de los paréntesis de apertura y cierre se conoce como comprobación de coincidencia de llaves .

En programación

Estructuras de control

En los lenguajes de programación estructurada , la anidación está relacionada con el encerramiento de estructuras de control una dentro de otra, generalmente indicado a través de diferentes niveles de sangría 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 cadena                sPath = "C:\Test.dsv" si FileExists ( sPath ) entonces abre sPath para entrada como # 1 hacer mientras no EOF ( 1 ) línea de entrada # 1 , sLine si sCode = left ( sLine , 3 ) entonces 'Acción(es) a realizar Fin si bucle cerrado # 1 Fin si LookupCode = iReturnValue fin de la función                               

En este pequeño y simple ejemplo, el bloque condicional “si... entonces... fin si” está anidado dentro del bucle “do while...”.

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

-- Deshacerse del problema de las variables globales (no se pueden usar en paralelo) -- de un conjunto de fuentes antiguas, sin la necesidad de cambiar la lógica o la estructura de ese código. -- El procedimiento  Nesting_example_1  es tipo  Buffer_type  es  una matriz ( rango de enteros  <>) de enteros ;    procedimiento  Descomprimir (  comprimido  :  en  Buffer_type ;  descomprimido : fuera  Buffer_type  )  es  -- Aquí están las fuentes heredadas, traducidas:  paquete  X_Globals  es  index_in ,  index_out :  Integer ;  -- *** ^ Estas variables son locales para Descomprimir.  -- *** Ahora Descomprimir es seguro para tareas.  fin  X_Globals ;  -- Métodos 1,2,3,... (especificaciones)  paquete  X_Method_1  es  procedimiento  Descomprimir_1 ;  fin  X_Method_1 ;  -- Métodos 1,2,3,... (código)  cuerpo del paquete  X_Method_1 es uso X_Globals ; procedimiento Descomprimir_1 es empezar index_in := comprimido ' Primero ; -- Aquí, el código de descompresión, método 1 fin Decompress_1 ; fin X_Method_1 ; -- Fin de las fuentes heredadas empezar X_Method_1 . Descomprimir_1 ; fin Descomprimir ;                     prueba_de_entrada ,  prueba_de_salida :  Tipo_de_búfer ( 1. . 10_000 );comenzar  Descomprimir ( prueba_de_entrada ,  prueba_de_salida ); fin  Anidamiento_ejemplo_1 ;

Estructuras de datos

Las estructuras de datos anidadas también se encuentran comúnmente en programación.

Ceceo

En los lenguajes de programación funcional , como Lisp , existe una estructura de datos de lista y también una estructura de datos de átomos más simple . [2]

( ÁTOMOS )      

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

( ( ( L I S TA S ANIDADAS ) ( PUEDEN ) ( SER ) INNECESARIAMENTE ( C O M P L E J E ) )                                               

Véase también

Referencias

  1. ^ https://study.com/academy/lesson/nesting-loops-stan Programación en C
  2. ^ abc Sebesta, Robert W. (2012). Conceptos de lenguajes de programación (versión impresa) (10.ª ed.). Boston, MA, EE. UU.: Addison-Wesley. pág. 49. ISBN 978-0-13-139531-2.