Sangría estilo - Wikipedia, la enciclopedia libre

15
13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre en.wikipedia.org/wiki/Allman_style#Allman_style 1/15 Sangría estilo De Wikipedia, la enciclopedia libre (Redirigido desde estilo Allman ) En la programación de computadoras , un guión estilo es una convención que rige la sangría de los bloques de código para transmitir la estructura del programa. En este artículo se aborda en gran medida el lenguaje de programación C y sus descendientes, pero puede ser (y frecuentemente lo es) se aplica a la mayoría de los otros lenguajes de programación (especialmente los de la familia de corchete ). Sangría estilo es sólo un aspecto de estilo de programación . La sangría no es un requisito de la mayoría de los lenguajes de programación, donde se usa como notación secundaria . Por el contrario, los programadores de guión para transmitir mejor la estructura de sus programas a los lectores humanos. En particular, la sangría se utiliza para mostrar la relación entre el flujo de control de construcciones tales como las condiciones o bucles y código contenidos dentro y fuera de ellas. Sin embargo, algunos lenguajes de programación (tales como Python y Occam ) utilizan la indentación para determinar la estructura en lugar de utilizar llaves o palabras clave. Tenga en cuenta que este artículo utiliza " soportes "para referirse a lo que se conoce como" paréntesis "en Inglés Americano, y" llaves "para referirse a lo que se conoce como" llaves "en Inglés Americano. Contenido 1 Tabs, espacios, y el tamaño del guión 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 pérdida de control de los bloques 4.2 Declaración de inserción 5 Véase también 6 Referencias 7 Enlaces externos Tabs, espacios, y el tamaño del guión

Transcript of Sangría estilo - Wikipedia, la enciclopedia libre

Page 1: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Sangría estiloDe Wikipedia, la enciclopedia libre

(Redirigido desde estilo Allman )

En la programación de computadoras , un guión estilo es una convención que rige la sangría de los bloques decódigo para transmitir la estructura del programa. En este artículo se aborda en gran medida el lenguaje deprogramación C y sus descendientes, pero puede ser (y frecuentemente lo es) se aplica a la mayoría de losotros lenguajes de programación (especialmente los de la familia de corchete ). Sangría estilo es sólo un aspectode estilo de programación .

La sangría no es un requisito de la mayoría de los lenguajes de programación, donde se usa como notaciónsecundaria . Por el contrario, los programadores de guión para transmitir mejor la estructura de sus programas alos lectores humanos. En particular, la sangría se utiliza para mostrar la relación entre el flujo de control deconstrucciones tales como las condiciones o bucles y código contenidos dentro y fuera de ellas. Sin embargo,algunos lenguajes de programación (tales como Python y Occam ) utilizan la indentación para determinar laestructura en lugar de utilizar llaves o palabras clave.

Tenga en cuenta que este artículo utiliza " soportes "para referirse a lo que se conoce como" paréntesis "enInglés Americano, y" llaves "para referirse a lo que se conoce como" llaves "en Inglés Americano.

Contenido

1 Tabs, espacios, y el tamaño del guión

2 Herramientas

3 Estilos3.1 K & R estilo

3.1.1 Variante: 1TBS

3.1.2 Variante: Stroustrup

3.2 estilo Allman3.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 control4 Otras consideraciones

4.1 La pérdida de control de los bloques

4.2 Declaración de inserción

5 Véase también

6 Referencias

7 Enlaces externos

Tabs, espacios, y el tamaño del guión

Page 2: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

El tamaño de la sangría es generalmente independiente del estilo. Muchos de estos programas utilizan fichacaracteres para el sangrado, para simplificar y ahorrar en el tamaño del archivo de origen. Unix editoresgeneralmente ven las pestañas como equivalente a ocho caracteres, mientras que Macintosh y MicrosoftWindows ambientes que se establece en cuatro, creando confusión cuando el código fue trasladado hacia atrásy sucesivamente. Editores de programación modernos son ahora a menudo capaces de establecer los tamañosde sangría arbitraria, y se inserte la combinación adecuada de espacios y tabulaciones. Para Rubí , muchoslenguajes de programación de shell , y algunas formas de HTML formateo, dos plazas por cada nivel de sangría

se utiliza generalmente. [ cita requerida ]

El tema del uso de pestañas 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 estándares de codificación, [ 2 ]

