Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COMPUTACIONALES
Elementos de Programación
1º C E. T. S. I. Telecomunicaciones
INDICE
INTRODUCCIÓN...............................................................................pág. 3
MÁQUINA DE TURING....................................................................pág. 5
MODELO HARVARD........................................................................pág. 8
BIBLIOGRAFÍA ...............................................................................pág. 15
2
INTRODUCCIÓN
Para abordar el tema de los modelos computacionales hay que tener más o
menos claras algunas definiciones básicas:
¿Qué es un COMPUTADOR?
Aunque una definición exacta sería muy difícil de encontrar se podría definir como un
sistema al que se le suministra información en forma de datos para luego devolvernos
unos resultados acordes con la resolución de un determinado problema. Por lo tanto
podríamos decir que el objetivo del computador es básicamente resolver problemas.
Para ello hace uso de los programas.
¿Qué es un PROGRAMA?
Es una secuencia de instrucciones que resuelven determinados problemas planteados.
¿Qué es la INFORMACIÓN?
En general es cualquier conjunto de noticias, informes o datos que nos aportan algún
nuevo conocimiento. En informática más concretamente estos datos se transmiten en
forma de señales.
Antecedentes históricos
----------------------------
3
1642.Pascal a la edad de 19 años inventa para su padre (un contable) una máquina que
suma y resta.
1671.Leibnitz mejora la máquina de Pascal, siendo capaz de multiplicar y dividir.
1777.Mahon construye una máquina aritmética y otra lógica, "Demostrador de
Stanhope".
1820.Charles Babbage construye en parte la máquina analítica, considerándose el
primer computador digital de próposito general. Sus características eran: trabajaba con
una aritmética de 50 digitos decimales, tardaba 1 segundo en hacer sumas y restas y
alrededor de un minuto con las multiplicaciones y divisiones, utilizaba tarjetas
perforadas para las operaciones y las variables.
1854.Boole publica "Las leyes del pensamiento" sobre las cuales son basadas las teorías
matemáticas de Lógica y Probabilidad. Empezaba asi el Álgebra Booleana, que consiste
en un método para resolver problemas de lógica que recurre solamente a los valores
binarios 1 y 0 y a tres operadores: AND, OR y NOT.
1890.Hollerith construye una máquina para tabular el censo.
1914.Torres Quevedo con tecnología electromagnética diseña los esquemas de una
calculadora digital.
1936.Alan Turing contestó a la cuestión de si las matemáticas son "decidibles",
planteada años atras, construyendo un modelo formal de computador, la Máquina de
Turing, y demostrando que había problemas tales que una máquina no podía resolver.
Al mismo tiempo en Estados Unidos contestaba a la misma cuestión Alonzo Chuch,
basándose en una notación formal, que denominó cálculo lambda, para transformar
todas las fórmulas matemáticas a una forma estándar.
1938.Stibitz crea MODEL I, el primer sistema con terminales remotos, que empleaba
números complejos para cálculos balísticos.
1941.Basándose en los resultados de Turing y de Chuch, Zuse diseñó y construyó su
serie de computadores electromecánicos binarios, desde el Z1 hasta el Z3.
1942.Atanasoff construye una máquina de propósito general con tubos de vacío. Fue la
primera computadora electrónica digital.
1943.Mauchy y Eckert construyen el ENIAC (Electronic Numeric Integrator and
Calculator). Sus características: empleaba 18000 tubos de vacío; consumía 150 kW;
tenía una medidas de 30x2,5 metros; utilizaba 20 registros de 10 dígitos decimales;
tardaba 200 microsegundos en la suma, 2,8 milisegundos en la multiplicación y 6
milisegundos en la división; seguía utilizando el sistema de tarjetas perforadas.
1945.Von Neumann tiene una idea innovadora que es almacenar en una memoria rápida
datos e instrucciones para que para modificar un programa baste con modificar las
instrucciones almacenadas en la memoria. A este modelo se le conoce como "Modelo
de von Neumann" y es el que aún en día emplean los computadores.
4
MÁQUINA DE TURING
Alan Mathison Turing, matemático y computador científico inglés, desarrolló en
torno a 1935 y 1945 un modelo computacional hipotético que permite en teoría resolver
cualquier problema matemático siempre y cuando se reduzca a un algoritmo (conjunto
ordenado y finito de operaciones que permiten la resolución de un problema, como por
ejemplo la extracción de raíces cuadradas o el cálculo de una suma, producto o división
de números, etc). De esta forma será posible calcular funciones dadas a partir de las
operaciones más simples posibles y, aunque sea un algoritmo muy complejo, será
posible descomponerlo en una mayor cantidad de pasos hasta resolverlo. Este modelo,
que en principio vino a llamarse Máquina de computación lógica (“Logical Computing
Machine”), pero que en honor a su ideador se le acabó llamando máquina de Turing, es
considerada la precursora de la computación digital moderna a pesar de su sencillez
estructural. Según la Tesis de Church-Turing (llevada a cabo por Alan Turing y Alonzo
Churh a mediados del siglo XX de forma independiente), se demuestra que un problema
es computable si se puede construir una máquina de Turing capaz de llevar a cabo el
procedimiento para resolverlo y que para cualquier otra máquina alternativa a ésta, se
puede crear una Máquina de Turing equivalente capaz de resolver cualquier
computación que se realice en la otra máquina.
5
• Cabezal de lectura-escritura: es un dispositivo capaz de realizar cuatro
operaciones: desplazarse una posición a la derecha respecto a la celda actual,
desplazarse una posición a la izquierda, leer el contenido de la celda en la que se
encuentra y escribir un símbolo distinto al que había sido leído por el cabezal o escribir
nuevamente el que había en la celda.
Por este mismo hecho de que la propia máquina, como si de una mente humana se
tratara, es la que toma las decisiones dependiendo del estado interno del procesador y de
la información externa que el cabezal lee en la cinta, este modelo computacional es
considerado una máquina autómata capaz de alterar su propio programa. Es más, Turing
estaba más interesado en la posibilidad de crear modelos lógicos cuyas acciones se
asemejaran al funcionamiento de la mente, que en las aplicaciones prácticas de un
modelo de computación.
6
MODELO DE JOHN VON NEUMANN
Desde tiempos muy antiguos el hombre ha necesitado hacer cálculos. Para ello se ha
buscado maquinas que lo ayudasen, como el ábaco, las hileras de John Napier… La
primera maquina interesante es la “La Maquina Analítica” de Charles Babbage.
Este modelo tiene varias características clave que se muestran de una manera u otra
en todos los sistemas actuales:
.
7
Los sistemas basados en el modelo de Von Neumann tienen un solo bus para acceder
tanto a datos como a instrucciones y esto es una de las características más incomodas de
este sencillo modelo. Diremos que un microcontrolador es de 4 bit cuando el bus de este
sea de 4 bit, será de 8 bit cuando el bus sea de 8 bit...
Aunque por otra parte se puede considerar una ventaja, ya que al haber un único
cableado (bus) para el acceso a datos e instrucciones, se facilita en gran medida la
conexión de memoria externa a través de las líneas de entrada salida con una mínima
implementación extra de hardware.
Por contra, tenemos que una instrucción puede ocupar más de unbyte con lo que
para poder leer la instrucción completa tendremos que hacer varias lecturas en la
memoria con lo que debemos de emplear varios ciclos de reloj para extraer una
instrucción.
Otra desventaja es que es posible que el contenido del contador del programa (PC) se
corrompa con lo que se podría estar leyendo un dato y tratar de interpretarlo como
instrucción pudiendo producirse como consecuencia un deterioro y caída del sistema.
Normalmente un microprocesador debe de controlar que el PC no haga cosas raras.
Otra de las características que poseen los microcontroladores basados en este tipo de
arquitectura es que suelen tener un repertorio de instrucciones bastante grande. Este tipo
de repertorio se llama CISC del inglés Complex Instruction Set Computer. La
característica principal que este tipo de conjunto de instrucciones que suele ser bastante
elevado y las instrucciones están microcodificadas, es decir, que una instrucción será
decodificada por la CPU en varias instrucciones básicas.
MODELO DE HARVARD
La arquitecturaHarvard se caracteriza por tener la memoria de datos separada de la
memoria del programa y estas a su vez están unidas a la CPU a través de buses
independientes, luego, pueden tener distintos contenidos en la misma dirección.
La arquitectura deHarvard permite a la CPU acceder silmutáneamente a las dos
memorias. Además propicia numerosas ventajas al funcionamiento del sistema.
8
El que la información se almacene en palabras tiene una gran ventaja y es que tanto
el codop como el dato asociado a este están en la misma posición por lo que su lectura
es mucho más rápida. Esta es una gran ventaja ya que dota al microcontrolador de gran
agilidad. La técnica de procesar varias instrucciones al mismo tiempo se conoce como
pipelining o segmentación. Con esta técnica se dividen las instrucciones en distintas
etapas de modo que el procesador puede procesar distintas instrucciones en estas etapas.
Una desventaja de este sistema es que la adición de memoria externa es mucho mas
compleja en incluso a veces imposible.
En la arquitectura
Harvard, la memoria de datos y de programa están separadas,
usando para almacenar las instrucciones lo que se llaman palabras. Palabras las hay de
muchos tamaños como por ejemplo en los microcontroladores PIC. Los PIC de gama
baja usan palabras de 12 bit, los de gama media 14 bit y los de gama alta 16 bit.
Por otro lado esta la arquitecturaVon Neumann que se caracteriza por tener la
memoria de programa y la de datos implementada en un mismo bloque de memoria
compartiendo datos e instrucciones en un mismo bus.
En este tipo de microcontroladores se usan bytes para almacenar datos e
instrucciones.
Un ejemplo de estos microcontroladores son losZilog, National Semiconductors o
los de Motorola.
Ambas arquitecturas tienen ventajas e inconvenientes, como hemos enumerado en
apartados anteriores, y como siempre en el mundo de la electrónica, dependiendo de la
aplicación en la que vayamos a usar el microcontrolador, frecuencia de trabajo,
conexión a otros periféricos etc, deberemos de elegir un microcontrolador u otro.
9
En esta tabla podemos ver una comparación de ambos modelos.
Así pues podemos decir que la principal ventaja de usar mcu´s con conjunto de
instrucciones CISC es que para una instrucción compleja solo usaremos una posición de
memoria al contrario que ocurre con RISC que para realizar por ejemplo una división
debemos de usar varias instrucciones consumiendo más memoria.
Frente a esta ventaja de los repertorios CISC, se nos presenta una desventaja con
respecto a los RISC, y es que el ancho de banda se va reducido considerablemente
debido a que una instrucción va a consumir varios ciclos de instrucción para ejecutarse,
ya lo vimos antes, estos microcontroladores son más lentos que los que usan repertorios
RISC y además puede ser que el conjunto de instrucciones sea bastante grande, véase
Motorola HC11 lo que no es una gran pega pero si mas trabajo para aprendérselo y
aprender a usarlo.
10
SISTEMA DE PROGRAMACIÓN FUNCIONAL
(FP system)
Descripción
Un modelo funcional se caracteriza por tener simplemente funciones sin
variable, en este tipo de sistemas la descripción esta seguida por algunos ejemplos y por
una discusión de varias propiedades del sistema
a) Un conjunto O de objetos
b) Un conjunto F de funciones
11
formularios funcionales sin un sistema funcional (estas limitaciones no se encuentra en
los sistemas funcionales formales, “FFP”)
El poder expresivo de este tipo de sistemas suponga dos sistemas funcionales,
ambos tienen el mismo conjunto de objetos y el mismo conjunto de funciones
primitivas, pero el conjunto de formularios del primero incluye correctamente al
segundo. Suponga también que otros sistemas pueden expresar todas las funciones
computables de objetos, sin embargo podemos decir que el primero es mas expresivo
que el primero cuando todas las funciones expresadas en el segundo pueden ser
duplicadas en el primero, pero usando un formulario no perteneciente al segundo, el
primero puede expresar mas directamente y fácilmente algunas funciones que el
segundo.
La principal razón por la que los sistemas funcionales están considerados mas
simples que otros lenguajes convencionales es que solo usan un sistema fijo y elemental
de nombramiento. Lo más importante es que trata los nombres como funciones que
pueden ser combinadas con otras funciones sin tratamiento especial. Esto le permite la
oportunidad de desarrollar a un nivel más alto las técnicas para manipular y producir
programas superando en este aspecto al sistema de Von Neumann.
Una ventaja de esta álgebra sobre otras técnicas, es que el programador puede
usar su propio lenguaje como un lenguaje de pruebas derivadas.
En el corazón de este álgebra hay leyes y teoremas, las cuales son fáciles de
entender y de justificar, y poderosas para usar. Posiblemente nosotros también
deseamos usar dichas leyes para resolver ecuaciones en las cuales desconocemos si una
ecuación tiene función aparente en ambos lados de la ecuación.
Este álgebra necesita mucho trabajo para proporcionar expansiones para tipos de
ecuaciones largas y para extender sus leyes y teoremas.
12
SISTEMAS FORMALES FUNCIONALES
(FFP System)
Sintaxis
Describimos un conjunto O de objetos y el conjunto E de expresiones en un
sistema funcional formal. Estos dependen de la opción de cierto conjunto A de átomos,
cuál tomamos según lo dado.
Asumimos que T (verdadero), F (falso), ø (secuencia vacía) y # (defecto) pertenecen a
A, así como números de varias clases, etc.
e) Todos los objetos y expresiones están formados por las infinitas combinaciones
y usos de estas reglas.
13
Observaciones informales acerca de los sistemas funcionales
formales
Significado de expresiones; la función semántica _
como fijo y escribimos _ por _ .) Asumimos que D es una secuencia y que _y:D puede
D
14
BIBLIOGRAFÍA
“Programming Languages, A Grand Tour”, Ellis Horowitz. Ed. Computer Science Press
http://www.terra.es/personal/fremiro/arquitectura.htm
http://www.eurobotics.org/hardvardvsvon.html
15