You are on page 1of 15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

Sangra estilo
De Wikipedia, la enciclopedia libre

(Redirigido desde estilo Allman ) En la programacin de computadoras , un guin estilo es una convencin que rige la sangra de los bloques de cdigo para transmitir la estructura del programa. En este artculo se aborda en gran medida el lenguaje de programacin C y sus descendientes, pero puede ser (y frecuentemente lo es) se aplica a la mayora de los otros lenguajes de programacin (especialmente los de la familia de corchete ). Sangra estilo es slo un aspecto de estilo de programacin . La sangra no es un requisito de la mayora de los lenguajes de programacin, donde se usa como notacin secundaria . Por el contrario, los programadores de guin para transmitir mejor la estructura de sus programas a los lectores humanos. En particular, la sangra se utiliza para mostrar la relacin entre el flujo de control de construcciones tales como las condiciones o bucles y cdigo contenidos dentro y fuera de ellas. Sin embargo, algunos lenguajes de programacin (tales como Python y Occam ) utilizan la indentacin para determinar la estructura en lugar de utilizar llaves o palabras clave. Tenga en cuenta que este artculo utiliza " soportes "para referirse a lo que se conoce como" parntesis "en Ingls Americano, y" llaves "para referirse a lo que se conoce como" llaves "en Ingls Americano.

Contenido
1 Tabs, espacios, y el tamao del guin 2 Herramientas 3 Estilos 3.1 K & R estilo 3.1.1 Variante: 1TBS 3.1.2 Variante: Stroustrup 3.2 estilo Allman 3.3 BSD estilo KNF 3.4 Whitesmiths estilo 3.5 estilo GNU 3.6 estilo Horstmann 3.7 estilo Pico 3.8 estilo Banner 3.9 estilo Lisp 3.10 estilo Ratliff 3.11 compacto estilo legibilidad de control 4 Otras consideraciones 4.1 La prdida de control de los bloques 4.2 Declaracin de insercin 5 Vase tambin 6 Referencias 7 Enlaces externos

Tabs, espacios, y el tamao del guin


en.wikipedia.org/wiki/Allman_style#Allman_style 1/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

El tamao de la sangra es generalmente independiente del estilo. Muchos de estos programas utilizan ficha caracteres para el sangrado, para simplificar y ahorrar en el tamao del archivo de origen. Unix editores generalmente ven las pestaas como equivalente a ocho caracteres, mientras que Macintosh y Microsoft Windows ambientes que se establece en cuatro, creando confusin cuando el cdigo fue trasladado hacia atrs y sucesivamente. Editores de programacin modernos son ahora a menudo capaces de establecer los tamaos de sangra arbitraria, y se inserte la combinacin adecuada de espacios y tabulaciones. Para Rub , muchos lenguajes de programacin de shell , y algunas formas de HTML formateo, dos plazas por cada nivel de sangra se utiliza generalmente. [ cita requerida ] El tema del uso de pestaas duras o espacios un debate en curso en la comunidad de programadores. Algunos programadores como Jamie Zawinski [ 1 ] consideran que los espacios en lugar de tabuladores aumentan la funcionalidad multiplataforma. Otros, como los escritores de las WordPress estndares de codificacin, [ 2 ] creer lo contrario, que las pestaas duros aumentan la funcionalidad multiplataforma.

Herramientas
Hay una serie de programas de ordenador que automticamente correcta guin estilos (de acuerdo con las preferencias del programa de autor), as como la longitud de guiones asociados con pestaas. Un famoso entre ellos es g u i n, un programa incluido con muchos Unix-como sistemas operativos . En Emacs, varios comandos estn disponibles para corregir automticamente los problemas de sangrado, incluyendo slo Tab golpe en una lnea determinada (en la configuracin por defecto). "Mx indent-regin" se puede utilizar para guin adecuadamente grandes secciones de cdigo. Elastic tabuladores es un estilo de tabulacin que requiere el apoyo del editor de texto, donde se guardan los bloques enteros de texto alineado automticamente cuando la longitud de una lnea en los cambios de bloque.

