Tema 2 Introduccin a la programacin en C

  • Slides: 22
Download presentation
Tema 2 -Introducción a la programación en C IWI-131 - Tema 2 --

Tema 2 -Introducción a la programación en C IWI-131 - Tema 2 --

OUTPUT HDD INPUT RAM CPU IWI-131 - Tema 2 --

OUTPUT HDD INPUT RAM CPU IWI-131 - Tema 2 --

Programa de computador INSTRUCCIÓN 1 INSTRUCCIÓN 2 PROGRAMA INSTRUCCIÓN 3 RAM CPU OUTPUT INPUT

Programa de computador INSTRUCCIÓN 1 INSTRUCCIÓN 2 PROGRAMA INSTRUCCIÓN 3 RAM CPU OUTPUT INPUT HDD IWI-131 - Tema 2 --

Programa de computador PROGRAMA Datos del programa (variables) Código ejecutable RAM Modelo de Von-Neumann

Programa de computador PROGRAMA Datos del programa (variables) Código ejecutable RAM Modelo de Von-Neumann IWI-131 - Tema 2 --

Lenguajes de programación • Un computador solo entiende lenguaje binario • Un procesador tiene

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.

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 Código Assembly Load $1 $3 Ensamblador Código Objeto 0011001 IWI-131 -

Lenguajes de programación Código Assembly Load $1 $3 Ensamblador Código Objeto 0011001 IWI-131 - Tema 2 -- CPU

Lenguajes de programación • Lenguajes de alto nivel – Compilados – Interpretados • Cercanos

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 Código fuente if(x>0) Y=10; compilador Código Objeto 0011001 linker Sintaxis Código

Lenguajes de programación Código fuente if(x>0) Y=10; compilador Código Objeto 0011001 linker Sintaxis Código Ejecutable gramática 0011001 IWI-131 - Tema 2 --

Lenguajes de programación Código fuente if(x>0) interprete Código Objeto 0011001 Y=10; IWI-131 - Tema

Lenguajes de programación Código fuente if(x>0) interprete Código Objeto 0011001 Y=10; IWI-131 - Tema 2 -- CPU

Lenguajes de programación • Proceso de creación de un programa – Generación de código

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.

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

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

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 Compilación Código objeto Enlace Código ejecutable Ejecución IWI-131 -

Lenguajes de programación Código fuente Compilación Código objeto Enlace Código ejecutable Ejecución IWI-131 - Tema 2 -- bibliotecas

El lenguaje C • C es un lenguaje de programación de computadoras. • Lenguaje

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

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

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 •

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

Historia de C • 1982 -1989 – Proceso de estandarización – ANSI-89 • 1995 – Primera enmienda de C • 1999 – Estándar C 99 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

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 IWI-131 - Tema 2 --

Fin Tema 2 -Introducción a la programación en C IWI-131 - Tema 2 --

Fin Tema 2 -Introducción a la programación en C IWI-131 - Tema 2 --