Download Tema 2-- Programa de computador Programa de computador

Document related concepts

Haxe wikipedia , lookup

Little man computer wikipedia , lookup

Lisp wikipedia , lookup

Programación con datos masivos en R wikipedia , lookup

Ocaml wikipedia , lookup

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