Codeblock

Codeblock
Para el IDE para los lenguajes de programación C/C++, véase Code::Blocks.

Los Codeblocks reciben su nombre a partir del término inglés CodeBlock, que significa literalmente "Bloque de Código". Un Codeblock sirve esencialmente para diferir la ejecución de una rutina o conjunto de instrucciones. Si se siguen las normas de la programación estructurada, su uso se torna innecesario.

Contenido

Origen

Con la aparición de miniprocesadores más potentes, la programación planificada pierde sus fundamentos en favor de la programación de sistemas dirigidos por datos. Esto marca el final del uso de la programación monolítica gobernada por Assembler, C, Pascal y fundamentalmente COBOL. Con la liberación de su Clipper versión 5.0, (en 1990) Nantucket proporciona un nuevo tipo de datos al cual llamó CodeBlock. Este nace de la necesidad de suprimir el uso de macroinstrucciones o macrosubstituciones. Estas macroinstrucciones o macrosubstituciones también se abreviaron para pasar a llamarse simplemente "macros". En la actualidad existen otros lenguajes de programación que encontraron útiles la definición y conceptos subyacentes en el término CodeBlock.

 bBloqueDeCodigo:= { | <ListaDeParametros,...> | Código Clipper Ejecutable }

Sea un arreglo con datos, el recorrido iterativo del mismo se produce con la instrucción AEVAL(), la cual posee la sintaxis:

 AEval( <aArreglo>, <bBloqueDeCodigo>, [<nInicio>], [<nCantidad>], [<lAsignar>] ) --> aArreglo 

Parámetros

<aArreglo>

 <aArreglo> es un arreglo cuyos elementos se pasan al bloque de código. 

<bBloqueDeCodigo>

 <bBloqueDeCodigo> es un bloque de código que se ejecuta para cada elemento del arreglo. 

<nInicio>

 <nInicio> es un valor numérico especificando el primer elemento del arreglo <aArreglo> para elcual el bloque de código se ejecutará. El valor predeterminado es 1.

<nCantidad>

 <nCantidad> es un valor numérico indicando el número de elementos pasados al bloque de código comenzando desde la posición <nInicio>. Si falta <nCantidad>, se pasarán al bloque de código secuencialmente todos los elementos desde <nInicio> hasta el último del <aArreglo>. 

<lAsignar>

 La expresión lógica <lAsignar> determina cuando se permitirá una asignación dentro del bloque de código. Si <lAsignar> es Verdadero (.T.), el elemento del arreglo se pasa por referencia. Si se realiza una asignación en el bloque de código, ésta se reflejará en el correspondiente elemento del arreglo. 


Sea una porción de código ejecutable agrupado en una rutina llamada "Procedimiento()".

 PROCEDURE Procedimiento()
   LOCAL nEleccion
   LOCAL aAcciones = {;
                      { || Altas() },;
                      { || Bajas() },;
                      { || Modificaciones() },;
                      { || nEleccion:= 0 };
                     }
   nEleccion:= -1
   WHILE nEleccion <> 0 
      @ 10, 10 PROMPT "Altas" 
      @ 11, 10 PROMPT "Bajas" 
      @ 12, 10 PROMPT "Modificaciones"
      @ 13, 10 PROMPT "Salir"  
      MENU TO nEleccion
      IF nEleccion > 0
         EVAL( aAcciones[nEleccion] )         
      ENDIF
   ENDDO
 RETURN 
  • En el ejemplo dado, el ciclo WHILE...ENDDO será cerrado mientras el usuario no realice elección alguna.
  • Si el usuario presiona la tecla ESC, nElección será asignado con un 0 y el ciclo se romperá.
  • Cuando el usuario elija alguno de los elementos del menú entonces nEleccion será distinto de cero pero tendrá un valor entre 1 y 4.
  • En ese caso será evaluada positivamente la comparación nEleccion > 0 y será evaluado el bloque de código almacenado en el arreglo aAcciones.
  • Préstese especial atención al último elemento de aAcciones, el cual implica una asignación en tiempo de ejecución.
  • Esa asignación produce la ruptura del ciclo.
  Eval( <bBloqueDeCodigo>, [<ListaDeExpresiones,...>]) --> xUltimoValor

