Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�n
Ir a la b�squeda
En este art�culo se detectaron varios problemas. Por favor, ed�talo para mejorarlo:
C�digo simple en C]
Desarrollador(es)
Dennis Ritchie y Laboratorios Bell
Informaci�n general
Extensiones comunes .c, .h
Paradigma Imperativo (procedural), estructurado
Apareci� en 1972
Dise�ado por Dennis Ritchie
�ltima versi�n estable C18 (junio de 2018)
�ltima versi�n en pruebas C2x
Sistema de tipos D�bil, est�tico
Implementaciones GCC, Intel C, entre muchas m�s.
Dialectos Cyclone, Unified Parallel C, Split-C, Cilk, C*
Influido por
1 Filosof�a
1.1 Propiedades
1.2 Precauciones que se debe tener por ser un lenguaje de bajo nivel
2 Historia
2.1 Desarrollo inicial
2.2 El C de Kernighan y Ritchie
2.3 ANSI C e ISO C
2.3.1 Palabras reservadas de ANSI-C
2.4 C99
2.5 C11
2.6 C embebido
2.7 C18
3 Lenguajes derivados de C
4 Proceso de compilaci�n
4.1 Ejemplo de c�digo
5 Herramientas de programaci�n
6 Aplicabilidad
6.1 Aplicaciones embebidas
7 Bibliotecas C
8 V�ase tambi�n
9 Referencias
10 Enlaces externos
Filosof�a
Uno de los objetivos de dise�o del lenguaje C es que solo sean necesarias unas
pocas instrucciones en lenguaje m�quina para traducir cada elemento del lenguaje,
sin que haga falta un soporte intenso en tiempo de ejecuci�n. Es muy posible
escribir C a bajo nivel de abstracci�n; de hecho, C se us� como intermediario entre
diferentes lenguajes.
Es muy poco lo que requiere uso de ensamblador, lo que permiti� portar Unix y otros
sistemas operativos a distintos equipos.
Por esta raz�n es muy importante que los reci�n iniciados adopten buenas pr�cticas
a la hora de escribir en C y manejar la memoria, como por ejemplo un uso intensivo
de indentaci�n y conocer a fondo todo lo que implica el manejo de punteros y
direcciones de memoria.
Aunque la lista de las caracter�sticas �tiles de las que carece C es larga, este
factor ha sido importante para su aceptaci�n, porque escribir r�pidamente nuevos
compiladores para nuevas plataformas, mantiene lo que realmente hace el programa
bajo el control directo del programador, y permite implementar la soluci�n m�s
natural para cada plataforma. Esta es la causa de que a menudo C sea m�s eficiente
que otros lenguajes. T�picamente, solo la programaci�n cuidadosa en lenguaje
ensamblador produce un c�digo m�s r�pido, pues da control total sobre la m�quina,
aunque los avances en los compiladores de C y la complejidad creciente de los
microprocesadores modernos han reducido gradualmente esta diferencia.
Hay muchas leyendas acerca del origen de C y el sistema operativo con el que est�
�ntimamente relacionado, Unix. Algunas de ellas son:
En 1973, el lenguaje C se hab�a vuelto tan potente que la mayor parte del kernel
Unix, originalmente escrito en el lenguaje ensamblador PDP-11, fue reescrita en
C.1? Este fue uno de los primeros n�cleos de sistema operativo implementados en un
lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics,
escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en
ALGOL en 1961).
El C de Kernighan y Ritchie
En 1978, Ritchie y Brian Kernighan publicaron la primera edici�n de El lenguaje de
programaci�n C, tambi�n conocido como La biblia de C. Este libro fue durante a�os
la especificaci�n informal del lenguaje.2?:2 El lenguaje descrito en este libro
recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R
C" (La segunda edici�n del libro cubre el est�ndar ANSI C, descrito m�s abajo).
power(a,b)
int a, b;
{
int n;
for (n = 1; b > 0; --b)
n *= a;
return n;
}
return n;
}
(*) Por defecto, el tipo de retorno en C es int, por lo que la declaraci�n entera
int power(); podr�a haberse omitido.
ANSI C e ISO C
Art�culo principal: ANSI C
En 1990, el est�ndar ANSI (con algunas modificaciones menores) fue adoptado por la
Organizaci�n Internacional para la Estandarizaci�n (ISO) en el est�ndar ISO/IEC
9899:1990. Esta versi�n se conoce a veces como C90. No obstante, "C89" y "C90" se
refieren en esencia al mismo lenguaje.
Uno de los objetivos del proceso de estandarizaci�n del ANSI C fue producir una
extensi�n al C de Kernighan y Ritchie, incorporando muchas funcionalidades no
oficiales. Sin embargo, el comit� de estandarizaci�n incluy� tambi�n muchas
funcionalidades nuevas, como prototipos de funci�n, y un preprocesador mejorado.
Tambi�n se cambi� la sintaxis de la declaraci�n de par�metros para hacerla
semejante a la empleada habitualmente en C++:
main(argc, argv)
int argc;
char **argv;
{
...
}
pas� a ser:
ANSI C est� soportado hoy en d�a por casi la totalidad de los compiladores. La
mayor�a del c�digo C que se escribe actualmente est� basado en ANSI C. Cualquier
programa escrito s�lo en C est�ndar sin c�digo que dependa de un hardware
determinado funciona correctamente en cualquier plataforma que disponga de una
implementaci�n de C compatible. Sin embargo, muchos programas han sido escritos de
forma que solo pueden compilarse en una cierta plataforma, o con un compilador
concreto, esto puede ser debido a diversos motivos:
La macro __STDC__ puede usarse para dividir el c�digo en secciones ANSI y K&R para
el compilador.
# if __STDC__
extern int getopt(int, char * const *, const char *);
# else
extern int getopt();
# endif
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
int main() {
char numero;
fputs("Introduzca un numero entero par: ", stdout);
scanf("%c", &numero);
if (!isdigit(numero)) {
fputs("Error: numero no valido.\n", stderr);
return -1;
}
return 0;
}
C99
Funciones inline.
Las variables pueden declararse en cualquier sitio (como en C++), en lugar de
poder declararse solo tras otra declaraci�n o al comienzo de una declaraci�n
compuesta.
Muchos tipos de datos, incluyendo long int (para reducir el engorro de la
transici�n de 32 bits a 64 bits), un tipo de dato booleano, y un tipo complex que
representa n�meros complejos.
Arrays de longitud variable.
Soporte para comentarios de una l�nea que empiecen con //, como en BCPL o en C+
+, caracter�stica para la que muchos compiladores hab�an dado soporte por su
cuenta.
Muchas funciones nuevas, como snprintf()
Algunos headers nuevos, como stdint.h.
El compilador GCC, entre muchos otros, soportan hoy en d�a la mayor�a de las nuevas
caracter�sticas de C99. Sin embargo, este nuevo est�ndar ha tenido poca acogida
entre algunos desarrolladores de compiladores, como Microsoft y Borland, que se han
centrado en C++. Brandon Bray, de Microsoft, dijo a este respecto:
"En general, hemos visto poca demanda de muchas caracter�sticas de C99. Algunas
caracter�sticas tienen m�s demanda que otras, y consideraremos incluirlas en
versiones futuras siempre que sean compatibles con C++."7?
C11
C11 (antes conocido como C1X) es un nombre informal para ISO/IEC 9899:20118?. El
borrador final, N1570, fue publicado en abril de 2011.9? El nuevo est�ndar super�
su �ltima revisi�n el 10 de octubre de 2011 y fue oficialmente ratificado por la
ISO y publicado el 8 de diciembre de 2011.
C embebido
Desde el inicio del lenguaje han surgido varias ramas de evoluci�n que han generado
varios lenguajes:
Java, que une una sintaxis inspirada en la del C++ con una orientaci�n a
objetos m�s similar a la de Smalltalk y Objective C.
JavaScript, un lenguaje de scripting creado en Netscape e inspirado en la
sintaxis de Java dise�ado para dar a las p�ginas web mayor interactividad. A la
versi�n estandarizada se la conoce como ECMAScript.
C# (pronunciado C Sharp) es un lenguaje desarrollado por Microsoft derivado de
C/C++ y Java.
Proceso de compilaci�n
Ejemplo de c�digo
int main(void) {
printf("Hola Mundo\n");
return 0;
}
El siguiente escribe "Hola Mundo" en C89
if (condicion 1) {
sentencia 1
} else if (condicion 2) {
sentencia 2
} else if (condicion n) {
sentencia n
} else {
sentencias por defecto
}
Herramientas de programaci�n
Aplicabilidad
Los ordenadores de finales de los 90 son varios �rdenes de magnitud m�s potentes
que las m�quinas en que C se desarroll� originalmente. Programas escritos en
lenguajes de tipo din�mico y f�cil codificaci�n (Ruby, Python, Perl...) que anta�o
hubieran resultado demasiado lentos, son lo bastante r�pidos como para desplazar en
uso a C. Aun as�, se puede seguir encontrando c�digo C en grandes desarrollos de
animaciones, modelados y escenas en 3D en pel�culas y otras aplicaciones
multimedia.
Otras bibliotecas C son aquellas utilizadas para desarrollar sistemas Unix, las
cuales proveen interfaces hacia el n�cleo. Estas funciones son detalladas en varios
est�ndares tales como POSIX y el Single UNIX Specification.
Ya que muchos programas han sido escritos en el lenguaje C existe una gran variedad
de bibliotecas disponibles. Muchas bibliotecas son escritas en C debido a que C
genera c�digo objeto r�pido; los programadores luego generan interfaces a la
biblioteca para que las rutinas puedan ser utilizadas desde lenguajes de mayor
nivel, tales como Java, Perl y Python.
V�ase tambi�n
Anexo:Operadores de C y C++
C++
Referencias
Ritchie, Dennis (1993). �The Development of the C Language�. ACM SIGPLAN Notices
(en ingl�s) (ACM Press) 28 (3): 201-208. doi:10.1145/155360.155580. Consultado el
10 de marzo de 2019.
Kernighan, Brian W.; Ritchie, Dennis M. (1991). El lenguaje de programaci�n C (2�
edici�n). Prentice Hall Hispanoamericana. ISBN 968-880-205-0.
Raymond, Eric S. (2003). The Art of Unix Programming (en ingl�s). Addison-Wesley.
ISBN 0-13-142901-9.
Raymond, Eric S. (2003). �Evolution of C�. The Art of Unix Programming (en ingl�s).
Consultado el 7 de mayo de 2019.
�ISO/IEC 9899:1999�. International Organization for Standardization (en ingl�s).
Consultado el 10 de marzo de 2019.
�WG14/N1256 Committee Draft � Septermber 7, 2007 ISO/IEC 9899:TC3� (PDF).
International Organization for Standardization (en ingl�s). 7 de septiembre de
2007. Consultado el 7 de mayo de 2019.
�Content not found�. Consultado el 2009.
�ISO/IEC 9899:2011�. International Organization for Standardization (en ingl�s).
Consultado el 10 de marzo de 2019.
�N1570 Committee Draft � April 12, 2011 ISO/IEC 9899:201x� (PDF). International
Organization for Standardization (en ingl�s). 12 de abril de 2011. Consultado el 7
de mayo de 2019.
Enlaces externos
Control de autoridades
Categor�as:
Men� de navegaci�n
No has accedido
Discusi�n
Contribuciones
Crear una cuenta
Acceder
Art�culo
Discusi�n
Leer
Editar
Ver historial
Buscar
Portada
Portal de la comunidad
Actualidad
Cambios recientes
P�ginas nuevas
P�gina aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Imprimir/exportar
Crear un libro
Descargar como PDF
Versi�n para imprimir
En otros proyectos
Wikimedia Commons
Wikilibros
Wikiversidad
En otros idiomas
???????
English
??????
Bahasa Indonesia
Latina
Bahasa Melayu
???????
????
??
Editar enlaces
Esta p�gina se edit� por �ltima vez el 25 sep 2021 a las 21:56.
El texto est� disponible bajo la Licencia Creative Commons Atribuci�n Compartir
Igual 3.0; pueden aplicarse cl�usulas adicionales. Al usar este sitio, usted acepta
nuestros t�rminos de uso y nuestra pol�tica de privacidad.
Wikipedia� es una marca registrada de la Fundaci�n Wikimedia, Inc., una
organizaci�n sin �nimo de lucro.
Pol�tica de privacidad
Acerca de Wikipedia
Limitaci�n de responsabilidad
Versi�n para m�viles
Desarrolladores
Estad�sticas
Declaraci�n de cookies
Wikimedia Foundation
Powered by MediaWiki