creer lo contrario, que las pestañas duros aumentan la funcionalidad multiplataforma.

Herramientas

Hay una serie de programas de ordenador que automáticamente correcta guión estilos (de acuerdo con laspreferencias del programa de autor), así como la longitud de guiones asociados con pestañas. Un famoso entreellos es guión , un programa incluido con muchos Unix-como sistemas operativos .

En Emacs, varios comandos están disponibles para corregir automáticamente los problemas de sangrado,incluyendo sólo Tab golpe en una línea determinada (en la configuración por defecto). "Mx indent-región" sepuede utilizar para guión adecuadamente grandes secciones de código.

Elastic tabuladores es un estilo de tabulación que requiere el apoyo del editor de texto, donde se guardan losbloques enteros de texto alineado automáticamente cuando la longitud de una línea 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 programación C, se utiliza comúnmente en C. También se utiliza para C + + , C # y otros lenguajes de programación de llave .

Al adherirse a K & R, cada función tiene su llave de apertura en la línea siguiente en el mismo nivel de sangríacomo su cabecera, las declaraciones prospectivas dentro de las llaves se sangría, y la llave de cierre al final estáen el mismo nivel de sangría como la cabecera de la función en una línea propia. Los bloques dentro de unafunción, sin embargo, tienen sus llaves de apertura en la misma línea que sus sentencias de control respectivos,llaves de cierre se mantienen en una línea 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 aplicación puede omitir lasllaves. El lenguaje de programación C se refiere a este suelo tan fértil para los errores (errores deprogramación lógica) y lo desalienta.

int principal ( int argc , caracteres * argv [ ] ) { ... mientras que ( x == y ) { algo ( ) ;

Page 3: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

somethingelse ( ) ; si ( some_error ) { / * las llaves en torno a este bloque de código podrían omitirse * / do_correct ( ) ; } demás continue_as_usual ( ) ; } finalthing ( ) ; ...}

En versiones anteriores del lenguaje de programación C, las funciones, sin embargo, se preparaban conclaridad. La apertura de llave de función de una función se colocó en la línea siguiente después de la sección dedeclaración y, al mismo nivel de sangría como la declaración (cabecera de la función). Esto se debe a que en elidioma original C, tipos de argumentos necesarios para ser declarado en la línea posterior (es decir, justodespués de la cabecera de la función), mientras que cuando no hay argumentos eran necesarias, la llave deapertura no aparece en la misma línea con la declaración de la función. La llave de apertura para la declaraciónde funciones fue una excepción a la regla básica que indica que actualmente los estados y bloques de función

están encerrados en las llaves de función. [ cita requerida ]

/ * Original estilo pre-ISO C sin prototipos de funciones * / int principal ( argc , argv ) int argc ; caracteres * argv [ ] , { ...}

Variante: 1TBS

Los defensores de este estilo a veces se refieren a ella como "el estilo de corsé verdadero" (abreviado como1TBS o OTBS) debido al precedente establecido por C (aunque los defensores de otros estilos han sido

conocidos por usar un lenguaje igualmente fuerte). El código fuente tanto del Unix [ 3 ] y Linux [ 4 ] kernels estánescritas en este estilo.

En este estilo, los constructos que permiten inserciones de nuevas líneas de código son en líneas separadas, yconstrucciones que prohíben inserciones son en una sola línea. Este principio es amplificada por refuerzos cadacaso, no puede, cuando, etc, incluyendo una línea condicionales, de manera que la inserción de una nueva líneade código en cualquier lugar siempre es "seguro" (es decir, tal inserción no hará que el flujo de ejecución deacuerdo con el código fuente de sangrado).

Las ventajas de este estilo es que la llave de inicio no requiere una línea adicional por sí mismo, y la terminaciónde líneas corsé con la declaración que conceptualmente pertenece. Uno de los costos de este estilo es que laabrazadera final de un bloque ocupa toda una línea por sí mismo, que puede resolverse parcialmente en bloquesif / else y hacer / mientras que los bloques:

/ / ... si ( x < 0 ) { puts ( "negativo" ) , negativo ( x ) ; } más {

Page 4: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

puts ( "no negativo" ) ; no negativos ( x ) ; }

