Algoritmos y Lenguaje de Programación 2008-1 Introducción al lenguaje C El lenguaje de programación C Mario Medina C. [email protected] • Uno de los lenguajes de programación más usados )Alto nivel )“Cercano a la máquina” )Programador tiene control sobre el computador )Usado para tanto para sistemas operativos como para aplicaciones ` Eficiencia ` Portabilidad Historia Historia • C fue creado por • C desciende de )Dennis M. Ritchie )BCPL )B (BCPL en 8KB) ` Bell Labs ` Entre 1969 y 1973 )Brian Kernighan y Dennis Ritchie, “El lenguaje de programación C”, Prentice-Hall, 1978 ` Describe informalmente la primera versión del lenguaje ` El “antiguo testamento” Historia • Usado para escribir el sistema operativo UNIX • Desarrollado en computadores )DEC PDP-7 )DEC PDP-11 Historia • American National Standards Institute genera comité X3J11 para estandarizar lenguaje C )ANSI C estándar X3.159-1989 (C89) • Adoptado por la International Standards Organization como ISO/IEC 9899:1990 (C90) Dennis Ritchie y Ken Thompson desarrollando UNIX en un PDP-11 ©Mario Medina C. )Básicamente igual a C89 )Versión más usada 1 Algoritmos y Lenguaje de Programación 2008-1 Historia Lenguaje de programación C • El lenguaje de programación C”, 2da. Ed. • Lenguaje procedural )Publicado en 1988 ) Describe ANSI C )El “nuevo testamento” • Revisión del estándar ISO )ISO 9899:1999 ` Conocido como C99 ` Agrega tipos de datos como long long, _Bool ` Agrega nuevas bibliotecas y funciones )Orientado a las funciones • Conjunto básico de funciones )Funciones complejas vienen en bibliotecas • Es fácil escribir un compilador C )Generalmente es el primer compilador escrito para un computador nuevo • Compiladores muy buenos disponibles Escritura de programas en C Tópicos a tratar en el curso • Formato libre • Tipos de datos de C • Declaraciones • Proposiciones • Operadores • Punteros • Vectores • Ristras de caracteres • Funciones • Manejo de memoria )Interpretación del código no depende del formato del texto • Distingue entre mayúsculas y minúsculas • Permite comentarios entre /* y */ • C99: comentarios comienzan con // /* Este es un comentario */ // Este tambien • Preprocesador • Funciones de E/S • Recursión • Estructuras de datos • Estructuras avanzadas • Pilas y colas • Árboles •.... Cita de la semana Lectura para esta semana • C, v.: Un lenguaje de programación que se parece al Pascal excepto que es más parecido al lenguaje de ensamblador pero que no se parece mucho a ninguno de ambos, o a cualquier otro. Es ya sea el mejor lenguaje disponible hoy en día, o no lo es. — Ray Simard • Joel Spolsky, “Cosas que nunca se deberían hacer, parte I” ©Mario Medina C. )http://spanish.joelonsoftware.com/Articles/Thing sYouShouldNeverDoPar.html )Peor error estratégico: reescribir el código desde cero )Es mas difícil leer código que escribirlo )El código fuente no se oxida 2