Sotware parte 1 día 13 de mayo

Anuncio
SOFTWARE PARTE 1
HARDWARE: parte tangible del ordenador
SOFTWARE: (término acuñado como antónimo de hardware), parte del ordenador que no se puede tocar
El software es quizás la parte menos conocida aunque la más empleada, y está relacionada con aspectos de
índole comercial.
Ada Lovelace
- Considerada la primera programadora de la historia.
- Ideó un lenguaje de programación en un intento de sacar más rendimiento a la máquina analítica de
Babbage. Intentaba adaptar esa máquina a diversas situaciones. Esa máquina inicialmente trataba
de solucionar problemas numéricos, y ella pretendió adaptarla a otras facetas.
- Formuló el concepto de subrutina, base actual de todos los desarrollos que existen: pequeñas partes
de programas que se pueden reutilizar en muchas aplicaciones. Sin embargo, quedó desestimada en
su tiempo (tanto por ser mujer como porque en la época no había el suficiente desarrollo del
hardware como para poner sus teorías en marcha).
SOFTWARE
Conjunto de programas, procedimientos, algoritmos y datos relacionados que proporcionan al computador
las instrucciones sobre lo que tiene que hacer y cómo.
Puede proporcionar instrucciones bien directamente al hardware o bien a otras partes del software.
Actualmente hay varios niveles de software que consiguen que cada vez sea más fácil llegar a realizar
aplicaciones muy complejas usando el concepto de subrutina.
Hay un nivel básico de software que contacta directamente con la parte física del que no somos
prácticamente conscientes. Está muy por debajo del nivel de aplicación del programa concreto que usamos
y es imprescindible para la comunicación con la parte física. Ese nivel unido al hardware se viene usando
desde los inicios de la informática. A continuación están los niveles de interacción que nos sirve ya para
interaccionar con el ordenador.
User
Application
Operating system
Hardware
Gran parte del desarrollo de la informática se debe a que se consiguió trasladar la información a un sistema
que fuese fácilmente manejable por máquinas. Se basa en la utilización de interruptores. El desarrollo
mecánico se ha basado en aumentar el número de esos interruptores. Antes del bit los ordenadores eran
analógicos (trataban señales variables). La ventaja principal del uso de las señales variables era que se
aproximaba mucho a aquellas cosas que quería medir, pero la desventaja es que presuponía una
complejidad muy grande de los sistemas y además esos sistemas eran muy cerrados (había que cambiarlos
para que actuaran de otra manera).
Representación de la información:
-
Bit: estado lógico . Podría ser la dualidad verdadero/falso ó 1/0 en binario, o interruptor encendido o
apagado
Byte: 8 bits
Palabra
o 16 bits
o 32 bits
o 64 bits
A partir del interruptor se inicia un desarrollo para pasar de pocos interruptores (transistores) a miles de
millones de ellos en cada uno de los procesadores.
GENERACIONES DE SOFTWARE
Relacionadas con las generaciones de hardware.
1ª generación:
- Los primeros ordenadores se programaban cambiando cables o interruptores, uno por cada bit.
Cambiar de programa suponía rediseñar el ordenador, cambiar el cableado (el software coincidía
prácticamente con el hardware).
- El código utilizado para programar el ordenador era directamente código máquina (secuencias de 1 y
0 que el ordenador es capaz de entender, se sigue usando en la actualidad). Una secuencia seguida
de interruptores apagados o encendidos determina un código, una orden para el ordenador. Es el
único código que realmente entiende cualquier ordenador a nivel de hardware.
- El siguiente paso fue sustituir los interruptores por cintas de papel perforadas: el ordenador leía
cada línea. La luz pasaba por los agujeros y el ordenador leía las líneas de luces que se formaban
(parecido a los lectores de exámenes actuales).
2ª generación
- Se basa en un modelo desarrollado por Von Neumann. Definió una arquitectura que facilitaría el
manejo de los ordenadores mediante el desarrollo del software. Su arquitectura de ordenadores
contenía 2 aspectos fundamentales:
Técnica de programa almacenado (stored program) = hardware simple más software
complejo (separar de alguna forma los elementos del hardware para que hubiera la
posibilidad de memorizar un programa). Definió una estructura con un elemento central de
proceso (hoy en día todavía se llama CPU o procesador) con una serie de elementos entre
los cuales habría una unidad aritmética y un contador de programas. Separado del
procesador habría una memoria (para almacenar software). Nos permite desarrollar
software más complejos. Simplificando, se usaría un hardware sencillo y común, y un
software que es el que cambia, cada vez se hace más complejo.
Control condicional del contador = el programa puede tener más de una secuencia:
• Bifurcación (elegir el hacer una tarea u otra)
• Bucles (repetir alguna de las secuencias, por ejemplo para hacer una suma)
En los primeros ordenadores la primera secuencia se ejecutaba con la segunda, ésta con la
tercera y así sucesivamente. A partir de la arquitectura de Von Neumann cabe la posibilidad
de incrustar la lógica en algún punto y de repetir alguna de las secuencias.
El desarrollo del software permitió que el ordenador pudiese ejecutar diferentes tareas.
o
-
-
Para meter los programas en este modelo: igual que en el anterior, pero podíamos ir memorizando
línea a línea, aunque el sistema de entrada salida sigue siendo de nivel bastante bajo (todavía estaba
esa secuencia de interruptores que se activaban).
Uso de símbolos: ensamblador (dio la posibilidad de que más gente pudiera programar ordenadores
sin saber cómo funciona el ordenador “por dentro”, pues se cambió el código máquina por símbolos,
que en realidad son combinaciones de interruptores, de encendidos y apagados). Se ha seguido
hasta la actualidad. El ensamblador traduce los encendidos y apagados del interruptor a un código
máquina.
El programador no necesita la secuenciación de bits. Transferencia a un lenguaje natural.
Código máquina
Inst. 1: 01001101
Inst. 2: 01101111
…
Inst. 10: 10010101
Ensamblador:
Ins1: load A
Inst 2: Load B
Inst.3: load AB
3ª generación
El paso de unas generaciones a otras transcurrió en poco espacio de tiempo. Actualmente se siguen usando
3ª, 4ª y 5ª generación.
- Primeros pasos hacia el LENGUAJE NATURAL
- Lenguajes de alto nivel (se consideraron a partir de 1970 más o menos, dejando atrás a los de bajo
nivel):
o FORTRAN (Formula Translation o “traducción de fórmula”): de planteamiento matemático,
uno de los primeros lenguajes de alto nivel que se creó. Al sumar por ejemplo 5 elementos
o
o
o
o
o
se simplifica mucho de lo anterior. Necesita de traductores por debajo para llegar a un
código máquina.
Basic (Beginner´s All-purpose Symbolic Instruction Code): intento de código universal, se ha
seguido usando desde que se creó (actualmente lo hay en muchos tipos de ordenadores
como en algunos de Microsoft). Se pretendía que no fuese muy especializado. No vale para
programar grandes programas. Abajo tenemos la misma operación que antes pero para
Basic: cogemos 5 valores, asignamos variables, damos valor a una variable y en un bucle se
van sumando los valores.
PASCAL: junto con ALGOL, estaban destinados a cosas más especializadas como la gestión.
ALGOL (ALgorithmic Language)
C: quizás uno de los más importantes en el desarrollo de la informática. Se desarrolló a partir
del B. En él se pueden escribir subrutinas o subprogramas que pueden usar muchas
aplicaciones o programas. A partir de él se han programado la mayor parte de los sistemas
operativos actuales.
ADA (en honor a Ada Lovelace): se orienta hacia la inteligencia artificial, facilitando la
incrementación de programas de inteligencia artificial.
Todos estos lenguajes son un avance en el camino hacia la idea de que todo el mundo sea capaz de
programar.
FORTRAN
INTEGER :: x(5) = (/1,2,3,4,5/)
Print*,SUM(x)
BASIC
DIM x(5)
A=0
FOR I=1 TO 5
A=AmásI
NEXT
PRINT A
4ª generación
Quizás una de las que más usamos a diario la mayor parte de la gente.
- Programación por parte del usuario final
- Uso de interfaces visuales (ventanas, gráficos, etc.)
- El programa consiste en decir al ordenador QUÉ tiene que hacer, no el CÓMO
-
Ventajas:
o Rapidez en el desarrollo: es muy fácil el decir al ordenador lo que tiene que hacer (por
ejemplo a una hoja de cálculo decirle que nos haga una suma)
o Menor especialización del programador
-
Desventajas:
o Exige un hardware muy potente
5ª generación
- Lenguaje natural: busca llegar a usarlo para comunicarnos con el ordenador
- Aproximación intuitiva al problema
- Primeros pasos del futuro
Prolog:
- Descendiente(X,Y) : - hijo (X,Y).
- Descendiente(X,Y) :-descendiente(X,Z), hijo(Z,Y)
- Hijo(bart, homer)
- Hijo(homer, abuelo)
Resultado:
- ¿-descendiente (bart, W).
- W =homer
- W = abuelo
Ejemplo del intento de acercarse a todo esto en un lenguaje de programación.
SOFTWARE
Aplicaciones
Programación
Sistema
Hardware
Hay una parte del software que tiene que ser específica para el hardware con el que trabaja.
Trabajamos con aplicaciones como el Word, por debajo de las cuales está el sistema (hace que la máquina
entienda lo que estamos escribiendo), y todo esto va encima del harware. Como paralelo a software de
aplicaciones y sistemas estaría el software de programación (como el lenguaje C, que ha permitido el
desarrollo de Windows o Linux).
La informática ha llegado a lo que es hoy en día porque en un determinado momento se ha escogido un
camino y no otro. La mayor parte de los ordenadores tienen una pantalla y un teclado, y esto es porque el
primer software a nivel comercial se realizó para tratar de simplificar el trabajo de trabajadores de oficina. Es
fundamental esta idea, ya que la informática actualmente es lo que es porque en algún momento se tendió
hacia una cosa y no hacia otra.
Descargar