Aunque este estilo puede hacer que sea difícil para escanear cualquier código fuente de la llave de apertura deun bloque, no suele ser el mismo llave de apertura que es interesante, sino más bien la declaración de controlque presenta el bloque. Es fácil encontrar el principio de la secuencia mediante la localización de la primera líneapor encima de la llave de cierre con sangría para el mismo nivel.

Mientras que Java se escribe a veces en otros estilos, un importante cuerpo de código Java utiliza una variantemenor de la K & R estilo en el que la llave de apertura se encuentra en la misma línea que la declaración de

clase o método, en gran parte debido a dom guías de estilo originales 's [ 5 ] [ 6 ] [ 7 ] utiliza el K & R variante, ycomo resultado de la mayor parte del código fuente estándar de la API de Java está escrito en este estilo.También es un estilo popular guión para ActionScript y JavaScript , así como el estilo de Allman .

Cabe señalar que el Lenguaje de Programación C no especifica explícitamente este estilo, a pesar de que esseguido consistentemente en todo el libro. De la nota del libro:

La posición de los apoyos es menos importante, aunque las personas tienen creenciasapasionadas. Hemos elegido uno de los varios estilos populares. Elige un estilo que se adapte austed, a continuación, utilizar de forma coherente.

Variante: Stroustrup

Estilo Stroustrup es la adaptación de Bjarne Stroustrup de K & R estilo de C + +, que se utiliza en sus libros,

como Programación: Principios y Práctica usando C + + y C + + lenguaje de programación . [ 8 ]

A diferencia de las variantes anteriores, Stroustrup no utiliza un "abrazaban más". Por lo tanto, Stroustrup

escribiría [ 8 ]

si ( x < 0 ) { puts ( "negativo" ) , negativo ( x ) ; } más { puts ( "no negativo" ) ; no negativos ( x ) ; }

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

clase Vector { público : Vector ( int s ) : elem { nuevo matrimonio [ s ] } , sz { s } { } / / construir un vector de doble y el operador [ ] ( int i ) { retorno elem [ i ] ; } / / Acceso elemento: subíndice int tamaño ( ) { retorno sz ; } privada : doble elem [ lowast ] , / / puntero a los elementos int sz ; / / el número de elementos } ;

Page 5: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Tenga en cuenta que BS no sangrar la etiqueta pública: y privada: . También tenga en cuenta que en

el estilo de BS, a pesar de que la llave de apertura de funciones comienza en una nueva línea, la llave deapertura de clases está en la misma línea que el nombre de la clase.

También tenga en cuenta que Stroustrup está bien con la escritura de funciones cortas en una sola línea.Stroustrup estilo es un estilo de sangría 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 estándar (posteriormente adoptado

como el ISO C estándar internacional), aunque en realidad esos documentos usan K & R estilo. [ 10 ] SeTambién 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", véase más adelante).

Este estilo pone la llave asociada con una instrucción de control en la línea siguiente, con sangría para el mismonivel que la instrucción de control. Las declaraciones dentro de las llaves se sangran al siguiente nivel.

mientras que ( x == y ) { algo ( ) ; somethingelse ( ) ; } finalthing ( ) ;

Este estilo es similar a la sangría estándar utilizado por el lenguaje de programación Pascal y Transact-SQL ,donde los refuerzos son equivalentes a las comenzar y terminar palabras clave.

Las ventajas de este estilo es que el código sangrado es claramente puesta aparte de la declaración quecontenga las líneas que son casi en su totalidad los espacios en blanco , lo que mejora la legibilidad, y las líneasllave de cierre en la misma columna que la llave de apertura, lo que hace que sea fácil encontrar apoyos juego .Además, el estilo de bloqueo delimita el bloque actual de código desde la instrucción de control asociado a símismo. Comentando a cabo la instrucción de control, la eliminación de la instrucción de control por completo,refactorización, o la eliminación del bloque de código es menos probable que introducir errores de sintaxisdebido colgando o falta soportes.

Por ejemplo, la siguiente es todavía sintácticamente correcta:

/ / While (x == y) { algo ( ) ; somethingelse ( ) ; }

Como es la siguiente:

/ / For (int i = 0; i <x, i + +)

Page 6: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

/ / while (x == y) si ( x == y ) { algo ( ) ; somethingelse ( ) ; }

Aún así, con la compilación condicional:

carbón de leña c ; # ifdef HAS_GETCH mientras que ( ( c = getch ( ) ) =! EOF ) # else mientras que ( ( c = getchar ( ) ) =! EOF ) # endif { hacer_algo ( c ) ; }

