Professional Documents
Culture Documents
Tema 2-HDD
Introduccin a la programacin en C
INPUT CPU
RAM
IWI-131 - Tema 2 --
Programa de computador
INSTRUCCIN 1 INSTRUCCIN 2 PROGRAMA INSTRUCCIN 3
Programa de computador
PROGRAMA
OUTPUT
Cdigo ejecutable
RAM
CPU
INPUT
HDD
IWI-131 - Tema 2 --
Modelo de Von-Neumann
IWI-131 - Tema 2 --
Lenguajes de programacin
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
Lenguajes de programacin
Ensamblador
Convierte instrucciones de procesador en ceros y unos.
IWI-131 - Tema 2 --
Lenguajes de programacin
Lenguajes de programacin
Lenguajes de alto nivel
Compilados Interpretados
Cdigo Assembly
Load $1 $3
Ensamblador
Cdigo Objeto
0011001
CPU
IWI-131 - Tema 2 --
IWI-131 - Tema 2 --
Lenguajes de programacin
Cdigo fuente
if(x>0) Y=10;
Lenguajes de programacin
Cdigo fuente
if(x>0) Y=10;
compilador
Cdigo Objeto
0011001
linker
interprete
Cdigo Objeto
0011001
CPU
Sintaxis gramtica
Cdigo Ejecutable
0011001
IWI-131 - Tema 2 --
IWI-131 - Tema 2 --
Lenguajes de programacin
Proceso de creacin de un programa
Generacin de cdigo fuente Compilacin
Se analiza la sintaxis del programa Se analiza la gramtica del programa Se genera cdigo objeto
Lenguajes de programacin
Generacin del cdigo fuente
Son archivos de texto plano. Se puede usar cualquier editor de texto. Existen editores especializados para cada lenguaje
Enlace
Se combina el cdigo objeto con bibliotecas del sistema Se genera programa ejecutable
Ejecucin
IWI-131 - Tema 2 -IWI-131 - Tema 2 --
Lenguajes de programacin
Compilacin
Existen distintos compiladores Reciben como entrada el nombre del archivo con el cdigo fuente Entregan como resultado un archivo (binario) con el cdigo objeto. Si existen errores se debe corregir el cdigo fuente
Errores sintcticos: ola, me yamo pdero Errores gramaticales: Hola, me pedro llamo
Lenguajes de programacin
Enlace
Se toma un conjunto de archivos con cdigo objeto y se combinan en un solo archivo (exe en windows) Muchas veces el compilador hace el enlace en forma automtica (compile v/s build)
Ejecucin
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 programacin
Cdigo fuente Compilacin Cdigo objeto Enlace Cdigo ejecutable Ejecucin
IWI-131 - Tema 2 --
El lenguaje C
C es un lenguaje de programacin de computadoras. Lenguaje de alto nivel
Ms bien medio. Permite manipulacin de bits y bytes, direcciones de memoria. Estructuras de control de alto nivel. Portabilidad.
bibliotecas
Simple, pero poderoso. Muy ligado al mundo Unix. Ideal para aplicacin de alto rendimiento.
IWI-131 - Tema 2 --
Historia de C
Inventado e implementado por primera vez por Dennis Ritchie.
Historia de C
1960s
BCPL (Martin Richards)
1969
B (Ken Thompson)
1971
NB (Dennis Ritchie)
1972-1973
C (Dennis Ritchie)
IWI-131 - Tema 2 -IWI-131 - Tema 2 --
Historia de C
1973
Reescritura del kernel de Unix en C 1982-1989
Historia de C
Proceso de estandarizacin ANSI-89
1978
Pcc (Steve Johnson) Brian Kernighan & Dennis Ritchie The C Programming Language
1995
Primera enmienda de C
1999
Estndar 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++
C++
Diseado e implementado por Bjarne Stroustrup. C mejorado Soporta orientacin a objetos y programacin genrica
IWI-131 - Tema 2 --