Download Tema 2-- Programa de computador Programa de computador
Document related concepts
Transcript
OUTPUT Tema 2-HDD Introducción a la programación en C INPUT RAM CPU IWI-131 - Tema 2 -- Programa de computador Programa de computador PROGRAMA INSTRUCCIÓN 1 INSTRUCCIÓN 2 PROGRAMA INSTRUCCIÓN 3 RAM CPU OUTPUT INPUT HDD Datos del programa (variables) Código ejecutable RAM Modelo de Von-Neumann IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- Lenguajes de programación 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 -- • 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 -- 1 Lenguajes de programación Lenguajes de programación • Lenguajes de alto nivel – Compilados – Interpretados Código Assembly Ensamblador Load $1 $3 Código Objeto CPU 0011001 • Cercanos al lenguaje natural • Ventajas – Más claros – Códigos más cortos – Portables IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- Lenguajes de programación Lenguajes de programación Código fuente compilador if(x>0) Y=10; Código Objeto linker 0011001 Código fuente interprete Código Objeto CPU 0011001 if(x>0) Y=10; Sintaxis Código Ejecutable gramática 0011001 IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- Lenguajes de programación 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 • Generación del código fuente – Son archivos de texto plano. – Se puede usar cualquier editor de texto. – Existen editores especializados para cada lenguaje – Enlace • Se combina el código objeto con bibliotecas del sistema • Se genera programa ejecutable – Ejecución IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- 2 Lenguajes de programación Lenguajes de programación • Enlace • 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” – 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 -- IWI-131 - Tema 2 -- Lenguajes de programación El lenguaje C Código fuente • C es un lenguaje de programación de computadoras. • Lenguaje de alto nivel Compilación Código objeto Enlace Código ejecutable bibliotecas – – – – 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. Ejecución IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- Historia de C Historia de C • 1960’s • Inventado e implementado por primera vez por Dennis Ritchie. – BCPL (Martin Richards) • 1969 – B (Ken Thompson) • 1971 – NB (Dennis Ritchie) • 1972-1973 – C (Dennis Ritchie) IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- 3 Historia de C Historia de C • 1982-1989 • 1973 – Reescritura del kernel de Unix en C • 1978 – Proceso de estandarización – ANSI-89 • 1995 – Pcc (Steve Johnson) – Brian Kernighan & Dennis Ritchie “ The C Programming Language” – Primera enmienda de C • 1999 – Estándar C99 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html IWI-131 - Tema 2 -- IWI-131 - Tema 2 -- Historia de C • 1997 – ANSI C++ Fin Tema 2-- • C++ – Diseñado e implementado por Bjarne Stroustrup. – C “mejorado” Introducción a la programación en C – Soporta orientación a objetos y programación genérica IWI-131 - Tema 2 -- 4