BSD estilo KNF

También conocido como Kernel forma normal , esto es actualmente la forma de la mayor parte del códigoutilizado en la Berkeley Software Distribution sistemas operativos. Aunque en su mayoría destinados al códigodel kernel, que es ampliamente utilizado tanto en espacio de usuario de código. Es esencialmente una variantebien documentada de K & R del estilo que se utiliza en los laboratorios de Bell Versión 6 y 7 de UNIX código

fuente. [ cita requerida ]

El tabulador de disco (ts en vi ) se mantiene a 8 columnas, mientras que un tabulador suave se define a menudocomo un ayudante, así (sw en vi), y se fijó en 4. Los tabuladores duros se utilizan para sangrar los bloques decódigo, mientras que un tabulador blando (4 espacios) adicional de guión se utiliza para todas las líneascontinuas que deben ser divididos en varias líneas.

Por otra parte, las llamadas a funciones no utilizan un espacio antes del paréntesis, a pesar de las declaracionesnativos del lenguaje C, como si , mientras , no , cambiar y volver hacer (en el caso en que regreso se

utiliza con paréntesis). Las funciones que se declaran sin variables locales en su bloque de nivel superior tambiéndeben dejar una línea en blanco después de su bloque de llave de apertura.

Siguen algunos ejemplos:

mientras que ( x == y ) { algo ( ) ; somethingelse ( ) ; } finalthing ( ) ;

! error " ) ; Ir errar ; } }

Page 7: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

estática JSBoolpgresult_constructor ( JSContext * cx , JSObject * obj , uintN argc , jsval * argv , jsval * rval ) { QUEUE_EXCEPTION ( "clase PGresult no es fácil de crear instancias" ) ; retorno ( JS_FALSE ) ; }

Whitesmiths estilo

El estilo Whitesmiths, también llamado estilo Wishart en menor medida, es menos común hoy en día que loscuatro anteriores. Originalmente fue utilizado en la documentación para el primer comercial compilador de C, elcompilador Whitesmiths . También fue popular en los primeros días de Windows, ya que fue utilizado en treslibros influyentes de Windows de programación, Guía del programador a Windows por Durant , Carlson yYao , de programación de Windows por Petzold y Windows 3.0 Técnicas de Programación de energía porNorton y Yao . Symbian Fundación sigue defendiendo esto como el estilo refuerzo recomendada para el

sistema operativo Symbian C + + aplicaciones de telefonía móvil. [ cita requerida ]

Este estilo pone la llave asociada a una sentencia de control en la línea siguiente, con sangría. Las declaracionesdentro de las llaves se sangran al mismo nivel que los aparatos de ortodoncia.

mientras que ( x == y ) { algo ( ) ; somethingelse ( ) ; } finalthing ( ) ;

Las ventajas de este estilo son similares a los del estilo Allman en bloques que se exponen claramente aparte delas instrucciones de control. Sin embargo, con Whitesmiths estilo, el bloque sigue conectado visualmente con sudeclaración de control en lugar de mirar como un bloque sin relación de código rodeada por espacios enblanco. Otra ventaja es que la alineación de los tirantes con el bloque hace hincapié en el hecho de que todo elbloque es conceptualmente (así como mediante programación) una instrucción compuesta única. Por otra parte,la sangría de las llaves hace hincapié en que están subordinados a la cuenta de control.

Una desventaja sugerido de este estilo es que la llave de terminar las líneas ya no se asocia con la declaraciónque conceptualmente pertenece. Sin embargo, la llave de cierre pertenece a la llave de apertura y no a lasentencia de control.

Page 8: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Además, este estilo arriostramiento muestra el flujo lógico del código mejor, en el que las declaracionesrealizadas en la secuencia están en el mismo nivel de sangría, y los estados que dependen de otros estados seinserta debajo de ellos. (Esta es la interpretación de las llaves como marcadores begin-block/end-block, y asícomenzar de bloque debe tener una sangría bajo la declaración de control de su ejecución).

Un ejemplo:

! error " ) ; Ir errar ; }

Sin embargo, si se adopta la regla de estilo que se le proporcionarán los apoyos a todos los niveles de 'alcance',entonces el código anterior se podría escribir para reemplazar el 'else if' con un separado "si" en el ámbito de unacordonada claramente parte 'más' de la instrucción.

