Maquinas y programas
Maquinas programables
El concepto de maquina lleva asociado el de un proceso de funcionamiento en el que las diferentes operaciones se realizan de forma sucesiva o simultánea
Desde el punto de vista del funcionamiento, las clasificamos:
Concepto de computo:
Un computo es una operación de tratamiento de información. En informática identificamos el concepto de computo con el de tratamiento de la información
Concepto de computador:
Un computador se define como una maquina programable para tratamiento de la información
Un programa de computador es una descripción de un computo. Ademas es también una descripción del comportamiento de una maquina y podemos considerarlo como una maquina virtual
Un computador posee elementos fijos (maquina base -> Hardware) y modificables (programas -> software) La estructura general de un computador se puede representar
| Memoria | ||
| Procesador | ||
| Datos de entrada | Entrada / Salida | Resultados de salida |
Programación e ingeniería de software:
Para realizar un determinado tratamiento de información con ayuda de un computador habrá sido necesario:
Programación
El desarrollo de programas complejos exige un equipo mas o menos numeroso de personas que trabajan de manera organizada. Las técnicas para desarrollo constituye la ingeniería de software
Programación e ingeniería del software no son disciplinas independientes si no complementarias
El desarrollo de software en gran escala consiste en descomponer el trabajo total en programación en partes independientes para ser desarrollada por miembros individuales.
Objetivos de la programación
Las técnicas de programación han de establecerse con el objetivo de ser una base adecuada para la ingeniería del software
Los objetivos particulares de la programación:
Si tenemos que ordenar los distintos objetivos, primero la corrección, segundo la claridad y tercero la eficiencia
Lenguajes de programación
Cada modelo de computador podrá utilizar una forma particular de codificación de programas que no tiene por que coincidir con la de otros modelos
Código de maquina ó Lenguaje de maquina: la forma de codificar de una maquina en particular
Un programa codificado en el lenguajes de un modelo de maquina, no podrá ser ejecutado en otro distinto. Para que funcione en diferentes maquinas tenemos que preparar versiones particulares para cada maquina, lo que multiplica el costo del desarrollo
El código maquina es muy difícil de leer por personas, esta compuesto por código numérico sin sentido
Los lenguajes de programación sirven para representar programas en forma texto para que pueda ser leído por una persona con facilidad, ademas, son formas de representación independiente de la maquina que lo vaya a usar
Compiladores e interpretes
Procesadores de lenguajes: Realizan el tratamiento de la información en forma de texto que representa el programa en el lenguaje de programación simbólico
Un compilador es un programa que traduce programas de un lenguaje de programación simbólico a código maquina
Programa fuente o lenguaje fuente; A la representación del programa en lenguaje simbólico
Programa objeto o lenguaje objeto: A la representación del programa en código maquina
Interprete es un programa que analiza la descripción simbólica del programa fuente y realiza las operaciones oportunas
El proceso mediante interprete es mas sencillo, que mediante compilador, ya que no hay que realizar dos fases. Su principal inconveniente es que su ejecución es mas lenta.
Modelos abstractos de computo
El modelo abstracto recoge los elementos básicos y formas de combinación en forma abstracta, prescindiendo de la notación concreta usada en cada lenguaje de programación para representarlo.
Hay diversos modelos:
Modelo funcional: Se basa en el empleo de funciones
Modelo de flujo de datos: Cada operador esta conectado mediante un cuadrado con entradas y salidas
Modelo de programación lógica: Un programa consiste en plantear de manera formal un problema a base de declarar una serie de elementos conocidos.
Modelo imperativo: Responde a la arquitectura Von Neumann. Aparece como una lista de ordenes o instrucciones.