Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT.
-
Upload
xenia-zegarra -
Category
Documents
-
view
234 -
download
0
Transcript of Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT.
Tema 2--
Introducción a la programación en C
IWI-131 - Tema 2--
CPU
RAM
HDD
OUTPUT
INPUT
IWI-131 - Tema 2--
Programa de computador
INPUT
OUTPUT
CPURAM
HDD
PROGRAMA
INSTRUCCIÓN 1
INSTRUCCIÓN 2
INSTRUCCIÓN 3
IWI-131 - Tema 2--
Programa de computador
RAM
PROGRAMA
Código ejecutableDatos 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
CPUEnsambladorCódigo
AssemblyLoad $1 $3
CódigoObjeto0011001
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
compilador
Códigofuenteif(x>0)Y=10;
CódigoObjeto0011001
Sintaxis
gramática
CódigoEjecutable0011001
linker
IWI-131 - Tema 2--
Lenguajes de programación
CPUinterpreteCódigofuenteif(x>0)
Y=10;
CódigoObjeto0011001
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
Código objeto
Código ejecutable
bibliotecas
Compilación
Ejecución
Enlace
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– 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
Fin Tema 2--
Introducción a la programación en C