Introducción a la programación en C Tema 2-- Introducción a la programación en C
OUTPUT RAM HDD INPUT CPU IWI-131 - Tema 2--
Programa de computador INSTRUCCIÓN 1 OUTPUT RAM INSTRUCCIÓN 2 PROGRAMA INSTRUCCIÓN 3 INPUT CPU HDD IWI-131 - Tema 2--
Programa de computador Código ejecutable Datos del programa (variables) Modelo de Von-Neumann IWI-131 - Tema 2--
Lenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa de computador es una secuencia de estas instrucciones IWI-131 - Tema 2--
Lenguajes de programación Ensamblador Convierte instrucciones de procesador en ceros y unos. Lenguaje de ensamblador o “assembly” Expresa instrucciones de procesador en un lenguaje “escribible” por un ser humano Lenguaje de bajo nivel IWI-131 - Tema 2--
Lenguajes de programación Código Assembly Load $1 $3 Código Objeto 0011001 CPU Ensamblador IWI-131 - Tema 2--
Lenguajes de programación Lenguajes de alto nivel Compilados Interpretados Cercanos al lenguaje natural Ventajas Más claros Códigos más cortos Portables IWI-131 - Tema 2--
Lenguajes de programación Código fuente if(x>0) Y=10; Código Objeto 0011001 compilador linker Código Ejecutable 0011001 Sintaxis gramática IWI-131 - Tema 2--
Lenguajes de programación Código fuente if(x>0) Y=10; Código Objeto 0011001 CPU interprete IWI-131 - Tema 2--
Lenguajes de programación Proceso de creación de un programa Generación de código fuente Compilación Se analiza la sintaxis del programa Se analiza la gramática del programa Se genera código objeto Enlace Se combina el código objeto con bibliotecas del sistema Se genera programa ejecutable Ejecución IWI-131 - Tema 2--
Lenguajes de programación Generación del código fuente Son archivos de texto plano. Se puede usar cualquier editor de texto. Existen editores especializados para cada lenguaje IWI-131 - Tema 2--
Lenguajes de programación Compilación Existen distintos compiladores Reciben como entrada el nombre del archivo con el código fuente Entregan como resultado un archivo (binario) con el código objeto. Si existen errores se debe corregir el código fuente Errores sintácticos: “ola, me yamo pdero” Errores gramaticales: “Hola, me pedro llamo” IWI-131 - Tema 2--
Lenguajes de programación Enlace Se toma un conjunto de archivos con código objeto y se combinan en un solo archivo (exe en windows) Muchas veces el compilador hace el enlace en forma automática (compile v/s build) Ejecución Se lleva el programa a la memoria RAM y se ejecutan sus instrucciones en la CPU. IWI-131 - Tema 2--
Lenguajes de programación Código fuente Compilación Código objeto bibliotecas Enlace Código ejecutable Ejecución IWI-131 - Tema 2--
El lenguaje C C es un lenguaje de programación de computadoras. Lenguaje de alto nivel Más bien “medio”. Permite manipulación de bits y bytes, direcciones de memoria. Estructuras de control de alto nivel. Portabilidad. Simple, pero poderoso. Muy ligado al mundo Unix. Ideal para aplicación de alto rendimiento. IWI-131 - Tema 2--
Historia de C Inventado e implementado por primera vez por Dennis Ritchie. IWI-131 - Tema 2--
Historia de C 1960’s 1969 1971 1972-1973 BCPL (Martin Richards) B (Ken Thompson) 1971 NB (Dennis Ritchie) 1972-1973 C (Dennis Ritchie) IWI-131 - Tema 2--
Historia de C 1973 1978 Reescritura del kernel de Unix en C Pcc (Steve Johnson) Brian Kernighan & Dennis Ritchie “The C Programming Language” IWI-131 - Tema 2--
Historia de C 1982-1989 Proceso de estandarización ANSI-89 1995 Primera enmienda de C 1999 Estándar C99 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html IWI-131 - Tema 2--
Historia de C 1997 C++ ANSI C++ Diseñado e implementado por Bjarne Stroustrup. C “mejorado” Soporta orientación a objetos y programación genérica IWI-131 - Tema 2--
Introducción a la programación en C Fin Tema 2-- Introducción a la programación en C