! error " ) ; Ir errar ; } }

Siguiendo la estrategia se muestra arriba, algunos argumentan que el código está inherentemente más fácil deleer, sin embargo, surgen problemas en la lectura según se añaden más condiciones, que se muestra en estepseudo-código (aunque por lo general en este caso, una declaración interruptor sería suficiente)

más { si ( cosa es verdad ) { Hacer cosas } más { si ( otra cosa es verdad ) { Hacer otras cosas } más { si ( cosas todavía no es verdad ) {

Page 9: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Haga aún más otras cosas } } } }

Estilo de GNU

Al igual que los Allman estilos y Whitesmiths, GNU estilo pone frenos en una línea por sí mismos, con una

sangría de 2 espacios, excepto al abrir una definición de función, en la que no se aplica sangría. [ 11 ] Encualquier caso, el código contenido se sangra por la 2 espacios de los aparatos de ortodoncia.

Popularizado por Richard Stallman , el diseño puede ser influenciada por su pasado de escribir Lisp código.[ 11 ] En Lisp el equivalente a un bloque (un progn) es una entidad de datos de primera clase y dándole supropio nivel de guión ayuda a poner de relieve que, mientras que en un bloque C es la sintaxis. Aunque nodirectamente relacionado con la sangría, estilo GNU codificación también incluye un espacio antes de la listaentre corchetes de argumentos a una función.

estática caracteres * concat ( Char * s1 , caracteres * s2 ) { mientras que ( x == y ) { algo ( ) ; somethingelse ( ) ; } finalthing ( ) ; }

[ 11 ]

Este estilo combina las ventajas de Allman y Whitesmiths, eliminando así la posible Whitesmiths desventaja delos aparatos no permanente fuera de la cuadra. Una desventaja es que la llave de poner fin a las líneas ya no sealinea con el comunicado que conceptualmente pertenece a.

Los Estándares de Codificación 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 guión comando cifrará formatear según este estilo de formapredeterminada. Aquellos que no usan GNU Emacs o editores igualmente extensibles / personalizable, puedenencontrar que la configuración del sangrado automático de su editor son inútiles 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 elancho de pestaña para 8 plazas. En ambos casos, cambio de formato automático destruirá el espacio original,pero sangría de línea automático funcionará correctamente.

Estilo Horstmann

La edición 1997 de Conceptos Informática con C + + Esencial de Cay S. Horstmann adapta Allmancolocando la primera declaración de un bloque en la misma línea que la llave de apertura.

Page 10: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

