Download 02(--)introduccion - lenguajedeprogramacion2011i
Document related concepts
Transcript
Tema 2-Introducción a la programación en C OUTPUT HDD INPUT RAM CPU IWI-131 - Tema 2-- Programa de computador INSTRUCCIÓN 1 INSTRUCCIÓN 2 PROGRAMA INSTRUCCIÓN 3 RAM CPU OUTPUT INPUT HDD IWI-131 - Tema 2-- Programa de computador PROGRAMA Datos del programa (variables) Código ejecutable RAM 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 Ensamblador Código Objeto 0011001 IWI-131 - Tema 2-- CPU 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; compilador Código Objeto 0011001 linker Sintaxis Código Ejecutable gramática 0011001 IWI-131 - Tema 2-- Lenguajes de programación Código fuente if(x>0) interprete Código Objeto 0011001 Y=10; IWI-131 - Tema 2-- CPU 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 Enlace Código ejecutable Ejecución IWI-131 - Tema 2-- bibliotecas 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 – BCPL (Martin Richards) • 1969 – B (Ken Thompson) • 1971 – NB (Dennis Ritchie) • 1972-1973 – C (Dennis Ritchie) IWI-131 - Tema 2-- Historia de C • 1973 – Reescritura del kernel de Unix en C • 1978 – 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 – ANSI C++ • C++ – Diseñado e implementado por Bjarne Stroustrup. – C “mejorado” – Soporta orientación a objetos y programación genérica IWI-131 - Tema 2-- Fin Tema 2-Introducción a la programación en C