Introducción a
Introducción a
la programación
Un algoritmo es un método para resolver
problemas.
¿Qué es un
¿Qué es un
algoritmo?
algoritmo?
La programación de computadoras es el arte
de hacer que una computadora haga lo que
nosotros queramos, mediante la escritura de
un programa de computación.
¿Qué es
¿Qué es
Un programa de computación es simplemente un
conjunto de instrucciones que le dicen a la
computadora cómo realizar una tarea en
particular. Es parecido a una receta: un grupo de
instrucciones que le dicen al cocinero cómo
preparar un determinado plato. Describe los
ingredientes (los datos) y la secuencia de pasos
(la funcionalidad) necesarios para convertir los
ingredientes en una rica torta, un programa tiene
un concepto muy similar.
¿Qué es
¿Qué es
programar?
programar?
Es el lenguaje que nos permite escribir
instrucciones al computador y que este la
entienda.
Es una notación para describir programas y
estructuras de datos.
¿Qué es un lenguaje
¿Qué es un lenguaje
.
de máquina
ensamblador Lenguajes de bajo nivel
interpretados
compilados Lenguajes de alto nivel
Clasificación
Clasificación
de los
de los
lenguajes
lenguajes
De máquina
De máquina
Es el lenguaje nativo de la computadora, contiene sólo unos y ceros (1 y 0), los cuales forman las instrucciones.
Ensamblador
Ensamblador
Es un lenguaje de etiquetas, donde cada instrucción se corresponde con una instrucción en lenguaje de máquina.
Clasificación
Clasificación
de los
de los
Lenguajes de alto nivel
Lenguajes de alto nivel
Son aquellos lenguajes semejantes al lenguaje natural, donde cada instrucción es una o más instrucciones en lenguaje ensamblador o de máquina.
Clasificación de los
Clasificación de los
lenguajes
lenguajes
Ejemplos de
Ejemplos de
lenguajes
lenguajes
Lenguaje C
Lenguaje C Lenguaje EnsambladorLenguaje Ensamblador Lenguaje máquinaLenguaje máquina
main MiPrograma {
printf("Hola"); }
ADD ACUM, i CAR AUX, i
STZ CONTINUA RES ACUM, j MOVE X, Y
Programación imperativa o
Programación imperativa o
procedimental
procedimental
El programador le debe indicar al computador a cada momento lo que debe hacer. Ejemplos: C, Pascal, Fortran, Cobol, PLI. El programa se debe estructurar así:
Encabezamiento del programa Declaraciones: variables y tipos.
Cuerpo: serie de instrucciones que el computador ha
de seguir para la resolución del problema.
Son lenguajes orientados a instrucciones. El diseño de estos lenguajes está influido en gran parte por la máquina de Von Neumann.
Estilos de
Estilos de
programación
programación
de alto nivel
de alto nivel
Programación
Programación
estructurada
estructurada
Los problemas se dividen en subproblemas más sencillos y estos son resueltos por separado para lograr en conjunto una simplificación de la tarea a programar.
Estilos de
Estilos de
programación
programación
de alto nivel
Programación orientada a objetos
Programación orientada a objetos
(POO)
(POO)
Forma especial de programar mas cercana a como expresaríamos las cosas en la vida real, se basa en objetos que no son mas que cosas. (Métodos, propiedades, objetos).
Las clases son implementaciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase.
Estilos de
Estilos de
programación
programación
de alto nivel
de alto nivel
Programación orientada a objetos
Programación orientada a objetos
(POO)
(POO)
Ejemplo
Carro tiene una serie de características: color, tamaño, modelo, marca. Además tiene una serie de funcionalidades: arrancar, retroceder, parar, etc. En un esquema de POO: carro es el objeto, características son las propiedades y los métodos serian las
Estilos de
Estilos de
programación
programación
de alto nivel
Programación lógica (Prolog, Lisp)
Programación lógica (Prolog, Lisp)
Forma de programar basado en hechos y reglas, estas se pueden almacenar o no en una base de datos.
Ejemplos: Sistemas Expertos, Inteligencia artificial, juegos.
Programación funcional (Haskell)
Programación funcional (Haskell)
Basado en estructuras de listas. Ejemplos: demostración de teoremas matemáticos, IA, planes de acción para robots, etc.
Estilos de
Estilos de
programación
programación
de alto nivel
de alto nivel
Los
traductores
de
lenguaje
son
programas que traducen a código de
máquina (1 y 0) los programas escritos en
lenguaje de alto nivel.
Interpretadotes
Compiladores
Interpretador
Interpretador
Es un programa que convierte sentencia por sentencia de un programa o código fuente, lo comprueba y lo
ejecuta.
Interprete Datos
Programa
fuente Resultados
Traductores
Traductores
Compilador Compilador
Programa que se encarga de traducir el programa o código fuente a a programa o código de máquina o ejecutable. Para poder utilizar un programa escrito en lenguaje compilado hay que seguir como mínimo dos fases:
Fase o tiempo de compilación: aquí se corrigen los fallos de la gramática del código fuente y se pasa en un bloque a código máquina. Esta operación se realiza una vez y se guarda en memoria para luego ejecutarlo directamente.
Fase o tiempo de ejecución: se ejecuta el programa
Edición del programa fuente
Programa fuente
Compilador
Errores Programa objeto Encuadernador
Librerías
Programa ejecutable no
si
Traductores
Traductores
Proceso de compilación
Proceso de compilación
Diferencias entre interpretador y
Diferencias entre interpretador y
Compilador
Compilador
El compilador traduce y ejecuta todo el programa en un bloque,
mientras que el intérprete realiza esta función sentencia por sentencia.
El compilador es más eficaz al obtener el código máquina, pero
por el contrario, este código ocupa mucha más memoria que el interpretado
En un principio el intérprete era el método de compilación más
utilizado, ya que la memoria era escasa, pero gracias a que los
ordenadores de hoy en día poseen mucha más memoria, podemos utilizar el compilador para obtener un código más eficaz.
La sintáxis nos dice cuál es la forma correcta de escribir los programas en un lenguaje determinado. Es lo primero que tenemos que conocer de un lenguaje antes de empezar a usarlo.
La semántica especifica el significado de lo que podemos
construir con este lenguaje.