Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Licencia de Uso
ESTILOS DE PROGRAMACIN
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Los lenguajes de programacin tienen la particularidad de
cumplir un doble rol. Por un lado sirven para comunicar humanos
con computadoras. Son la forma de transformar una serie de
abstracciones como algoritmos, mdulos, tipos de datos y sistemas
en algo que una computadora pueda ejecutar. El segundo rol, y que
no se ve tanto a primera vista, es que un lenguaje de
programacin sirve para comunicar humanos con humanos. Por
ejemplo, para que alguien le cuente un algoritmo a otro. O en
muchos casos para que un programador pueda maana recuperar las
ideas que volc en cdigo hoy.
#define_F<00||FOO;
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
intF=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*
F/OO/OO);}F_OO()
{
____
_________
____________
______________
_______________
_______________
________________
________________
________________
________________
_______________
_______________
______________
____________
________
____
}
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Extensibilidad: La facilidad con que se adapta el software a
cambios de especificacin. Un buen estilo de cdigo fomenta
programas que no slo resuelven el problema, sino que
tambin reflejan claramente la relacin problema/solucin.
Esto tiene como efecto que muchos cambios simples en el
problema reflejen de forma obvio los cambios a hacer en el
programa.
Verificabilidad: la facilidad con que pueden comprobarse
propiedades de un sistema. Si el estilo de cdigo hace obvia
la estructura del programa, eso ayuda a verificar que el
comportamiento sea el esperado.
Reparabilidad: la posibilidad de corregir errores sin
demasiado esfuerzo.
Capacidad de evolucin: la capacidad de adaptarse a nuevas
necesidades.
Comprensibilidad: la facilidad con que el programa puede ser
comprendido.
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
El estilo de cdigo debe promover programas que pueden ser
comprendidos de forma inmediata (suponiendo el conocimiento
del problema que ste resuelve). Los problemas de
computacin ya son complejos y no hay motivo para aumentar
su complejidad con cdigo rebuscado. Los programas debern
ser soluciones, no problemas.
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
sin tener que detenerse en cada identificador a recordar (o
buscar) donde estaba definido y que era.
Indentacin
floatf(floata,floatb){returna*b;}
typedeffloatlongitud;
typedeffloatarea;
areaarea_rectangulo(longitudbase,longitudaltura){
/*Devuelveelreadeunrectngulodebase`b'yaltura`h'
*/
returnbase*altura;
}
a=1
b=2
a=1;
b=2;
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
insertando espacios o tabuladores para separarlo del texto
adyacente.un estilo de indentacin es la convencin[2].
ABCL/c+
Alef o Limbo
AutoHotkey
AWK
BCPL
C
C shell (csh)
C++
C#
Ch - interprete C/C++ embebido
ChucK - para programacin de audio
Cilk - concurrente C para programacin paralela de
multihilos
Coyote
Cyclone
D
DINO
E
ECMAScript
ActionScript
DMDScript
E4X
JavaScript
JScript
MDMscript
Ferite
Frink
ICI
Java
Groovy
Join Java
X10
Objective-C
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Perl
PHP
Pico
Pike
rc
TSL
UnrealScript
Windows PowerShell
Yorick
QuakeC
Estilo K&R
Ejemplo
functionsaludar($val){
if($val==1){
echo"HOLA";
}
else{
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
echo"CHAO";
}
}
La ventaja de este estilo es que la llave de apertura no requiere
una linea extra y llave de finalizacin se alinea
conceptualemente a la declaracin conceptual a la que pertenece.
Una desventajade este estilo es quela llave final de un bloque
toma una linea enterf, el cual podria se parcialmente resuelto
en los bloques if/else y do/while
Estilo RR
functionsaludar($val)
{
if($val==1)
{
echo"HOLA";
}
else
{
echo"CHAO";
}
}
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Estilo BSD KNF
functionsaludar($val){
//AQUIEXISTEUNALINEAQUEEXCEDEELESPACIODEVISION
DELACONSOLA,AQUIEXISTEUNA
LINEAQUEEXCEDE
if($val==1){
echo"HOLA";
}
else{
echo"CHAO";
}
}
Estilo Whitesmiths
functionsaludar($val)
{
if($val==1)
{
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
echo"HOLA";
}
else
{
echo"CHAO";
}
}
Estilo GNU
functionsaludar($val)
{
if($val==1)
{
echo"HOLA";
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
}
else
{
echo"CHAO";
}
}
ifa<24andb<60andc<60
returntrue
else
returnfalse
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
ifhoras<24andminutos<60andsegundos<60
returntrue
else
returnfalse
Beneficios: [6]
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
esto, en muchos lenguajes de programacion no es permitido
escribir el nombre del identificador con espacios en blanco.
Notacin Camel[10]
Notacin C [11]
Por ejemplo:
Otras consideraciones
Uso de Espacios
inti;
for(i=0;i<10;++i){
printf("%d",i*i+i);
}
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
contra
inti;
for(i=0;i<10;++i){
printf("%d",i*i+i);
}
//seasigna0alvalorderetornodelafuncin.
iValorRetorno=0;
Operadores [14].
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Usar espacios entre operadores binarios: Todos los
operadores que tomen dos parmetros deben tener un espacio antes
y otro despus del operador (Ejemplo: a + b).
if(abc>xyz){
zUno=abc;
}
else{
zUno=xyz;
}
zUno=(abc>xyz)?abc:xyz
while(cadena[i]!=NULL){
haceAlgo();
i++;
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
}
enlugarde
while(cadena[i++]!=NULL){
haceAlgo();
}
function(parametro1=NULL,parametro2="Primero",
parametro2="Unico",parametro3="",
parametro4="parametros")
{
if(parametro1)
{
returntrue;
}
else
{
returnfalse;
}
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
p_FileHandle=fopen("unArchivo",READ_ONLY);
if(p_FileHandle==NULL){
printf("Nopudoabrirsearchivo;findeprograma");
terminaAplicacion()
}
else{
haceAlgo();
}
if((fileHandle=open("unArchivo",READ_ONLY))==NULL){
printf("Nopudoabrirsearchivo;findeprograma");
terminaAplicacion()
}
else{
haceAlgo();
}
a=2;b=3; no es permitido.
Lo correcto es
a=2;
b=3;
Comparacin de constantes
if(true==$a){...}
if($a==true){...}
Listas
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Los diferentes elementos de una lista deberian ser colocados
uno por uno separados por un salto de linea, es una buena
practica aadir el separador de elementos despues del final de
cada elemento.
$arreglo[]={
"item1",
"item2",
"item3",/*todaviatienelacomadetrasdel*/
};
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
Referencias Bibliograficas
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
[2]Indentacin, Wikipedia, la enciclopedia libre, Url:
http://es.wikipedia.org/wiki/Indentaci%C3%B3n
http://en.wikipedia.org/wiki/Curly_bracket_programming_language
http://kithkanan-
programacionencpp.blogspot.com/2007/02/editorial-recomendaciones-
de-estilo.html
http://en.wikipedia.org/wiki/Naming_conventions_%28programming
%29
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela
[12] Hungarian notation, Wikipedia, the free encyclopedia, Url:
http://en.wikipedia.org/wiki/Hungarian_notation
http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Con
test
AvenidaAlbertoCarnevali,vaLaHechicera,EdificioCENDITEL.Telfono:(0274)2447111.Fax:(0274)2445217.ApartadoPostal:234.
CdigoPostal:5101A.RIF:G200073497.PginaWeb:http://www.cenditel.gob.ve.MridaVenezuela