Estilos
K & R estilo
El K & R estilo, llamado as porque se utiliz en Kernighan y Ritchie del libro El lenguaje de programacin C , se utiliza comnmente en C. Tambin se utiliza para C + + , C # y otros lenguajes de programacin de llave . Al adherirse a K & R, cada funcin tiene su llave de apertura en la lnea siguiente en el mismo nivel de sangra como su cabecera, las declaraciones prospectivas dentro de las llaves se sangra, y la llave de cierre al final est en el mismo nivel de sangra como la cabecera de la funcin en una lnea propia. Los bloques dentro de una funcin, sin embargo, tienen sus llaves de apertura en la misma lnea que sus sentencias de control respectivos, llaves de cierre se mantienen en una lnea propia, a menos seguido de una cosa o de tiempo de palabra clave.
[ cita requerida ]

En este estilo de una sentencia de control con una sola sentencia en su mbito de aplicacin puede omitir las llaves. El lenguaje de programacin C se refiere a este suelo tan frtil para los errores (errores de programacin lgica) y lo desalienta.

i n tp r i n c i p a l(i n ta r g c, c a r a c t e r e s *a r g v[]) { . . . m i e n t r a sq u e (x= =y) { a l g o();


en.wikipedia.org/wiki/Allman_style#Allman_style 2/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

s o m e t h i n g e l s e(); s i (s o m e _ e r r o r) { /*l a sl l a v e se nt o r n oae s t eb l o q u ed ec d i g op o d r a no m i t i r s e*/ d o _ c o r r e c t(); } d e m s c o n t i n u e _ a s _ u s u a l();

f i n a l t h i n g(); . . .

En versiones anteriores del lenguaje de programacin C, las funciones, sin embargo, se preparaban con claridad. La apertura de llave de funcin de una funcin se coloc en la lnea siguiente despus de la seccin de declaracin y, al mismo nivel de sangra como la declaracin (cabecera de la funcin). Esto se debe a que en el idioma original C, tipos de argumentos necesarios para ser declarado en la lnea posterior (es decir, justo despus de la cabecera de la funcin), mientras que cuando no hay argumentos eran necesarias, la llave de apertura no aparece en la misma lnea con la declaracin de la funcin. La llave de apertura para la declaracin de funciones fue una excepcin a la regla bsica que indica que actualmente los estados y bloques de funcin estn encerrados en las llaves de funcin. [ cita requerida ]

/*O r i g i n a le s t i l op r e I S OCs i np r o t o t i p o sd ef u n c i o n e s*/ i n tp r i n c i p a l(a r g c,a r g v) i n t a r g c; c a r a c t e r e s *a r g v[], { . . . }

Variante: 1TBS Los defensores de este estilo a veces se refieren a ella como "el estilo de cors verdadero" (abreviado como 1TBS o OTBS) debido al precedente establecido por C (aunque los defensores de otros estilos han sido conocidos por usar un lenguaje igualmente fuerte). El cdigo fuente tanto del Unix [ 3 ] y Linux [ 4 ] kernels estn escritas en este estilo. En este estilo, los constructos que permiten inserciones de nuevas lneas de cdigo son en lneas separadas, y construcciones que prohben inserciones son en una sola lnea. Este principio es amplificada por refuerzos cada caso, no puede, cuando, etc, incluyendo una lnea condicionales, de manera que la insercin de una nueva lnea de cdigo en cualquier lugar siempre es "seguro" (es decir, tal insercin no har que el flujo de ejecucin de acuerdo con el cdigo fuente de sangrado). Las ventajas de este estilo es que la llave de inicio no requiere una lnea adicional por s mismo, y la terminacin de lneas cors con la declaracin que conceptualmente pertenece. Uno de los costos de este estilo es que la abrazadera final de un bloque ocupa toda una lnea por s mismo, que puede resolverse parcialmente en bloques if / else y hacer / mientras que los bloques:

//. . . s i (x< 0) { p u t s(" n e g a t i v o "), n e g a t i v o(x); } m s {


en.wikipedia.org/wiki/Allman_style#Allman_style 3/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

p u t s(" n on e g a t i v o "); n on e g a t i v o s(x);

Aunque este estilo puede hacer que sea difcil para escanear cualquier cdigo fuente de la llave de apertura de un bloque, no suele ser el mismo llave de apertura que es interesante, sino ms bien la declaracin de control que presenta el bloque. Es fcil encontrar el principio de la secuencia mediante la localizacin de la primera lnea por encima de la llave de cierre con sangra para el mismo nivel. Mientras que Java se escribe a veces en otros estilos, un importante cuerpo de cdigo Java utiliza una variante menor de la K & R estilo en el que la llave de apertura se encuentra en la misma lnea que la declaracin de clase o mtodo, en gran parte debido a dom guas de estilo originales 's [ 5 ] [ 6 ] [ 7 ] utiliza el K & R variante, y como resultado de la mayor parte del cdigo fuente estndar de la API de Java est escrito en este estilo. Tambin es un estilo popular guin para ActionScript y JavaScript , as como el estilo de Allman . Cabe sealar que el Lenguaje de Programacin C no especifica explcitamente este estilo, a pesar de que es seguido consistentemente en todo el libro. De la nota del libro: La posicin de los apoyos es menos importante, aunque las personas tienen creencias apasionadas. Hemos elegido uno de los varios estilos populares. Elige un estilo que se adapte a usted, a continuacin, utilizar de forma coherente. Variante: Stroustrup Estilo Stroustrup es la adaptacin de Bjarne Stroustrup de K & R estilo de C + +, que se utiliza en sus libros, como Programacin: Principios y Prctica usando C + + y C + + lenguaje de programacin . [ 8 ] A diferencia de las variantes anteriores, Stroustrup no utiliza un "abrazaban ms". Por lo tanto, Stroustrup escribira [ 8 ]

s i (x< 0) { p u t s(" n e g a t i v o "), n e g a t i v o(x); } m s { p u t s(" n on e g a t i v o "); n on e g a t i v o s(x); }

Stroustrup extiende K & R del estilo para las clases, escribir la siguiente manera:

c l a s eV e c t o r{ p b l i c o: V e c t o r(i n ts) :e l e m{n u e v o m a t r i m o n i o[s]},s z{s} { } //c o n s t r u i ru nv e c d ed o b l eye lo p e r a d o r[](i n ti) { r e t o r n oe l e m[i]; } //A c c e s oe l e m e n t o :s u b i n tt a m a o() { r e t o r n os z; } p r i v a d a: d o b l ee l e m[l o w a s t], //p u n t e r oal o se l e m e n t o s i n ts z; //e ln m e r od ee l e m e n t o s };

en.wikipedia.org/wiki/Allman_style#Allman_style

4/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

Tenga en cuenta que BS no sangrar la etiqueta p b l i c a :y p r i v a d a :. Tambin tenga en cuenta que en el estilo de BS, a pesar de que la llave de apertura de funciones comienza en una nueva lnea, la llave de apertura de clases est en la misma lnea que el nombre de la clase. Tambin tenga en cuenta que Stroustrup est bien con la escritura de funciones cortas en una sola lnea. Stroustrup estilo es un estilo de sangra llamada disponible en el editor Emacs .

Estilo Allman
El estilo Allman lleva el nombre de Eric Allman . Se ha referido incorrectamente como "estilo ANSI" [ 9 ] , supuestamente para su uso en los documentos que describen el ANSI C estndar (posteriormente adoptado como el ISO C estndar internacional), aunque en realidad esos documentos usan K & R estilo. [ 10 ] Se Tambin a veces se conoce como "estilo BSD", ya Allman escribi muchas de las utilidades de BSD Unix (aunque esto no debe confundirse con los diferentes "KNF estilo BSD", vase ms adelante). Este estilo pone la llave asociada con una instruccin de control en la lnea siguiente, con sangra para el mismo nivel que la instruccin de control. Las declaraciones dentro de las llaves se sangran al siguiente nivel.

m i e n t r a sq u e (x= =y) { a l g o(); s o m e t h i n g e l s e(); } f i n a l t h i n g();

Este estilo es similar a la sangra estndar utilizado por el lenguaje de programacin Pascal y Transact-SQL , donde los refuerzos son equivalentes a las c o m e n z a ry t e r m i n a rpalabras clave. Las ventajas de este estilo es que el cdigo sangrado es claramente puesta aparte de la declaracin que contenga las lneas que son casi en su totalidad los espacios en blanco , lo que mejora la legibilidad, y las lneas llave de cierre en la misma columna que la llave de apertura, lo que hace que sea fcil encontrar apoyos juego . Adems, el estilo de bloqueo delimita el bloque actual de cdigo desde la instruccin de control asociado a s mismo. Comentando a cabo la instruccin de control, la eliminacin de la instruccin de control por completo, refactorizacin, o la eliminacin del bloque de cdigo es menos probable que introducir errores de sintaxis debido colgando o falta soportes. Por ejemplo, la siguiente es todava sintcticamente correcta:

//W h i l e( x= =y ) { a l g o(); s o m e t h i n g e l s e(); }

Como es la siguiente:

//F o r( i n ti=0 ;i< x ,i++ )


en.wikipedia.org/wiki/Allman_style#Allman_style 5/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

//w h i l e( x= =y ) s i (x= =y) { a l g o(); s o m e t h i n g e l s e(); }

An as, con la compilacin condicional:

c a r b nd el e ac; #i f d e fH A S _ G E T C H m i e n t r a sq u e ((c= g e t c h()) = !E O F) #e l s e m i e n t r a sq u e ((c= g e t c h a r()) = !E O F) #e n d i f { h a c e r _ a l g o(c); }

BSD estilo KNF


Tambin conocido como Kernel forma normal , esto es actualmente la forma de la mayor parte del cdigo utilizado en la Berkeley Software Distribution sistemas operativos. Aunque en su mayora destinados al cdigo del kernel, que es ampliamente utilizado tanto en espacio de usuario de cdigo. Es esencialmente una variante bien documentada de K & R del estilo que se utiliza en los laboratorios de Bell Versin 6 y 7 de UNIX cdigo fuente. [ cita requerida ] El tabulador de disco (ts en vi ) se mantiene a 8 columnas, mientras que un tabulador suave se define a menudo como un ayudante, as (sw en vi), y se fij en 4. Los tabuladores duros se utilizan para sangrar los bloques de cdigo, mientras que un tabulador blando (4 espacios) adicional de guin se utiliza para todas las lneas continuas que deben ser divididos en varias lneas. Por otra parte, las llamadas a funciones no utilizan un espacio antes del parntesis, a pesar de las declaraciones nativos del lenguaje C, como s i, m i e n t r a s, n o, c a m b i a ry v o l v e rhacer (en el caso en que r e g r e s ose utiliza con parntesis). Las funciones que se declaran sin variables locales en su bloque de nivel superior tambin deben dejar una lnea en blanco despus de su bloque de llave de apertura. Siguen algunos ejemplos:

m i e n t r a sq u e (x= =y) { a l g o(); s o m e t h i n g e l s e(); } f i n a l t h i n g();

!e r r o r");I re r r a r;}}

en.wikipedia.org/wiki/Allman_style#Allman_style

6/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

e s t t i c aJ S B o o l p g r e s u l t _ c o n s t r u c t o r(J S C o n t e x t*c x,J S O b j e c t*o b j,u i n t Na r g c, j s v a l*a r g v,j s v a l*r v a l) { Q U E U E _ E X C E P T I O N(" c l a s eP G r e s u l tn oe sf c i ld ec r e a ri n s t a n c i a s "); } r e t o r n o (J S _ F A L S E);

Whitesmiths estilo
El estilo Whitesmiths, tambin llamado estilo Wishart en menor medida, es menos comn hoy en da que los cuatro anteriores. Originalmente fue utilizado en la documentacin para el primer comercial compilador de C, el compilador Whitesmiths . Tambin fue popular en los primeros das de Windows, ya que fue utilizado en tres libros influyentes de Windows de programacin, Gua del programador a Windows por Durant , Carlson y Yao , de programacin de Windows por Petzold y Windows 3.0 Tcnicas de Programacin de energa por Norton y Yao . Symbian Fundacin sigue defendiendo esto como el estilo refuerzo recomendada para el sistema operativo Symbian C + + aplicaciones de telefona mvil. [ cita requerida ] Este estilo pone la llave asociada a una sentencia de control en la lnea siguiente, con sangra. Las declaraciones dentro de las llaves se sangran al mismo nivel que los aparatos de ortodoncia.

m i e n t r a sq u e (x= =y) { a l g o(); s o m e t h i n g e l s e(); } f i n a l t h i n g();

Las ventajas de este estilo son similares a los del estilo Allman en bloques que se exponen claramente aparte de las instrucciones de control. Sin embargo, con Whitesmiths estilo, el bloque sigue conectado visualmente con su declaracin de control en lugar de mirar como un bloque sin relacin de cdigo rodeada por espacios en blanco. Otra ventaja es que la alineacin de los tirantes con el bloque hace hincapi en el hecho de que todo el bloque es conceptualmente (as como mediante programacin) una instruccin compuesta nica. Por otra parte, la sangra de las llaves hace hincapi en que estn subordinados a la cuenta de control. Una desventaja sugerido de este estilo es que la llave de terminar las lneas ya no se asocia con la declaracin que conceptualmente pertenece. Sin embargo, la llave de cierre pertenece a la llave de apertura y no a la sentencia de control.

en.wikipedia.org/wiki/Allman_style#Allman_style

7/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

Adems, este estilo arriostramiento muestra el flujo lgico del cdigo mejor, en el que las declaraciones realizadas en la secuencia estn en el mismo nivel de sangra, y los estados que dependen de otros estados se inserta debajo de ellos. (Esta es la interpretacin de las llaves como marcadores begin-block/end-block, y as comenzar de bloque debe tener una sangra bajo la declaracin de control de su ejecucin). Un ejemplo:

!e r r o r");I re r r a r;}

Sin embargo, si se adopta la regla de estilo que se le proporcionarn los apoyos a todos los niveles de 'alcance', entonces el cdigo anterior se podra escribir para reemplazar el 'else if' con un separado "si" en el mbito de un acordonada claramente parte 'ms' de la instruccin.

!e r r o r");I re r r a r;}}

Siguiendo la estrategia se muestra arriba, algunos argumentan que el cdigo est inherentemente ms fcil de leer, sin embargo, surgen problemas en la lectura segn se aaden ms condiciones, que se muestra en este pseudo-cdigo (aunque por lo general en este caso, una declaracin interruptor sera suficiente)

m s

{ s i (c o s ae sv e r d a d) { H a c e rc o s a s } m s { s i (o t r ac o s ae sv e r d a d) { H a c e ro t r a sc o s a s } m s { s i (c o s a st o d a v an oe sv e r d a d) {
8/15

en.wikipedia.org/wiki/Allman_style#Allman_style

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

H a g aa nm so t r a sc o s a s }

Estilo de GNU
Al igual que los Allman estilos y Whitesmiths, GNU estilo pone frenos en una lnea por s mismos, con una sangra de 2 espacios, excepto al abrir una definicin de funcin, en la que no se aplica sangra. [ 11 ] En cualquier caso, el cdigo contenido se sangra por la 2 espacios de los aparatos de ortodoncia. Popularizado por Richard Stallman , el diseo puede ser influenciada por su pasado de escribir Lisp cdigo. [ 11 ] En Lisp el equivalente a un bloque (un progn) es una entidad de datos de primera clase y dndole su propio nivel de guin ayuda a poner de relieve que, mientras que en un bloque C es la sintaxis. Aunque no directamente relacionado con la sangra, estilo GNU codificacin tambin incluye un espacio antes de la lista entre corchetes de argumentos a una funcin.

e s t t i c a c a r a c t e r e s * c o n c a t(C h a r *s 1, c a r a c t e r e s *s 2) { m i e n t r a sq u e (x= =y) { a l g o(); s o m e t h i n g e l s e(); } f i n a l t h i n g(); }

[ 11 ]

Este estilo combina las ventajas de Allman y Whitesmiths, eliminando as la posible Whitesmiths desventaja de los aparatos no permanente fuera de la cuadra. Una desventaja es que la llave de poner fin a las lneas ya no se alinea con el comunicado que conceptualmente pertenece a. Los Estndares de Codificacin GNU recomiendan este estilo, y casi todos los mantenedores de GNU proyecto de software lo utilizan. [ cita requerida ] El GNU Emacs editor de texto y los sistemas GNU guin comando cifrar formatear segn este estilo de forma predeterminada. Aquellos que no usan GNU Emacs o editores igualmente extensibles / personalizable, pueden encontrar que la configuracin del sangrado automtico de su editor son intiles para este estilo. Sin embargo, muchos editores de morosos con el estilo de KNF lidiar bien con el estilo de GNU cuando la anchura est ajustada a 2 espacios, del mismo modo, GNU Emacs adapta bien a KNF estilo simplemente ajustando el ancho de pestaa para 8 plazas. En ambos casos, cambio de formato automtico destruir el espacio original, pero sangra de lnea automtico funcionar correctamente.

Estilo Horstmann
La edicin 1997 de Conceptos Informtica con C + + Esencial de Cay S. Horstmann adapta Allman colocando la primera declaracin de un bloque en la misma lnea que la llave de apertura.

en.wikipedia.org/wiki/Allman_style#Allman_style

9/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

w h i l e( x= =y ) { s o m e t h i n g ( ) ; s o m e t h i n g e l s e ( ) ; / / . . . i f( x<0 ) { p r i n t f ( " N e g a t i v e " ) ; n e g a t i v e ( x ) ; } e l s e { p r i n t f ( " N o n n e g a t i v e " ) ; n o n n e g a t i v e ( x ) ; } } f i n a l t h i n g ( ) ;

Este estilo combina las ventajas de Allman , manteniendo la alineacin vertical de los apoyos para facilitar la lectura y la fcil identificacin de los bloques, con el consiguiente ahorro de una lnea del estilo de K & R. Sin embargo, la edicin de 2003 ahora utiliza el estilo Allman partes. [1] (http://www.horstmann.com/bigcpp/styleguide.html)

Estilo Pico
El estilo utilizado ms comnmente en el lenguaje de programacin de Pico por sus diseadores es diferente de los estilos mencionados. La falta de sentencias de retorno y el hecho de que el punto y coma se utilizan como separadores en Pico declaracin, en lugar de terminadores, conduce a la siguiente sintaxis:
c o s a s( n ) : { X :3*n ; y :h a c e r T a r e a( x ) ; y+x }

Las ventajas y desventajas son similares a los de ahorro de espacio en pantalla con K & R estilo. Una ventaja adicional es que el inicio y el cierre de los apoyos son consistentes en su aplicacin (ambos comparten el espacio con una lnea de cdigo), a diferencia de K & R estilo donde uno cors comparte espacio con una lnea de cdigo y una llave tiene una lnea para s mismo.

Estilo Banner
El estilo de la bandera [ cita requerida ] puede hacer exploracin visual ms fcil para algunos, ya que los "jefes" de cualquier bloque son lo nico extented a ese nivel (la teora de que el mando de cierre del bloque anterior interfiere con la cabecera de la prxima bloquear en el K & R y estilos Allman). En este estilo, que es Whitesmiths como K & R es Allman, el control de cierre se sangra como el ltimo elemento de la lista (y por lo tanto pierde relevancia adecuada).

f u n c t i o n 1() { q u c o s a s h a c e rm sc o s a s } f u n c t i o n 2() { e t c }

o, en un lenguaje de marcas ...


en.wikipedia.org/wiki/Allman_style#Allman_style 10/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

<t a b l a> <t r> <t d>u nm o n t nd ec o s a s. . . m sc o s a s </t d> <t d>a l t e r n a t i v ap a r al n e a sc o r t a s</t d> <t d>e t c</t d> </t r> </m e s a> <t a b l a> <t r>. . .e t c </m e s a>

Estilo Lisp
Un programador puede incluso ir tan lejos como para insertar parntesis de cierre en la ltima lnea de un bloque. Este estilo hace indentacin la nica manera de distinguir los bloques de cdigo, pero tiene la ventaja de que no contiene lneas poco informativas. Esto podra ser llamado fcilmente el estilo de Lisp (porque este estilo es muy comn en el cdigo Lisp) o el estilo de Python (Python no tiene corchetes, pero el diseo es muy similar, como lo demuestran los dos bloques de cdigo siguientes). [ cita requerida ]

//E nC p a r a (i= 0;i< 1 0;i++) { s i (i% 2 = = 0) { d o S o m e t h i n g(i); } m s { H a c e r O t r a C o s a(i); } }

#E nP y t h o n p a r aie ne l r a n g o(1 0): s ii %2 = = 0: d o S o m e t h i n g(i) o t r ac o s a: H a c e r O t r a C o s a(i)

; ;E nL i s p (d o t i m e s (i1 0) (s i (e v e n pi) (h a c e r a l g oi) (h a c e r a l g o e l s ei)))

Estilo Ratliff
en.wikipedia.org/wiki/Allman_style#Allman_style 11/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

En el libro, "Los programadores en el trabajo", [ 12 ] C. Wayne Ratliff discuti con el estilo de abajo. El estilo comienza igual 1TBS pero luego las lneas llave de cierre con la muesca del bloque anidado. Ratliff fue el programador original detrs de la popular dBase-II-III y dBase lenguajes de cuarta generacin. Indic que originalmente fue documentado en el material de Digital Research Inc .

//E nC p a r a (i= 0;i< 1 0;i++) { s i (i% 2 = = 0) { d o S o m e t h i n g(i); } m s { H a c e r O t r a C o s a(i); } }

Estilo legibilidad de control compacto


Este estilo hace que sea fcil de hojear el borde izquierdo del cdigo de instrucciones de control (mientras que estilos como 1TBS hacen afirmaciones como "cosa" ms difcil de ver porque son despus de un soporte final de la misma lnea). Sin embargo se mantiene el cdigo ms compacto que estilos como el estilo Allman, poniendo entre parntesis de apertura en el final de las lneas (a diferencia de en sus propias lneas).

//E nJ a v a S c r i p t ,s i (x= =y) { d o S o m e t h i n g A(); d o S o m e t h i n g B(); } m s { d o S o m e t h i n g C(); d o S o m e t h i n g D(); }

Otras consideraciones
La prdida de control de los bloques
En ciertas situaciones, existe el riesgo de perder la pista de los lmites de bloque. Esto se ve a menudo en grandes secciones de cdigo que contienen muchas sentencias compuestas anidadas a muchos niveles de sangra. Cuando los rollos programador para el fondo de un enorme conjunto de instrucciones anidadas, puede haber perdido el rastro de los cuales las sentencias de control van a donde. Sin embargo, demasiado largo cdigo podra tener otros problemas, como ser demasiado complejo , y el programador debe considerar si la refactorizacin del cdigo ayudara en el largo plazo. Los programadores que se basan en el recuento de las llaves de apertura pueden tener dificultades con los estilos de sangrado, tales como K & R, en la llave de inicio no se separa visualmente de su sentencia de control . Los programadores que dependen ms de sangra ganar ms de los estilos que estn verticalmente compacta, como K & R, ya que los bloques son ms cortos.

en.wikipedia.org/wiki/Allman_style#Allman_style

12/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

Para evitar la prdida de pista de los estados de control, tales como para , uno puede utilizar un gran guin, tal como una pestaa duro 8-unidad de ancho, a lo largo de la ruptura con funciones grandes en funciones ms pequeas y ms legible. Linux se hace de esta manera, as como con el estilo de K & R. En los editores de texto de la vi familia, un mtodo para el seguimiento de lmites de los bloques es posicionar el cursor sobre una de las llaves, y pulsando la tecla "%". Vi o vim entonces saltar el cursor hasta la llave de oposicin. Dado que la clave del cursor de texto 'next' (es decir, la tecla 'n') retuvo informacin direccional de posicionamiento (si la tecla "arriba" o "abajo" se ha pulsado previamente), la macro de puntos (la tecla '.') podra entonces ser utilizados para colocar el cursor de texto en el siguiente llave, [ 13 ] dado un estilo de codificacin adecuado. Alternativamente, la inspeccin de los lmites de los bloques utilizando la tecla "%" se puede utilizar para hacer cumplir un estndar de codificacin. Otra forma es utilizar comentarios en lnea aadido despus de la llave de cierre:

p o r (i n ti= 0;i<t o t a l e s;i++) { f o o(b a r); } //f o r( i )

s i (x< 0) { b a r(f o o); } //i f( x< 0 )

Sin embargo, el mantenimiento de cdigo duplicado en mltiples ubicaciones es la principal desventaja de este mtodo. Otra solucin se implementa en un editor de plegado , que permite que el desarrollador ocultar o mostrar bloques de cdigo por su nivel de sangra o por su estructura sentencia compuesta. Muchos editores tambin destacan entre parntesis coincidentes o los apoyos cuando el cursor se coloca al lado de uno.

Declaracin de la insercin
K & R estilo impide que otro error comn que sufren cuando se utiliza el estndar UNIX editor de lnea, ed . Una declaracin errneamente insertada entre la instruccin de control y la llave de apertura del bloque de bucle se convierte el cuerpo del bucle en un solo viaje.

p o r (i n ti= 0;i<t o t a l e s;i++) w h o o p s(b a r); /*r e p e t i d a sv e c e se nt o t a l ,c o nie n t r e0( e nt o t a l 1 )*/ { o n l y _ o n c e(); *P r o g r a m a d o r/o b j e t oq u es et r a t ad eh a c et i e m p ot o t a l*/ } //f o r( i )< -E s t ec o m e n t a r i oy an oe sv l i d o ,ye sm u ye n g a o s o !

K & R estilo evita este problema al mantener la estructura de control y la llave de apertura en la misma lnea.

en.wikipedia.org/wiki/Allman_style#Allman_style

13/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

Vase tambin
Notacin secundaria El resaltado de sintaxis

Referencias
1. ^ "Pestaas frente Espacios: Una Guerra Santa Eterna. (http://www.jwz.org/doc/tabs-vs-spaces.html) Jamie Zawinski 2000 2. ^ "Estndares de Codificacin de WordPress" (http://codex.wordpress.org/WordPress_Coding_Standards#Indentation) 3. ^ J. Leones (junio de 1977). "Unix sistema operativo de nivel de fuente Cdigo Six" (http://v6.cuzuco.com/v6.pdf) . Universidad de Nueva Gales del Sur. 4. ^ https://www.kernel.org/doc/Documentation/CodingStyle 5. ^ Reddy, Achut (2000-03-30). "Gua de Estilo Java Coding" (http://developers.sun.com/prodtech/cc/products/archive/whitepapers/java-style.pdf) . Sun Microsystems . Consultado el 2008-05-30 . 6. ^ "Cdigo convenios Java" (http://java.sun.com/docs/codeconv/CodeConventions.pdf) . Sun Microsystems. 1997-09-12 . Consultado el 2008-05-30 . 7. ^ "Convenciones de cdigo para el lenguaje de programacin Java" (http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html) . Sun Microsystems. 1997-03-20 . Consultado el 2008-05-30 . 8. ^ a b Bjarne Stroustrup (septiembre de 2010). "Gua de Estilo PPP" (http://www.stroustrup.com/Programming/PPP-style-rev3.pdf) . 9. ^ "estilo artstico" (http://astyle.sourceforge.net/astyle.html). Consultado el 2008-05-21 . 10. ^ "Fundamentos de la Norma Internacional de Lenguajes de programacin C (Revisin 2)" (http://www.openstd.org/jtc1/sc22/wg14/www/docs/n897.pdf). Consultado el 2010-11-06 . 11. ^ a b c "Cmo formatear el cdigo fuente" (http://www.gnu.org/prep/standards/html_node/Formatting.html) . Estndares de Codificacin GNU . 12. ^ Lammers, Susan (1986). Programadores en el trabajo . Microsoft Press. ISBN 0-914845-71-3 . 13. ^ Linda Lamb, Aprender el editor vi . O'Reilly

Enlaces externos
C Estilo: Normas y directrices: Definir los estndares de programacin para programadores C profesionales (http://syque.com/cstyle/index.htm) , Prentice Hall, ISBN 0-13-116898-3 / ISBN 978-013-116898-5 . (el texto completo est tambin en lnea) Straker, David (1992). Contextual sangra (http://milan.adamovsky.com/2010/08/contextual-indent.html) GNU Coding Normas (http://www.gnu.org/prep/standards/standards.html) Artculo Archivo de la jerga de guin estilo (http://www.catb.org/jargon/html/I/indent-style.html) Cdigo Formateadores Fuente (http://www.dmoz.org//Computers/Programming/Development_Tools/Source_Code_Formatters//) en el Open Directory Project Obtenido de " http://en.wikipedia.org/w/index.php?title=Indent_style&oldid=574167721 # Allman_style " Categoras : Guerras Software Las caractersticas del editor de texto El cdigo fuente Esta pgina fue modificada por ltima vez el 23 de septiembre 2013, a 11:32. El texto est disponible bajo la Licencia Commons Attribution-ShareAlike creativa ; clusulas adicionales
en.wikipedia.org/wiki/Allman_style#Allman_style 14/15

13/10/13

Sangra estilo - Wikipedia, la enciclopedia libre

pueden aplicar. Al usar este sitio, usted acepta los Trminos de Uso y Poltica de Privacidad. Wikipedia es una marca registrada de la Wikimedia Foundation, Inc. , una organizacin sin fines de lucro.

en.wikipedia.org/wiki/Allman_style#Allman_style

15/15

You might also like