Parámetros

<bBloqueDeCodigo>

  <bBloqueDeCodigo> es un bloque de código que se ejecutará. 

<ListaDeExpresiones,...>

  <ListaDeExpresiones,...> es una lista de expresiones cuyos valores serán pasados al Bloque de Código como parámetros.

Beneficios

Los Bloques de Código son el intento de substituto de las macroinstrucciones de Clipper. Las macros tienen fundamento de existencia en la necesidad de crear variables dinámicamente, construir expresiones regulares y ejecutarlas en tiempo de ejecución.

Consecuencias

Esa posibilidad, sobreexplotada, ocasiona una gran carga en los mantenimientos de los sistemas desarrollados con estas macros debido a que ocultan las fallas en tiempo de desarrollo y detonan en tiempo de ejecución, en el ambiente del usuario final. Generalmente las macros son preferidas para el desarrollo de aplicaciones con escasa o nula planificación.

Referencias


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Consultative Committee for Space Data Systems — The Consultative Committee for Space Data Systems (CCSDS) was formed in 1982 by the major space agencies of the world to provide a forum for discussion of common problems in the development and operation of space data systems. The Committee meets …   Wikipedia

  • XHarbour — is a free (GPL + exception supporting commercial applications) multi platform (DOS, Microsoft Windows, Linux (32,64), Unix (32,64), Mac OS X, OS/2, eComStation) extended Clipper compiler, offering multiple GT (Graphic Terminals), including… …   Wikipedia

  • XHarbour — Saltar a navegación, búsqueda xHarbour es un compilador extendido de Clipper en múltiples plataformas de ordenador (DOS, Microsoft Windows, Linux (32 y 64 bits), Unix (32 y 64 bits), Mac OS X), ofreciendo múltiples terminales gráficas y drivers… …   Wikipedia Español

  • xHarbour — es un compilador extendido de Clipper en múltiples plataformas de ordenador (DOS, Microsoft Windows, Linux (32 y 64 bits), Unix (32 y 64 bits), Mac OS X), ofreciendo múltiples terminales gráficas y drivers de consola, GUIs (libres como HWGui,… …   Wikipedia Español

  • GPS-Grundgleichungen — Die Artikel GPS Technologie und Global Positioning System überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne… …   Deutsch Wikipedia

  • GPS-Technologie — Die Artikel GPS Technologie und Global Positioning System überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne… …   Deutsch Wikipedia

  • GPS-Technik — Der Artikel behandelt die mathematisch geometrischen und die elektronischen Grundlagen des Global Positioning System (GPS) und ähnlich arbeitender, globaler Navigationssysteme mit Satelliten. Inhaltsverzeichnis 1 Geometrische Grundlagen 1.1… …   Deutsch Wikipedia

  • Domino (Spiel) — Dominopartie Dominospieler; Karikatur von Honoré Daumier, 1839 …   Deutsch Wikipedia

  • Logo (Programmiersprache) — Die funktionale Programmiersprache Logo ist eine von Seymour Papert entwickelte Sprache aus den 1960er Jahren. Als Interpretersprache galt Logo als leicht zu erlernen, hatte aber eine für die Zeit der Heimcomputer, als diese Sprache die größte… …   Deutsch Wikipedia

  • Schleife (Programmierung) — Eine Schleife ist eine Kontrollstruktur in Programmiersprachen. Sie wiederholt einen Anweisungs Block – den so genannten Schleifenrumpf oder Schleifenkörper – so lange, wie eine Laufbedingung gültig ist oder bis eine Abbruchbedingung eintritt.… …   Deutsch Wikipedia

Compartir el artículo y extractos

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