Documente Academic
Documente Profesional
Documente Cultură
Programación
Marco Galindo, M. de J., Marco Simó, J. M, Prieto Blázquez, J., Segret Sala (eds). (2010). Escaneando la
informática. Barcelona: UOC p.101-115
l. Introducción
software, que se concreta en la ingeniería del software (véase el capítulo 6). Para ase
gurar la buena calidad de éste, antes se tienen que hacer unos buenos análisis y
ción que se van proponiendo tienen a menudo una relación directa con las
que han alcanzado su estatus actual y, por otra parte, sus debilidades. Por últi
paradigmas existentes y las características propias de cada uno, así corno algu
nos conceptos del software libre y las diferencias con el software propietario.
2. ¿Qué es un programa? ¿Quién programa?
vídeo para que se active a una hora determinada y grabe, programamos la hora
¿Pero, realmente, tiene todo eso alguna relación con los programas de ordena
dor?
iremos, qué día iremos, qué visitaremos y qué actividades realizaremos, Así, el
to. Aunque eso ya nos va dando ciertas pistas de lo que se considera un progra
ma en el mundo de la informática, más cercanos aún son los otros dos ejem
tícarnente.
Reuniendo estas ideas, podernos acercarnos a la idea de programa, ahora ya
desde el punto de vista infonnático. Diremos, hoy por hoy, que un programa es
cos de datos, etc.". Así, las órdenes que darnos al ordenador se llaman instruc
nador qué tiene que hacer y especificarle c ó m o lo tiene que hacer. Así, tiene que
conocer las instrucciones que se pueden utilizar para que el ordenador las
entienda y las pueda ejecutar. Para hacerlo, como veremos más adelante, tiene
que ser capaz, prlrnero, de escribir un algoritmo (conjunto de pasos) para solu
car.
el avión giraba 180 grados y quedaba cabeza abajo. Después de analizar cuál
podía ser el problema, detectaron que provenía de un signo menos mal coloca
do dentro del programa de navegación del aparato. Este error hacía q u e el apa
rato girara cada vez que cruzaba el ecuador. Menos mal que estas primeras prue
bas las hicieron sobre simulador, ya que si no el susto, sin duda, hubiera sido
mucho mayor.
r11 generación, y los que se utilizan actualmente es muy grande, no sólo por el
cambío de tipos de problemas que hay que resolver sino por las estrategias
persona que hizo un programa para ordenador. Fue su madre, Anabella, quien
introdujo a Ada en las matemáticas, quien, tras conocer a Charles Babbage, tra
unas ciertas propiedades complejas que los relacionan. Babbage nunca pudo
bajo que Ada llevó a cabo con este modelo le ha hecho ganarse el título de pri
tiene un error, se dice que tiene un "bug" (en castel.lano, bicho). Aunque nor
malrnente se relaciona este término con el hecho de que los antiguos ordena
dores fallaban algunas veces porque los bichos quedaban atrapados en los
empezaba a rezar para que ninguna de las válvulas de vacío se fundiera duran
significaron una mejora importante a la hora de "leer" los programas. Cada tar
cayera porque después volver a ordenarlas podía significar una odisea. El orde
instrucciones.
Tarjeta perforada en blanco (Imagen bajo licencia GFDL)
• , •: • , , 1 ,-- - - --- �
- ;:-_:3,==L�-.z=:;3c---"·:11:...:::::::::::c.;:.;-::::::::L::::::�•e:·;:;:-,·1E·:1·::::::i;;c.;:,;::;:.¡..::;,:::::,:1,c·;::;:·+
:.i ;i;:
:;
:;
,.
:3
. 3
111�)12 1 1 1 1 1 1 2
1112111 11211111 11 1 1 1 1 1 1 1 JI? 111lllll11111111lllll11ll111 112
t i , , . , . • • • • • • • • • 1111 .. . . • • • • • • •t•• •• • • ., • • • • • • • • • • ,. lllt
' ' ' ' ' ' ' ,, ,, ' ' ' ' ' ' ' ' ' ' , , , ' ' ,, ' ' '' , , , , , , , , ' ' ' ' ' ' ,, ' & 4 ' , , , ' , , , , , ,,
' ' ' ' ' ' ' '' 4 ' . , , � '
, j .. ,, •• ••• ••• •• ••• �•• ••• •• ••• ••• ••• ••• n �n •�•
,,,,,,, . ... ,,,. , , , ' ' ' ' ' ' ,, '''
, 1 1 � · · • • • • • • • ••• •••� �•• ••• •••• ••• •• w• 11�• • •• •• • •• •�
"' 111 , 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 , , 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
"'
��L-��������������������������·-""�-__/
3.3. El primer programa en la memoria
Hasta aquel momento, para ejecutar un programa entero, lo que se hacía era
Las siglas ENIAC significan Electronic Numericat integrator And Computer. Los
como por ejemplo el ENIAC, no tenían algunas de las características que hoy
tubo de 6 pulgadas.
Con esta memona se construyó una máquina llamada SSEM (Smalt Sea/e
Adrc1,:a de
mcmóna Sensc usar
0 12 15 31
I J 14
l n..�lfU("CÍÓ
• Sólo por curiosidad, a continuación podernos ver las siete instrucciones
(por eso se codifica usando 3 bits) que se podían utilizar para hacer un pro
grama:
en S (Cl=S).
do de signo (A=-S).
da en S (Cl=Cl+S).
1. Un acumulador es un sitio de la memoria del ordenador que se utiliza de manera auxiliar para
hacer operaciones intermedias aparte de la memoria principal (un tubo Williams de 32x32).
- 1 0 1 Se repite la 01 O (A=-S).
El primer programa fue escrito por el propio Tom Kilburn y fue ejecutado el
ro. En la Imagen siguiente podemos ver el "diseño" a mano del primer progra
ma.
Anotaciones a mano del primer programa que se hizo para el Baby
Ot • 11
o•• "
• 'o ll
•••
o, � 1 1
-o�•· ••••
••
0 •• 1 1
•••••
_,
mr
••.
• • •
3.4. Generaciones
se carac teri zan por utilizar ceros (0) y unos (1) para describir los programas.
1 0 1 1 0000 0 1 1 0000 1 Esu. linea contiene una hutruccióo que mueve un valor (61 en he11adecimal)
que pueden ser ejecutadas dtrectamcnte por el procesador y, por lo tanto, son
muy rápidos. Por otra parte, son mucho más complejos de aprender, utilizar y,
sobre lodo, depurar para buscar errores. Aparte, también encontramos que la
ble que los procesadores acepten lenguajes máquina diferentes o incluso que
manera u otra el código a código máquina. Eso se hace para superar las dificul
Tutorlal"). Una aplicación que sólo mostrara por pantalla la frase "Mello World"
p¡o está escrito para ensamblador de un procesador lntel x86 con DOS y utili
zando TASr..if. Hay que advertir que está escrito en hexadecimal, ya que en bina
6f726C64 210024
3.4.2. Segunda generación: Lenguaje ensamblador
11 11 11
Para evitar tener que utilizar el alfabeto de la m á q u i n a (ceros 0 y unos 1") 1
que está muy lejos de lo que entendemos nosotros, se crearon los llamados len-
ejemplo, un programa hecho para lntel no sirve para AMO o Motorola, ya que
mov al, 061 h Esta línea contiene la instrucción mov, que mueve un byte (61 en hexadecimal) en el
registro o/. Esta manera de escribir código es más comprensible que la que hemos
visto anteriormente.
Aunque claramente la introducción de los lenguajes ensamblador irnplicaba
rnícnto interno del ordenador. De ahí surgen los conceptos de lenguajes de pro
nar.
Las principales aplicaciones de estos lenguajes son los kemels (los núcleos de
los sistemas operativos), los drivers de los dispositivos (programas que permiten
IDEAL
STACK lOOH
DATASEG
CODESEG
Start:
MOV DS, AX
INT 21H
INT 21H
END Start
Es normal que, a simple vista, no se entienda, ya que estarnos trabajando en
las partes y los mccanísmos internos del procesador de un ordenador (por ej. los
registros). Por eso se llaman lenguajes de bajo nivel, porque se baja al nivel de
la m á q u i n a .
ral y ahorran al programador el tener que pensar en cada orden mínírna que
if (X>O) factoriat(x) Esta línea comprueba si x es mayor que cero (0). En caso de que así sea
que había habido hasta ahora, sino que están diseñados para algún propósito
desarrollo del software desde sus predecesores. Aun así, la tarea de programar se
mera gran crisis del software, ya que la cantidad de trabajo que se esperaba que
hicieran los prograrnadores superaba con creces el tiempo que tenían para lle
E..sta línea busca en una base de datos todos los registros que tienen
SELECT * FROM USUARIS
como campo de nombre 808. Se puede ver que es casi como el len
WHERE NAME="BOB"
guaje natural (en este caso, el inglés).
ficar.
Algunos tipos de lengua jes de cuarta generación son:
Mathe,natica y SAS)
nes para modelarlos, sin programar un algorumo que lo haga. La mayoría son
lo largo de los a ñ o s noventa, con la idea de sustituir los lenguajes de alto nivel,
hermano{X,Y):- madreOpadre(X,Z), Esta línea dice que X e Y son hermanos si comparten padre o
madreOpadre(Y,Z). madre.
hechos y reglas para modelar la realidad y a partir de ésta, poder inferir las res
Otros presentan los SGL corno los que utilizan una interfaz gráfica o visual