while (x == y){ something(); somethingelse(); //... if (x < 0) { printf("Negative"); negative(x); } else { printf("Non-negative"); nonnegative(x); }}finalthing();

Este estilo combina las ventajas de Allman , manteniendo la alineación vertical de los apoyos para facilitar lalectura y la fácil identificación de los bloques, con el consiguiente ahorro de una línea del estilo de K & R. Sinembargo, la edición de 2003 ahora utiliza el estilo Allman partes. [1](http://www.horstmann.com/bigcpp/styleguide.html)

Estilo Pico

El estilo utilizado más comúnmente en el lenguaje de programación de Pico por sus diseñadores es diferente delos estilos mencionados. La falta de sentencias de retorno y el hecho de que el punto y coma se utilizan comoseparadores en Pico declaración, en lugar de terminadores, conduce a la siguiente sintaxis:

cosas (n):

{X: 3 * n;

y: hacerTarea (x);

y + x}

Las ventajas y desventajas son similares a los de ahorro de espacio en pantalla con K & R estilo. Una ventajaadicional es que el inicio y el cierre de los apoyos son consistentes en su aplicación (ambos comparten elespacio con una línea de código), a diferencia de K & R estilo donde uno corsé comparte espacio con una líneade código y una llave tiene una línea para sí mismo.

Estilo Banner

El estilo de la bandera [ cita requerida ] puede hacer exploración visual más fácil para algunos, ya que los "jefes"de cualquier bloque son lo único extented a ese nivel (la teoría de que el mando de cierre del bloque anteriorinterfiere con la cabecera de la próxima bloquear en el K & R y estilos Allman). En este estilo, que esWhitesmiths como K & R es Allman, el control de cierre se sangra como el último elemento de la lista (y por lotanto pierde relevancia adecuada).

function1 ( ) { qué cosas hacer más cosas } function2 ( ) { etc }

o, en un lenguaje de marcas ...

Page 11: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

< tabla > < tr > < td > un montón de cosas ... más cosas < / td > < td > alternativa para líneas cortas < / td > < td > etc < / td > < / tr > < / mesa > < tabla > < tr > ... etc < / mesa >

Estilo Lisp

Un programador puede incluso ir tan lejos como para insertar paréntesis de cierre en la última línea de unbloque. Este estilo hace indentación la única manera de distinguir los bloques de código, pero tiene la ventaja deque no contiene líneas poco informativas. Esto podría ser llamado fácilmente el estilo de Lisp (porque este estiloes muy común en el código Lisp) o el estilo de Python (Python no tiene corchetes, pero el diseño es muy similar,

como lo demuestran los dos bloques de código siguientes). [ cita requerida ]

/ / En C para ( i = 0 ; i < 10 ; i + + ) { si ( i % 2 == 0 ) { doSomething ( i ) ; } más { HacerOtraCosa ( i ) ; } }

# En Python para i en el rango ( 10 ) : si i% 2 == 0 : doSomething ( i ) otra cosa : HacerOtraCosa ( i )

;; En Lisp ( dotimes ( i 10 ) ( si ( evenp i ) ( hacer-algo i ) ( hacer-algo-else i ) ) )

Estilo Ratliff

Page 12: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

En el libro, "Los programadores en el trabajo", [ 12 ] C. Wayne Ratliff discutió con el estilo de abajo. El estilocomienza igual 1TBS pero luego las líneas llave de cierre con la muesca del bloque anidado. Ratliff fue elprogramador original detrás de la popular dBase-II-III y dBase lenguajes de cuarta generación. Indicó queoriginalmente fue documentado en el material de Digital Research Inc .

/ / En C para ( i = 0 ; i < 10 ; i + + ) { si ( i % 2 == 0 ) { doSomething ( i ) ; } más { HacerOtraCosa ( i ) ; } }

Estilo legibilidad de control compacto

Este estilo hace que sea fácil de hojear el borde izquierdo del código de instrucciones de control (mientras queestilos como 1TBS hacen afirmaciones como "cosa" más difícil de ver porque son después de un soporte finalde la misma línea). Sin embargo se mantiene el código más compacto que estilos como el estilo Allman,poniendo entre paréntesis de apertura en el final de las líneas (a diferencia de en sus propias líneas).

/ / En JavaScript , si ( x == y ) { doSomethingA ( ) ; doSomethingB ( ) ; } más { doSomethingC ( ) ; doSomethingD ( ) ; }

Otras consideraciones

La pérdida de control de los bloques

En ciertas situaciones, existe el riesgo de perder la pista de los límites de bloque. Esto se ve a menudo engrandes secciones de código que contienen muchas sentencias compuestas anidadas a muchos niveles desangría. Cuando los rollos programador para el fondo de un enorme conjunto de instrucciones anidadas, puedehaber perdido el rastro de los cuales las sentencias de control van a donde. Sin embargo, demasiado largocódigo podría tener otros problemas, como ser demasiado complejo , y el programador debe considerar si larefactorización del código ayudaría en el largo plazo.

Los programadores que se basan en el recuento de las llaves de apertura pueden tener dificultades con losestilos de sangrado, tales como K & R, en la llave de inicio no se separa visualmente de su sentencia de control. Los programadores que dependen más de sangría ganará más de los estilos que están verticalmente compacta,como K & R, ya que los bloques son más cortos.

Page 13: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Para evitar la pérdida de pista de los estados de control, tales como para , uno puede utilizar un gran guión, talcomo una pestaña duro 8-unidad de ancho, a lo largo de la ruptura con funciones grandes en funciones máspequeñas y más 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 método para el seguimiento de límites de los bloques es posicionar elcursor sobre una de las llaves, y pulsando la tecla "%". Vi o vim entonces saltar el cursor hasta la llave deoposición. Dado que la clave del cursor de texto 'next' (es decir, la tecla 'n') retuvo información direccional deposicionamiento (si la tecla "arriba" o "abajo" se ha pulsado previamente), la macro de puntos (la tecla '.')

podría entonces ser utilizados para colocar el cursor de texto en el siguiente llave, [ 13 ] dado un estilo decodificación adecuado. Alternativamente, la inspección de los límites de los bloques utilizando la tecla "%" sepuede utilizar para hacer cumplir un estándar de codificación.

Otra forma es utilizar comentarios en línea añadido después de la llave de cierre:

por ( int i = 0 ; i < totales ; i + + ) { foo ( bar ) ; } / / for (i)

si ( x < 0 ) { bar ( foo ) ; } / / if (x <0)

Sin embargo, el mantenimiento de código duplicado en múltiples ubicaciones es la principal desventaja de estemétodo.

Otra solución se implementa en un editor de plegado , que permite que el desarrollador ocultar o mostrarbloques de código por su nivel de sangría o por su estructura sentencia compuesta. Muchos editores tambiéndestacan entre paréntesis coincidentes o los apoyos cuando el cursor se coloca al lado de uno.

Declaración de la inserción

K & R estilo impide que otro error común que sufren cuando se utiliza el estándar UNIX editor de línea, ed .Una declaración erróneamente insertada entre la instrucción de control y la llave de apertura del bloque debucle se convierte el cuerpo del bucle en un solo viaje.

por ( int i = 0 ; i < totales ; i + + ) whoops ( bar ) ; / * repetidas veces en total, con i entre 0 (en total-1) * / { only_once ( ) ; * Programador / objeto que se trata de hace tiempo total * / } / / for (i) <- Este comentario ya no es válido, y es muy engañoso!

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

Page 14: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

Véase también

Notación secundaria

El resaltado de sintaxis

Referencias

1. ^ "Pestañas frente Espacios: Una Guerra Santa Eterna. (http://www.jwz.org/doc/tabs-vs-spaces.html) JamieZawinski 2000

2. ^ "Estándares de Codificación de WordPress"(http://codex.wordpress.org/WordPress_Coding_Standards#Indentation)

3. ^ J. Leones (junio de 1977). "Unix sistema operativo de nivel de fuente Código 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). "Guía de Estilo Java Coding"(http://developers.sun.com/prodtech/cc/products/archive/whitepapers/java-style.pdf) . Sun Microsystems .Consultado el 2008-05-30 .

6. ^ "Código convenios Java" (http://java.sun.com/docs/codeconv/CodeConventions.pdf) . Sun Microsystems.1997-09-12 . Consultado el 2008-05-30 .

7. ^ "Convenciones de código para el lenguaje de programación 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). "Guía de Estilo PPP"(http://www.stroustrup.com/Programming/PPP-style-rev3.pdf) .

9. ^ "estilo artístico" (http://astyle.sourceforge.net/astyle.html). Consultado el 2008-05-21 .

10. ^ "Fundamentos de la Norma Internacional de Lenguajes de programación C (Revisión 2)" (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n897.pdf). Consultado el 2010-11-06 .

11. ̂a b c "Cómo formatear el código fuente" (http://www.gnu.org/prep/standards/html_node/Formatting.html) .Estándares de Codificación 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 estándares de programación para programadores Cprofesionales (http://syque.com/cstyle/index.htm) , Prentice Hall, ISBN 0-13-116898-3 / ISBN 978-0-13-116898-5 . (el texto completo está también en línea) Straker, David (1992).

Contextual sangría (http://milan.adamovsky.com/2010/08/contextual-indent.html)GNU Coding Normas (http://www.gnu.org/prep/standards/standards.html)

Artículo Archivo de la jerga de guión estilo (http://www.catb.org/jargon/html/I/indent-style.html)Código Formateadores Fuente

(http://www.dmoz.org//Computers/Programming/Development_Tools/Source_Code_Formatters//) en elOpen Directory Project

Obtenido de " http://en.wikipedia.org/w/index.php?title=Indent_style&oldid=574167721 # Allman_style "

Categorías :Guerras Software Las características del editor de texto El código fuente

Esta página fue modificada por última vez el 23 de septiembre 2013, a 11:32.

El texto está disponible bajo la Licencia Commons Attribution-ShareAlike creativa ; cláusulas adicionales

Page 15: Sangría estilo - Wikipedia, la enciclopedia libre

13/10/13 Sangría estilo - Wikipedia, la enciclopedia libre

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

pueden aplicar. Al usar este sitio, usted acepta los Términos de Uso y Política de Privacidad.

Wikipedia ® es una marca registrada de la Wikimedia Foundation, Inc. , una organización sin fines de

lucro.