tema 2-- introducción a la programación en c. iwi-131 - tema 2-- cpu ram hdd output input

22
Tema 2-- Introducción a la programación en C

Upload: xenia-zegarra

Post on 22-Jan-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

CPU

RAM

HDD

OUTPUT

INPUT

Page 3: 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

Page 4: 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

RAM

PROGRAMA

Código ejecutableDatos del programa(variables)

Modelo de Von-Neumann

Page 5: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 6: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 7: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

Lenguajes de programación

CPUEnsambladorCódigo

AssemblyLoad $1 $3

CódigoObjeto0011001

Page 8: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 9: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

Lenguajes de programación

compilador

Códigofuenteif(x>0)Y=10;

CódigoObjeto0011001

Sintaxis

gramática

CódigoEjecutable0011001

linker

Page 10: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

Lenguajes de programación

CPUinterpreteCódigofuenteif(x>0)

Y=10;

CódigoObjeto0011001

Page 11: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 12: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 13: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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”

Page 14: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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.

Page 15: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

Lenguajes de programación

Código fuente

Código objeto

Código ejecutable

bibliotecas

Compilación

Ejecución

Enlace

Page 16: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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.

Page 17: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

IWI-131 - Tema 2--

Historia de C

• Inventado e implementado por primera vez por Dennis Ritchie.

Page 18: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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)

Page 19: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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”

Page 20: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 21: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

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

Page 22: Tema 2-- Introducción a la programación en C. IWI-131 - Tema 2-- CPU RAM HDD OUTPUT INPUT

Fin Tema 2--

Introducción a la programación en C