You are on page 1of 46

INDICE

Introduccin........................................................................1
Definiciones........................................................................2
Historia...............................................................................3
Las tendencias de los lenguajes de programacin............4
Lenguajes de Bajo Nivel....................................................8
Clasificacin de los lenguajes de programacin................9
Algunos lenguajes de programacin de alto nivel............14
Evolucin de los lenguajes de programacin...................24
Bibliografa.......................................................................30

INTRODUCCIN
Los ordenadores no hablan nuestro idioma, son maquinas y como tales,
necesitan un lenguaje especifico pensado por el hombre para ellas. Adems,
necesitan constantemente interpretar todas las instrucciones que reciben. Dada
0
la dificultad de comunicacin insalvable entre el computador y el programador,
pronto aparecieron lenguajes de programacin que hacen posible la
comunicacin con el microprocesador, utilizando trminos y smbolos
relacionados con el tipo de problema que se debe resolver, mediante el empleo
de herramientas que brinda la informtica.

Estos lenguajes permiten, por un lado, escribir las operaciones que son
necesarias realizar para resolver el problema de un modo parecido a como se
escribira convencionalmente (es decir, redactar adecuadamente el algoritmo
de resolucin del problema) y, por el otro, se encarga de traducir el algoritmo al
lenguaje mquina (proceso conocido como compilacin) con lo que se le
confiere al programa la capacidad de corre (ser ejecutado) en el ordenador. El
ordenador es en realidad tan slo una mquina virtual, capaz de resolver todos
los problemas que los usuarios seamos capaces de expresar mediante un
algoritmo (programa).

En la actualidad hay muchos tipos de lenguajes de programacin, cada uno de


ellos con su propia gramtica, su terminologa especial y una sintaxis particular.
Por ejemplo, existen algunos creados especialmente para aplicaciones
cientficas o matemticas generales (BASIC, FORTRAN, PASCAL, etc. ); otros,
en cambio, se orientan al campo empresarial y al manejo de textos y ficheros,
es decir, son en realidad fundamentalmente gestores de informacin (COBOL,
PL/1, etc. ), o muy relacionados con el lenguaje mquina del ordenador (como
el C y el ASSEMBLER).

Los ordenadores se programaban en lenguaje mquina pero las dificultades


que esto conllevaba, junto con la enorme facilidad de cometer errores, cuya
localizacin era larga y compleja, hicieron concebir, en la dcada de los 40, la
posibilidad de usar lenguajes simblicos. Los primeros en aparecer fueron los
ensambladores, fundamentalmente consista en dar un nombre (mnemnico) a
cada tipo de instruccin y cada direccin (etiqueta). Al principio s hacia el
programa sobre papel y, despus se traduca a mano con la ayuda de unas
tablas, y se introducan en la mquina en forma numrica, pero pronto
aparecieron programas que se ensamblaban automticamente.

En este trabajo nos podemos dar cuenta de la importancia que tiene la


programacin y la creacin de estos lenguajes para sintetizar la informacin y
agilizar as los procesos sistemticos de los sistemas que trabajan por medio
de computadoras as como la importancia de que estos lenguajes nos permiten
cada da mas cosas debido a su desarrollo al paso de los aos como nos
podemos dar cuenta en este trabajo al igual hace mas fcil el trabajo para el
programador y mas fcil para nosotros los consumistas de tecnologa.

DEFINICIONES
Es complicado definir qu es y qu no es un lenguaje de programacin. Se
asume generalmente que la traduccin de las instrucciones a un cdigo que
comprende la computadora debe ser completamente sistemtica. Normalmente
es la computadora la que realiza la traduccin.

Lenguaje de programacin, en informtica, cualquier lenguaje


artificial que puede utilizarse para definir una secuencia de instrucciones para
su procesamiento por un ordenador o computadora. Es complicado definir
1
qu es y qu no es un lenguaje de programacin. Se asume generalmente
que la traduccin de las instrucciones a un cdigo que comprende la
computadora debe ser completamente sistemtica. Normalmente es la
computadora la que realiza la traduccin.

Un lenguaje de programacin es una notacin para escribir programas, a travs


de los cuales podemos comunicarnos con el hardware y dar as las ordenes
adecuadas para la realizacin de un determinado proceso. Un lenguaje esta
definido por una gramtica o conjunto de reglas que se aplican a un alfabeto
constituido por el conjunto de smbolos utilizados. Los distintos niveles de
programacin existentes nos permiten acceder al hardware, de tal forma que
segn utilicemos un nivel u otro, as tendremos que utilizar un determinado
lenguaje ligado a sus correspondientes traductores.

Conjunto de normas lingsticas (palabras y smbolos) que permiten escribir


un programa y que ste sea entendido por el ordenador y pueda ser trasladado
a ordenadores similares para su funcionamiento en otros sistemas.

Conjunto de instrucciones, ordenes y smbolos reconocibles por autmata, a


travs de su unidad de programacin, que le permite ejecutar la secuencia de
control deseada. Al conjunto de total de estas instrucciones, ordenes y
smbolos que estn disponibles se le llamar lenguajes de programacin del
autmata. El programa esta formado por un conjunto de instrucciones,
sentencias, bloques funcionales y grafismos que indican las operaciones a
realizar. Las instrucciones representan la tarea ms elemental de un programa:
leer una entrada, realizar una operacin, activar una salida, etc. La sentencia
representa el mnimo conjunto de instrucciones o sentencias que realizan una
tarea o funcin compleja: encontrar el valor de una funcin lgica en
combinacin de varias variables, consultar un conjunto de condiciones, etc. El
bloque funcional es el conjunto de instrucciones o sentencias que realizan una
tarea o funcin compleja: contadores, registros de desplazamientos,
transferencias de informacin, etc. Todos estos elementos estn relacionados
entre s mediante los smbolos o grafismos.

Es un conjunto de palabras y smbolos que permiten al usuario generar


comandos e instrucciones para que la computadora los ejecute. Los
lenguajes de programacin deben tener instrucciones que pertenecen a
las categoras ya familiares de entrada/salida, calculo/manipulacin, de
textos, logica/comparacin, y almacenamiento/recuperacin.

2
HISTORIA
Los primeros lenguajes de programacin surgieron de la idea de Charles
Babagge, la cual se le ocurri a este hombre a mediados del siglo XIX. Era un
profesor matemtico de la universidad de Cambridge e inventor ingles, que a
principio del siglo XIX predijo muchas de las teoras en que se basan los
actuales ordenadores. Consista en lo que l denominaba la maquina
analtica, pero que por motivos tcnicos no pudo construirse hasta mediados
del siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la
primera programadora de la historia, pues realizo programas para aqulla
supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no
llego nunca a construirse, los programas de Ada, lgicamente, tampoco
llegaron a ejecutarse, pero si suponen un punto de partida de la programacin,
sobre todo si observamos que en cuanto se empez a programar, los
programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada,
que consistan entre otras, en la programacin mediante tarjetas perforadas. A
pesar de ello, Ada ha permanecido como la primera programadora de la
historia. Se dice por tanto que estos dos genios de antao, se adelantaron un
siglo a su poca, lo cual describe la inteligencia de la que se hallaban dotados.

En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina


de diferencias, un dispositivo mecnico para efectuar sumas repetidas. Pero
Babagge se dedico al proyecto de la mquina analtica, abandonando la
maquina de diferencias, que se pudiera programar con tarjetas perforadas,
gracias a la creacin de Charles Jacquard (francs). Este hombre era un
fabricante de tejidos y haba creado un telar que poda reproducir
automticamente patrones de tejidos, leyendo la informacin codificada en
patrones de agujeros perforados en tarjetas de papel rgido. Entonces Babagge
intento crear la mquina que se pudiera programar con tarjetas perforadas para
efectuar cualquier clculo con una precisin de 20 dgitos. Pero la tecnologa
de la poca no bastaba para hacer realidad sus ideas. Si bien las ideas de
Babagge no llegaron a materializarse de forma definitiva, su contribucin es
decisiva, ya que los ordenadores actuales responden a un esquema anlogo al
de la mquina analtica. En su diseo, la mquina constaba de cinco unidades
bsicas:
1) Unidad de entrada, para introducir datos e instrucciones
2) Memoria, donde se almacenaban datos y resultados intermedios
3) Unidad de control, para regular la secuencia de ejecucin de las operaciones
4) Unidad Aritmtico-Lgica, que efecta las operaciones
5) Unidad de salida, encargada de comunicar al exterior los resultados.

3
Charles Babbage, conocido como el "padre de la informtica" no pudo
completar en aquella poca la construccin del computador que haba soado,
dado que faltaba algo fundamental: la electrnica. El camino sealado de
Babbage, no fue nunca abandonado y siguindolo, se construyeron los
primeros computadores.

Cuando surgi el primer ordenador, el famoso ENIAC (Electronic Numerical


Integrator And Calculator), su programacin se basaba en componentes fsicos,
o sea, que se programaba, cambiando directamente el Hardware de la
maquina, exactamente lo que s hacia era cambiar cables de sitio para
conseguir as la programacin de la maquina. La entrada y salida de datos se
realizaba mediante tarjetas perforadas.

Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de


programarlas, es decir, de almacenar en memoria la informacin sobre la tarea
que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les
indicaban los pasos de clculo, uno por uno.

John Von Neumann desarroll el modelo que lleva su nombre, para describir
este concepto de "programa almacenado". En este modelo, se tiene una
abstraccin de la memoria como un conjunto de celdas, que almacenan
simplemente nmeros. Estos nmeros pueden representar dos cosas: los
datos, sobre los que va a trabajar el programa; o bien, el programa en s.

Cmo es que describimos un programa como nmeros? Se tena el problema


de representar las acciones que iba a realizar la computadora, y que la
memoria, al estar compuesta por switches correspondientes al concepto de bit,
solamente nos permita almacenar nmeros binarios.

La solucin que se tom fue la siguiente: a cada accin que sea capaz de
realizar nuestra computadora, asociarle un nmero, que ser su cdigo de
operacin (opcode) . Por ejemplo, una calculadora programable simple podra
asignar los opcodes :

1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

Supongamos que queremos realizar la operacin 5 * 3 + 2, en la calculadora


descrita arriba. En memoria, podramos "escribir" el programa de la siguiente
forma:

Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el


primer nmero de la frmula 1 3 * En esta localidad, tenemos el opcode que
representa la multiplicacin. 2 3 3 En esta localidad, tenemos el segundo
nmero de la frmula 3 1 + En esta localidad, tenemos el opcode que
representa la suma. 4 2 2 En esta localidad, tenemos el ltimo nmero de la
frmula

Podemos ver que con esta representacin, es simple expresar las operaciones
de las que es capaz el hardware (en este caso, nuestra calculadora
imaginaria), en la memoria.

La descripcin y uso de los opcodes es lo que llamamos lenguaje de mquina .


Es decir, la lista de cdigos que la mquina va a interpretar como instrucciones,
4
describe las capacidades de programacin que tenemos de ella; es el lenguaje
ms primitivo, depende directamente del hardware, y requiere del programador
que conozca el funcionamiento de la mquina al ms bajo nivel.

los lenguajes ms primitivos fueron los lenguajes de mquina. Esto, ya que el


hardware se desarroll antes del software, y adems cualquier software
finalmente tiene que expresarse en el lenguaje que maneja el hardware.

La programacin en esos momentos era sumamente tediosa, pues el


programador tena que "bajarse" al nivel de la mquina y decirle, paso a pasito,
cada punto de la tarea que tena que realizar. Adems, deba expresarlo en
forma numrica; y por supuesto, este proceso era propenso a errores, con lo
que la productividad del programador era muy limitada. Sin embargo, hay que
recordar que en estos momentos, simplemente an no exista alternativa.

El primer gran avance que se dio, como ya se coment, fue la abstraccin dada
por el Lenguaje Ensamblador, y con l, el nacimiento de las primeras
herramientas automticas para generar el cdigo mquina. Esto redujo los
errores triviales, como poda ser el nmero que corresponda a una operacin,
que son sumamente engorrosos y difciles de detectar, pero fciles de cometer.
Sin embargo, an aqu es fcil para el programador perderse y cometer errores
de lgica, pues debe bajar al nivel de la forma en que trabaja el CPU, y
entender bien todo lo que sucede dentro de l.

Con el desarrollo en los 50s y 60s de algoritmos de ms elevado nivel, y el


aumento de poder del hardware, empezaron a entrar al uso de computadoras
cientficos de otras ramas; ellos conocan mucho de Fsica, Qumica y otras
ramas similares, pero no de Computacin, y por supuesto, les era sumamente
complicado trabajar con lenguaje Ensamblador en vez de frmulas. As, naci
el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN
(FORmula TRANslation), que, como su nombre indica, inici como un "simple"
esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por
consiguiente al lenguaje de mquina. A partir de FORTRAN, se han
desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la
mayor abstraccin posible, y facilitar la vida al programador, aumentando la
productividad, encargndose los compiladores o intrpretes de traducir el
lenguaje de alto nivel, al lenguaje de computadora.

Hay que notar la existencia de lenguajes que combinan caractersticas de los


de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es
C: contiene estructuras de programacin de alto nivel, y la facilidad de usar
libreras que tambin son caractersticas de alto nivel; sin embargo, fue
diseado con muy pocas instrucciones, las cuales son sumamente sencillas,
fciles de traducir al lenguaje de la mquina; y requiere de un entendimiento
apropiado de cmo funciona la mquina, el uso de la memoria, etctera. Por
ello, muchas personas consideramos a lenguajes como C (que fue diseado
para hacer sistemas operativos), lenguajes de nivel medio.

5
LAS TENDENCIAS DE LOS LENGUAJES DE
PROGRAMACIN
El estudio de los lenguajes de programacin agrupa tres intereses diferentes; el
del programador profesional, el del diseador del lenguaje y del Implementador
del lenguaje.
Adems, estos tres trabajos han de realizarse dentro de las ligaduras y
capacidades de la organizacin de una computadora y de las limitaciones
fundamentales de la propia "calculabilidad". El termino "el programador" es un
tanto amorfo, en el sentido de que camufla importantes diferencias entre
distintos niveles y aplicaciones de la programacin. Claramente el programador
que ha realizado un curso de doce semanas en COBOL y luego entra en el
campo del procesamiento de datos es diferente del programador que escribe
un compilador en Pascal, o del programador que disea un experimento de
inteligencia artificial en LISP, o del programador que combina sus rutinas de
FORTRAN para resolver un problema de ingeniera complejo, o del
programador que desarrolla un sistema operativo multiprocesador en ADA.
En este trabajo, intentare clarificar estas distinciones tratando diferentes
lenguajes de programacin en el contexto de cada rea de aplicacin diferente.
El "diseador del lenguaje" es tambin un termino algo nebuloso. Algunos
lenguajes (como APL y LISP) fueron diseados por una sola persona con un
concepto nico, mientras que otros (FORTRAN y COBOL) son el producto de
desarrollo de varios aos realizados por comits de diseo de lenguajes.
El "Implementador del lenguaje" es la persona o grupo que desarrolla un
compilador o interprete para un lenguaje sobre una maquina particular o tipos
de maquinas. Mas frecuentemente, el primer compilador para el lenguaje Y
sobre la maquina X es desarrollada por la corporacin que manufactura la
maquina X . Por ejemplo, hay varios compiladores de Fortran en uso; uno
desarrollado por IBM para una maquina IBM, otro desarrollado por DEC para
una maquina DEC, otro por CDC, y as sucesivamente. Las compaas de
software tambin desarrollan compiladores y tambin lo hacen los grupos de
investigacin de las universidades. Por ejemplo, la universidad de Waterloo
desarrolla compiladores para FORTRAN Y PASCAL, los cuales son tiles en un
entorno de programacin de estudiantes debido a su superior capacidad de
diagnostico y velocidad de compilacin.
Hay tambin muchos aspectos compartidos entre los programadores,
diseadores de un lenguaje implementadores del mismo. Cada uno debe
comprender las necesidades y ligaduras que gobiernan las actividades de los
otros dos.
Hay, al menos, dos formas fundamentales desde las que pueden verse o
clasificarse los lenguajes de programacin: por su nivel y por principales
aplicaciones. Adems, estas visiones estn condicionadas por la visin
histrica por la que ha transcurrido el lenguaje. Adems, hay cuatro niveles
distintos de lenguaje de programacin.
Los "Lenguajes Declarativos" son los mas parecidos al castellano o ingles en
su potencia expresiva y funcionalidad estn en el nivel mas alto respecto a los
otros. Son fundamentalmente lenguajes de ordenes, dominados por sentencias
que expresan "Lo que hay que hacer" en ves de "Como hacerlo". Ejemplos de
estos lenguajes son los lenguajes estadsticos como SAS y SPSS y los
lenguajes de bsqueda en base de datos, como NATURAL e IMS. Estos
lenguajes se desarrollaron con la idea de que los profesionales pudieran

6
asimilar mas rpidamente el lenguaje y usarlo en su trabajo, sin necesidad de
programadores o practicas de programacin.
Los lenguajes de " Alto Nivel" son los ms utilizados como lenguaje de
programacin. Aunque no son fundamentalmente declarativos, estos lenguajes
permiten que los algoritmos se expresen en un nivel y estilo de escritura
fcilmente legible y comprensible por otros programadores. Adems, los
lenguajes de alto nivel tienen normalmente las caractersticas de "
Transportabilidad". Es decir, estn implementadas sobre varias maquinas de
forma que un programa puede ser fcilmente " Transportado " (Transferido) de
una maquina a otra sin una revisin sustancial. En ese sentido se llama
"Independientes de la maquina". Ejemplos de estos lenguajes de alto nivel son
PASCAL, APL y FORTRAN (para aplicaciones cientficas), COBOL (para
aplicaciones de procesamiento de datos), SNOBOL( para aplicaciones de
procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia
artificial), C y ADA (para aplicaciones de programacin de sistemas) y PL/I
(para aplicaciones de propsitos generales).
Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientes
de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio
lenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguaje
Ensamblador es simplemente una representacin simblica del lenguaje
maquina asociado, lo cual permite una programacin menos tediosa que con el
anterior. Sin embargo, es necesario un conocimiento de la arquitectura
mecnica subyacente para realizar una programacin efectiva en cualquiera de
estos niveles lenguajes.
Los siguientes tres segmentos del programa equivalentes exponen las
distinciones bsicas entre lenguajes maquina, ensambladores de alto nivel:
Como muestra este ejemplo, a mas bajo nivel de lenguaje mas cerca esta de
las caractersticas de un tipo e maquina particular y ms alejado de ser
comprendido por un humano ordinario. Hay tambin una estrecha relacin
( correspondencia 1:1) entre las sentencias en lenguaje ensamblador y sus
formas en lenguaje maquina codificada. La principal diferencia aqu es que los
lenguajes ensambladores se utilizan smbolos (X, Y, Z, A para " sumar", M para
"multiplicar"), mientras que se requieren cdigos numricos (OC1A4, etc.) para
que lo comprenda la maquina.
La programacin de un lenguaje de alto nivel o en un lenguaje ensamblador
requiere, por tanto, algn tipo de interfaz con el lenguaje maquina para que el
programa pueda ejecutarse. Las tres interfaces ms comunes: un
"ensamblador, un "compilador" y un "interprete". El ensamblador y el
compilador traducen el programa a otro equivalente en el lenguaje X de la
maquina "residente" como un paso separado antes de la ejecucin. Por otra
parte, el interprete ejecuta directamente las instrucciones en un lenguaje Y de
alto nivel, sin un paso de procesamiento previo.
La compilacin es, en general, un proceso ms eficiente que la interpretacin
para la mayora de los tipos de maquina. Esto se debe principalmente a que las
sentencias dentro de un "bucle" deben ser reinterpretadas cada vez que se
ejecutan por un interprete. Con un compilador. Cada sentencia es interpretada
y luego traducida a lenguaje maquina solo una vez.
Algunos lenguajes son lenguajes principalmente interpretados, como APL,
PROLOG y LISP. El resto de los lenguajes -- Pascal, FORTRAN, COBOL, PL/I,
SNOBOL, C, Ada y Modula-2 son normalmente lenguajes compilados. En
algunos casos, un compilador estar utilizable alternativamente para un
lenguaje interpretado (tal como LISP) e inversamente (tal como el interprete

7
SNOBOL4 de los laboratorios Bell).
1
Frecuentemente la interpretacin es preferible a la compilacin en un entorno
de programacin experimental o de educacin, donde cada nueva ejecucin de
un programa implicado un cambio en el propio texto del programa. La calidad
de diagnosis y depuracin que soportan los lenguajes interpretados es
generalmente mejor que la de los lenguajes compilados, puesto que los
mensajes de error se refieren directamente a sentencias del texto del programa
original. Adems, la ventaja de la eficiencia que se adjudica tradicionalmente a
los lenguajes compilados frente a los interpretados puede pronto ser eliminado,
debido a la evolucin de las maquinas cuyos lenguajes son ellos
mismos1lenguajes de alto nivel. Como ejemplo de estos estn las nuevas
maquinas LISP, las cuales han sido diseadas recientemente por Symbolics y
Xerox Corporations.
Los lenguajes de Programacin son tomados de diferentes perspectivas. Es
importante para un programador decidir cuales conceptos emitir o cuales incluir
en la programacin. Con frecuencia el programador es osado a usar
combinaciones de conceptos que hacen al lenguaje "DURO" de usar, de
entender e implementar. Cada programador tiene en mente un estilo particular
de programacin, la decisin de incluir u omitir ciertos tipos de datos que
pueden tener una significativa influencia en la forma en que el Lenguaje es
usado, la decisin de usar u omitir conceptos de programacin o modelos.
Existen cinco estilos de programacin y son los siguientes:
Orientados a Objetos.
Imperativa : Entrada, procesamiento y salidas de Datos.
Funcional : "Funciones", los datos son funciones, los resultados pueden ser
un valor o una funcin.
Lgico : {T, F} + operaciones lgicas (Inteligencia Artificial).
Concurrente : An esta en proceso de investigacin.
El programador, diseador e implementador de un lenguaje de programacin
deben comprender la evolucin histrica de los lenguajes para poder apreciar
por que presentan caractersticas diferentes. Por ejemplo, los lenguajes "mas
jvenes" desaconsejan (o prohben) el uso de las sentencias GOTO como
mecanismo de control inferior, y esto es correcto en el contexto de las filosofas
actuales de ingeniera del software y programacin estructurada. Pero hubo un
tiempo en que la GOTO, combinada con la IF, era la nica estructura de control
disponible; el programador no dispone de algo como la construccin WHILE o
un IF-THEN-ELSE para elegir. Por tanto, cuando se ve un lenguaje como
FORTRAN, el cual tiene sus races en los comienzos de la historia de los
lenguajes de programacin, uno no debe sorprenderse de ver la antigua
sentencia GOTO dentro de su repertorio.
Lo ms importante es que la historia nos permite ver la evolucin de familias de
lenguajes de programacin, ver la influencia que ejercer las arquitecturas y
aplicaciones de las computadoras sobre el diseo de lenguajes y evitar futuros
defectos de diseo aprendido las lecciones del pasado. Los que estudian se
han elegido debido a su mayor influencia y amplio uso entre los
programadores, as como por sus distintas caractersticas de diseo e
implementacin. Colectivamente cubren los aspectos ms importantes con los
que ha de enfrentarse el diseado de lenguajes y la mayora de las
aplicaciones con las que se enfrenta el programador. Para los lectores que
estn interesados en conocer con mas detalle la historia de los lenguajes de
programacin recomendamos las actas de una recin conferencia (1981) sobre
este tema, editadas por Richard Wexelblat. Vemos que FORTRAN I es un

8
ascendente directo de FORTRAN II, mientras que FORTRAN, COBOL, ALGO
60, LISP, SNOBOL y los lenguajes ensambladores, influyeron en el diseo de
PL/I.
Tambin varios lenguajes estn prefijados por las letras ANS. Esto significa que
el American National Standards Institute ha adoptado esa versin del lenguaje
como el estndar nacional. Una vez que un lenguaje esta estandarizado, las
maquinas que implementan este lenguaje deben cumplir todas las
especificaciones estndares, reforzando as el mximo de transportabilidad de
programas de una maquina a otra. La polica federal de no comprar maquinas
que no cumplan la versin estndar de cualquier lenguaje que soporte tiende a
"fortalecer" el proceso de estandarizacin, puesto que el gobierno es, con
mucho, el mayor comprador de computadoras de la nacin.
Finalmente, la notacin algebraica ordinaria, por ejemplo, influyo fuertemente
en el diseo de FORTRAN y ALGOL. Por otra parte, el ingles influyo en el
desarrollo del COBOL. El lambda calculo de Church dio los fundamentos de la
notacin funcional de LISP, mientras que el algoritmo de Markov motivo el estilo
de reconocimiento de formas de SNOBOL. La arquitectura de computadoras de
Von Neumann, la cual fue una evolucin de la maquina ms antigua de Turing,
es el modelo bsico de la mayora de los diseos de computadoras de las
ultimas tres dcadas. Esta maquina no solo influyeron en los primeros
lenguajes sino que tambin suministraron el esqueleto operacional sobre el que
evoluciono la mayora de la programacin de sistemas.
Una discusin ms directa de todos estos primeros modelos no estn entre los
objetivos de este texto. Sin embargo, es importante apuntar aqu debido a su
fundamental influencia en la evolucin de los primeros lenguajes de
programacin, por una parte, y por su estado en el ncleo de la teora de la
computadora, por otra. Mas sobre este punto, cualquier algoritmo que pueda
describirse en ingles o castellano puede escribirse igualmente como una
maquina de Turing (maquina de Von Neumann), un algoritmo de Markov o una
funcin recursiva. Esta seccin, conocida ampliamente como "tesis de Church",
nos permite escribir algoritmos en distintos estilos de programacin (lenguajes)
sin sacrificar ninguna medida de generalidad, o potencia de programacin, en
la transicin.

CLASIFICACION DE LOS
LENGUAJES DE PROGRAMACIN
LENGUAJE MQUINA:
El lenguaje mquina es el nico que entiende directamente la computadora, ya
que esta escrito en lenguajes directamente inteligibles por la mquina
(computadora), utiliza el alfabeto binario, que consta de los dos nicos
smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios). Sus
instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos
0 y 1) que especifican una operacin y, las posiciones (direccin) de memoria
implicadas en la operacin se denominan instrucciones de mquina o cdigo
maquina. Fue el primer lenguaje utilizado en la programacin de computadoras,
pero dejo de utilizarse por su dificultad y complicacin, siendo sustituido por
otros lenguajes ms fciles de aprender y utilizar, que adems reducen la
posibilidad de cometer errores. El lenguaje mquina es el conocido cdigo
binario. Generalmente, en la codificacin de los programas se empleaba el

9
sistema hexadecimal para simplificar el trabajo de escritura. Todas las
instrucciones preparadas en cualquier lenguaje mquina tienen por lo menos
dos partes. La primera es el comando u operacin, que dice a las
computadoras cual es la funcin que va a realizar. Todas las computadoras
tienen un cdigo de operacin para cada una de las funciones. La segunda
parte de la instruccin es el operando, que indica a la computadora donde
hallar o almacenar los datos y otras instrucciones que se van a manipular, el
nmero de operndoos de una instruccin varia en distintas computadoras.

Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a


la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad
de ejecucin superior a cualquier otro lenguaje de programacin.
Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Poca
fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los
programas solo son ejecutables en el mismo procesador (CPU). En la
actualidad, las desventajas superan a las ventajas, lo que hace prcticamente
no recomendables a los lenguajes mquina.

LENGUAJES DE BAJO NIVEL:


Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos,
dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia
es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el
lenguaje maquina por otro ms similar a los utilizados por las personas. Este
intenta desflexibilizar la representacin de los diferentes campos. Esa
flexibilidad se consigue no escribiendo los campos en binario y aproximando la
escritura al lenguaje. A principios de la dcada de los 50 y con el fin de facilitar
la labor de los programadores, se desarrollaron cdigos mnemotcnicos para
las operaciones y direcciones simblicas. Los cdigos mnemotcnicas son los
smbolos alfabticos del lenguaje maquina. La computadora sigue utilizando el
lenguaje maquina para procesar los datos, pero los programas ensambladores
traducen antes los smbolos de cdigo de operacin especificados a sus
equivalentes en el lenguaje maquina. En la actualidad los programadores no
asignan nmeros de direccin reales a los datos simblicos, simplemente
especifican donde quieren que se coloque la primera localidad del programa y
el programa ensamblador se encarga de lo dems, asigna localidades tanto
para las instrucciones como los datos. Estos programas de ensamble o
ensambladores tambin permiten a la computadora convertir las instrucciones
en lenguaje ensamblador del programador en su propio cdigo maquina. Un
programa de instrucciones escrito en lenguaje ensamblador por un
programador se llama programa fuente. Despus de que el ensamblador
convierte el programa fuente en cdigo maquina a este se le denomina
programa objeto. Para los programadores es ms fcil escribir instrucciones en
un lenguaje ensamblador que en cdigo de lenguaje maquina pero es posible
que se requieran dos corridas de computadora antes de que se puedan utilizar
las instrucciones del programa fuente para producir las salidas deseadas.

El lenguaje de bajo nivel es el lenguaje de programacin que el ordenador


puede entender a la hora de ejecutar programas, lo que aumenta su velocidad
de ejecucin, pues no necesita un intrprete que traduzca cada lnea de
instrucciones.
Visto a muy bajo nivel, los microprocesadores procesan exclusivamente
seales electrnicas binarias. Dar una instruccin a un microprocesador
supone en realidad enviar series de unos y ceros espaciadas en el tiempo de

10
una forma determinada. Esta secuencia de seales se denomina cdigo
mquina. El cdigo representa normalmente datos y nmeros e instrucciones
para manipularlos. Un modo ms fcil de comprender el cdigo mquina es
dando a cada instruccin un mnemnico, como por ejemplo STORE, ADD o
JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje de muy
bajo nivel que es especfico de cada microprocesador.

Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que
son, a menudo, difciles de aprender. Ms importante es el hecho de que los
programas escritos en un bajo nivel sean altamente especficos de cada
procesador. Si se lleva el programa a otra maquina se debe reescribir el
programa desde el principio.

Ventajas del lenguaje ensamblador frente al lenguaje mquina: mayor facilidad


de codificacin y, en general, su velocidad de calculo, ahorran tiempo y
requieren menos atencin a detalles. Se incurren en menos errores y los que
se cometen son ms fciles de localizar. Tanto el lenguaje maquina como el
ensamblador gozan de la ventaja de mnima ocupacin de memoria y mnimo
tiempo de ejecucin en comparacin con el resultado de la compilacin del
programa equivalente escrito en otros lenguajes. Los programas en lenguaje
ensamblador son ms fciles de modificar que los programas en lenguaje
mquina.

Desventajas del lenguaje ensamblador: dependencia total de la maquina lo que


impide la transportabilidad de los programas (posibilidad de ejecutar un
programa en diferentes mquinas). El lenguaje ensamblador del PC es distinto
del lenguaje ensamblador del Apple Machintosh. La formacin de los
programadores es ms compleja que la correspondiente a los programadores
de alto nivel, ya que exige no solo las tcnicas de programacin, sino tambin
el conocimiento del interior de la maquina El programador ha de conocer
perfectamente el hardware del equipo, ya que maneja directamente las
posiciones de memoria, registros del procesador y dems elementos fsicos.
Todas las instrucciones son elementales, es decir, en el programa se deben
describir con el mximo detalle todas las operaciones que se han de efectuar
en la maquina para la realizacin de cualquier proceso.
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran
bsicamente en aplicaciones de tiempo real, control de procesos y de
dispositivos electrnicos.

Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente


seales electrnicas binarias. Dar una instruccin a un microprocesador
supone en realidad enviar series de unos y ceros espaciadas en el tiempo de
una forma determinada. Esta secuencia de seales se denomina cdigo
mquina. El cdigo representa normalmente datos y nmeros e instrucciones
para manipularlos. Un modo ms fcil de comprender el cdigo mquina es
dando a cada instruccin un mnemnico, como por ejemplo STORE, ADD o
JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje de
muy bajo nivel que es especfico de cada microprocesador.

Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que
son a menudo difciles de aprender. Ms importante es el hecho de que los
programas escritos en un bajo nivel sean altamente especficos de cada

11
procesador. Si se lleva el programa a otra mquina se debe reescribir el
programa desde el principio.

Lenguaje ensamblador (le):


Este intenta deflexibilizar la representacin de los diferentes campos, esa
flexibilidad se consigue no escribiendo los campos en binario y aproximando
la escritura al lenguaje

LENGUAJES DE ALTO NIVEL:


Estos lenguajes son los mas utilizado por los programadores. Estn diseados
para que las personas escriban y entiendan los programas de un modo mucho
mas fcil que los lenguajes mquina y ensamblador. Un programa escrito en
lenguaje de alto nivel es independiente de la mquina (las instrucciones no
dependen del diseo del hardware o de una computadora en particular), por lo
que estos programas son portables o transportables. Los programas escritos
en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna
modificacin en diferentes tipos de computadoras. Son lenguajes de
programacin en los que las instrucciones enviadas para que el ordenador
ejecute ciertas rdenes son similares al lenguaje humano. Dado que el
ordenador no es capaz de reconocer estas ordenes, es necesario el uso de un
intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que
el sistema pueda entender.
Por lo general se piensa que los ordenadores son mquinas que realizan
tareas de clculos o procesamiento de texto. La descripcin anterior es slo
una forma muy esquemtica de ver una computadora. Hay un alto nivel de
abstraccin entre lo que se pide a la computadora y lo que realmente
comprende. Existe tambin una relacin compleja entre los lenguajes de alto
nivel y el cdigo mquina.

Los lenguajes de alto nivel son normalmente fciles de aprender porque estn
formados por elementos de lenguajes naturales, como el ingls. En BASIC, el
lenguaje de alto nivel ms conocido, los comandos como IF CONTADOR=10
THEN STOP pueden utilizarse para pedir a la computadora que pare si
CONTADOR es igual a diez. Por desgracia para muchas personas esta forma
de trabajar es un poco frustrante, dado que a pesar de que las computadoras
parecen comprender un lenguaje natural, lo hacen en realidad de una forma
rgida y sistemtica.

Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados,


surgen con posterioridad a los anteriores (lenguaje mquina, lenguajes de bajo
nivel o ensamblador) con los siguientes objetivos, entre otros:
Lograr independencia de la maquina, pudiendo utilizar un mismo programa en
diferentes equipos con la nica condicin de disponer de un programa traductor
o compilador, que es suministrado por el fabricante, para obtener el programa
ejecutable en lenguaje binario de la maquina que se trate. Adems, no se
necesita conocer el hardware especifico de dicha maquina. Aproximarse al
lenguaje natural, para que el programa se pueda escribir y leer de una forma
ms sencilla, eliminando muchas de las posibilidades de cometer errores que
se daban en el lenguaje maquina, ya que se utilizan palabras (en ingles) en
lugar de cadenas de smbolos sin ningn significado aparente.

12
Incluir rutinas de uso frecuente, como las de entrada / salida, funciones
matemticas, manejo de tablas, etc., que figuran en una especie de librera del
lenguaje, de manera que se puedan utilizar siempre que se quiera sin
necesidad de programarlas cada vez.
Ventajas de los lenguajes de alto nivel: el tiempo de formacin de los
programadores es relativamente corto comparado con otros lenguajes. La
escritura de programas se basa en reglas sintcticas similares a los lenguajes
humanos, nombres de las instrucciones tales como READ, WRITE, PRINT,
OPEN, etc. Las modificaciones y puestas a punto de los programas son ms
fciles. Reduccin del costo de los programas. Transportabilidad. Permiten
tener una mejor documentacin. Son ms fciles de mantener.

Por lo general se piensa que los ordenadores son mquinas que realizan
tareas de clculos o procesamiento de textos. La descripcin anterior es slo
una forma muy esquemtica de ver una computadora. Hay un alto nivel de
abstraccin entre lo que se pide a la computadora y lo que realmente
comprende. Existe tambin una relacin compleja entre los lenguajes de alto
nivel y el cdigo mquina.

Los lenguajes de alto nivel son normalmente fciles de aprender porque


estn formados por elementos de lenguajes naturales, como el ingls. En
BASIC, el lenguaje de alto nivel ms conocido, los comandos como "IF
CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la
computadora que pare si CONTADOR es igual a 10. Por desgracia para
muchas personas esta forma de trabajar es un poco frustrante, dado que a
pesar de que las computadoras parecen comprender un lenguaje natural, lo
hacen en realidad de una forma rgida y sistemtica.

Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a


punto al necesitarse diferentes traducciones del programa fuente para
conseguir el programa definitivo. No se aprovechan los recursos internos de la
maquina que se explotan mucho mejor en lenguajes mquina y
ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin
de los programas es mucho mayor.

Se puede decir que el principal problema que presentan los lenguajes de alto
nivel es la gran cantidad de ellos que existen actualmente en uso, adems de
las diferentes versiones o dialectos que se han desarrollado de algunos de
ellos. Es difcil establecer una clasificacin general de los mismos, ya que en
cualquiera que se realice habr lenguajes que pertenezcan a mas de uno de
los grupos establecidos. Una clasificacin muy extendida, atendiendo a la
forma de trabajar de los programas y a la filosofa con que fueron concebidos,
es la siguiente:
Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo
de los programas (Cobol, Pascal, C, Ada).
Lenguajes declarativos. Los programas se construyen mediante
descripciones de funciones o expresiones lgicas (Lisp, Prolog).
Lenguajes orientados a objetos. El diseo de los programas se basa
mas en los datos y su estructura. La unidad de proceso es el objeto y en
el se incluyen los datos (variables) y las operaciones que actan sobre
ellos (Smalltalk, C++).

13
Lenguajes orientados al problema. Diseados para problemas
especficos, principalmente de gestin, suelen ser generadores de
aplicaciones.
Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el
principal objetivo de aproximar el diseo y construccin de programas al
lenguaje de las personas.

Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los


lenguajes desde la aparicin de las computadoras, que sigue un cierto
paralelismo con las generaciones establecidas en la evolucin de las mismas:
Primera generacin. Lenguajes maquina y ensambladores.
Segunda generacin. Primeros lenguajes de alto nivel imperativo
(FROTRAN, COBOL).
Tercera generacin. Lenguajes de alto nivel imperativo. Son los mas
utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL,
MODULA).
Cuarta generacin. Orientados bsicamente a las aplicaciones de gestin
y al manejo de bases de datos (NATURAL, SQL).
Quinta generacin. Orientados a la inteligencia artificial y al procesamiento
de los lenguajes naturales (LISP, PROLOG).

Para la mejor compresin se harn unas definiciones:


Programa: es un conjunto de instrucciones escritas en un lenguaje de
programacin que indican a la computadora la secuencia de pasos, para
resolver un problema.
Cdigo fuente: esta creado en algn lenguaje de alto nivel, por lo que es
entendido 100% por el ser humano. Este debe estar complementado por su
documentacin o manuales donde se indica el desarrollo lgico del mismo.
Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre
el programa fuente y el ejecutable.

Intrpretes y compiladores
La traduccin de una serie de instrucciones en lenguaje ensamblador (el cdigo
fuente) a un cdigo mquina (o cdigo objeto) no es un proceso muy
complicado y se realiza normalmente por un programa especial llamado
compilador. La traduccin de un cdigo fuente de alto nivel a un cdigo
mquina tambin se realiza con un compilador, en este caso ms complejo, o
mediante un intrprete. Un compilador crea una lista de instrucciones de cdigo
mquina, el cdigo objeto, basndose en un cdigo fuente. El cdigo objeto
resultante es un programa rpido y listo para funcionar, pero que puede hacer
que falle el ordenador si no est bien diseado. Los intrpretes, por otro lado,
son ms lentos que los compiladores ya que no producen un cdigo objeto,
sino que recorren el cdigo fuente una lnea cada vez. Cada lnea se traduce a
cdigo mquina y se ejecuta. Cuando la lnea se lee por segunda vez, como en
el caso de los programas en que se reutilizan partes del cdigo, debe
compilarse de nuevo. Aunque este proceso es ms lento, es menos susceptible
de provocar fallos en la computadora.

14
ALGUNOS LEGUAJES DE
PROGRAMACIN DE ALTO NIVEL
A continuacin se presentan varios de los mas conocidos y utilizados,
lenguajes de alto nivel.

Ensamblador

Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una
clave de su significado, a la cual comnmente se le conoce como mnemnico ,
tenemos el concepto de Lenguaje Ensamblador . As, podemos definir
simplemente al Lenguaje Ensamblador de la siguiente forma:

Lenguaje Ensamblador es la primera abstraccin del Lenguaje de Mquina ,


consistente en asociar a los opcodes palabras clave que faciliten su uso por
parte del programador

Como se puede ver, el Lenguaje Ensamblador es directamente traducible al


Lenguaje de Mquina, y viceversa; simplemente, es una abstraccin que facilita
su uso para los seres humanos. Por otro lado, la computadora no entiende
directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de
Mquina. Originalmente, este proceso se haca a mano, usando para ello hojas
donde se escriban tablas de programa similares al ejemplo de la calculadora
que vimos arriba . Pero, al ser tan directa la traduccin, pronto aparecieron los
programas Ensambladores, que son traductores que convierten el cdigo
fuente (en Lenguaje Ensamblador) a cdigo objeto (es decir, a Lenguaje de
Mquina).

Una caracterstica que hay que resaltar, es que al depender estos lenguajes del
hardware, hay un distinto Lenguaje de Mquina (y, por consiguiente, un distinto
Lenguaje Ensamblador) para cada CPU. Por ejemplo, podemos mencionar tres
lenguajes completamente diferentes, que sin embargo vienen de la aplicacin
de los conceptos anteriores:

1.Lenguaje Ensamblador de la familia Intel 80x86 2.Lenguaje Ensamblador de


la familia Motorola 68000 3.Lenguaje Ensamblador del procesador POWER,
usado en las IBM RS/6000.

Tenemos 3 fabricantes distintos, compitiendo entre s y cada uno aplicando


conceptos distintos en la manufactura de sus procesadores, su arquitectura y
programacin; todos estos aspectos, influyen en que el lenguaje de mquina y
ensamblador cambie bastante.

Ventajas y desventajas del Lenguaje Ensamblador

15
Una vez que hemos visto la evolucin de los lenguajes, cabe preguntarse: En
estos tiempos "modernos", para qu quiero el Lenguaje Ensamblador?

El proceso de evolucin trajo consigo algunas desventajas, que ahora veremos


como las ventajas de usar el Lenguaje Ensamblador, respecto a un lenguaje de
alto nivel:

1.Velocidad

2.Eficiencia de tamao

3.Flexibilidad

Por otro lado, al ser un lenguaje ms primitivo, el Ensamblador tiene ciertas


desventajas respecto a los lenguajes de alto nivel:

1.Tiempo de programacin 2.Programas fuente grandes 3.Peligro de afectar


recursos inesperadamente 4.Falta de portabilidad

Velocidad

El proceso de traduccin que realizan los intrpretes, implica un proceso de


cmputo adicional al que el programador quiere realizar. Por ello, nos
encontraremos con que un intrprete es siempre ms lento que realizar la
misma accin en Lenguaje Ensamblador, simplemente porque tiene el costo
adicional de estar traduciendo el programa, cada vez que lo ejecutamos.

De ah nacieron los compiladores, que son mucho ms rpidos que los


intrpretes, pues hacen la traduccin una vez y dejan el cdigo objeto, que ya
es Lenguaje de Mquina, y se puede ejecutar muy rpidamente. Aunque el
proceso de traduccin es ms complejo y costoso que el de ensamblar un
programa, normalmente podemos despreciarlo, contra las ventajas de codificar
el programa ms rpidamente.

Sin embargo, la mayor parte de las veces, el cdigo generado por un


compilador es menos eficiente que el cdigo equivalente que un programador
escribira. La razn es que el compilador no tiene tanta inteligencia, y requiere
ser capaz de crear cdigo genrico, que sirva tanto para un programa como
para otro; en cambio, un programador humano puede aprovechar las
caractersticas especficas del problema, reduciendo la generalidad pero al
mismo tiempo, no desperdicia ninguna instruccin, no hace ningn proceso que
no sea necesario.

Para darnos una idea, en una PC, y suponiendo que todos son buenos
programadores, un programa para ordenar una lista tardar cerca de 20 veces
ms en Visual Basic (un intrprete), y 2 veces ms en C (un compilador), que el
equivalente en Ensamblador.

Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve


un candidato lgico como lenguaje.

Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser


muchas veces ms rpido que un programa mal hecho en Ensamblador; sigue
16
siendo sumamente importante la eleccin apropiada de algoritmos y
estructuras de datos. Por ello, se recomienda buscar optimizar primero estos
aspectos, en el lenguaje que se desee, y solamente usar Ensamblador cuando
se requiere ms optimizacin y no se puede lograr por estos medios.

Tamao

Por las mismas razones que vimos en el aspecto de velocidad, los


compiladores e intrpretes generan ms cdigo mquina del necesario; por
ello, el programa ejecutable crece. As, cuando es importante reducir el tamao
del ejecutable, mejorando el uso de la memoria y teniendo tambin beneficios
en velocidad, puede convenir usar el lenguaje Ensamblador. Entre los
programas que es crtico el uso mnimo de memoria, tenemos a los virus y
manejadores de dispositivos (drivers). Muchos de ellos, por supuesto, estn
escritos en lenguaje Ensamblador.

Flexibilidad

Las razones anteriores son cuestin de grado: podemos hacer las cosas en
otro lenguaje, pero queremos hacerlas ms eficientemente. Pero todos los
lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones,
limitan su propia capacidad. Es decir, existen tareas que la mquina puede
hacer, pero que un lenguaje de alto nivel no permite. Por ejemplo, en Visual
Basic no es posible cambiar la resolucin del monitor a medio programa; es
una limitante, impuesta por la abstraccin del GUI Windows. En cambio, en
ensamblador es sumamente sencillo, pues tenemos el acceso directo al
hardware del monitor.

Resumiendo, la flexibilidad consiste en reconocer el hecho de que

Todo lo que puede hacerse con una mquina, puede hacerse en el lenguaje
ensamblador de esta mquina; los lenguajes de alto nivel tienen en una u otra
forma limitantes para explotar al mximo los recursos de la mquina.

Tiempo de programacin

Al ser de bajo nivel, el Lenguaje Ensamblador requiere ms instrucciones para


realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por
otro lado, requiere de ms cuidado por parte del programador, pues es
propenso a que los errores de lgica se reflejen ms fuertemente en la
ejecucin.

Por todo esto, es ms lento el desarrollo de programas comparables en


Lenguaje Ensamblador que en un lenguaje de alto nivel, pues el programador
goza de una menor abstraccin.

Programas fuente grandes

Por las mismas razones que aumenta el tiempo, crecen los programas fuentes;
simplemente, requerimos ms instrucciones primitivas para describir procesos
equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los
programas, y nuevamente reduce la productividad de los programadores.

17
Peligro de afectar recursos inesperadamente

Tenemos la ventaja de que todo lo que se puede hacer en la mquina, se


puede hacer con el Lenguaje Ensamblador (flexibilidad). El problema es que
todo error que podamos cometer, o todo riesgo que podamos tener, podemos
tenerlo tambin en este Lenguaje. Dicho de otra forma, tener mucho poder es
til pero tambin es peligroso.

En la vida prctica, afortunadamente no ocurre mucho; sin embargo, al


programar en este lenguaje vern que es mucho ms comn que la mquina
se "cuelgue", "bloquee" o "se le vaya el avin"; y que se reinicialize. Por qu?,
porque con este lenguaje es perfectamente posible (y sencillo) realizar
secuencias de instrucciones invlidas, que normalmente no aparecen al usar
un lenguaje de alto nivel.

En ciertos casos extremos, puede llegarse a sobreescribir informacin del


CMOS de la mquina (no he visto efectos ms riesgosos); pero, si no la
conservamos, esto puede causar que dejemos de "ver" el disco duro, junto con
toda su informacin.

Falta de portabilidad

Como ya se mencion, existe un lenguaje ensamblador para cada mquina;


por ello, evidentemente no es una seleccin apropiada de lenguaje cuando
deseamos codificar en una mquina y luego llevar los programas a otros
sistemas operativos o modelos de computadoras. Si bien esto es un problema
general a todos los lenguajes, es mucho ms notorio en ensamblador: yo
puedo reutilizar un 90% o ms del cdigo que desarrollo en "C", en una PC, al
llevarlo a una RS/6000 con UNIX, y lo mismo si despus lo llevo a una
Macintosh, siempre y cuando est bien hecho y siga los estndares de "C", y
los principios de la programacin estructurada. En cambio, si escribimos el
programa en Ensamblador de la PC, por bien que lo desarrollemos y muchos
estndares que sigamos, tendremos prcticamente que reescribir el 100 % del
cdigo al llevarlo a UNIX, y otra vez lo mismo al llevarlo a Mac.

FORTRAN
Abreviatura de FORmula TRANslator (traductor de formulas), fue definido
alrededor del ao 1955 en Estados Unidos por la compaa IBM. Es l ms
antiguo de los lenguajes de alto nivel. Antes de l, todos los programas se
escriban en lenguaje ensamblador o en lenguaje mquina. Es un lenguaje
especializado en aplicaciones tcnicas y cientficas. Se caracteriza por su
potencia en los clculos matemticos, pero esta limitado en las aplicaciones de
gestin, manejo de archivos, tratamiento de cadenas de caracteres y edicin de
informes. Es un lenguaje notorio, por la facilidad con que permite expresar una
ecuacin. Muchas de sus caractersticas fueron incorporadas mas tarde en el
primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y
es tambin ampliamente utilizado para aplicaciones en los negocios que no
requieren manejo de grandes archivos de datos. Hasta 1961 se mantuvo como
monopolio de IBM, pero posteriormente se fue implementando en ordenadores
de otros fabricantes. A lo largo de su existencia han aparecido diferentes
versiones, entre las que destaca la adoptada en 1966 por el ANSI (American
National Standards Institute), en la que se definieron nuevas reglas del
lenguaje y se logro la independencia del mismo con respecto a la mquina; es

18
decir, comenzo la portabilidad del lenguaje. Esta versin se denomin
FORTRAN IV o FORTRAN 66, y el idioma se hizo tan popular en los aos 60,
que FORTRAN 66 se volvi el primer idioma en ser regularizado oficialmente
en 1972. En 1977 apareci una nueva versin mas evolucionada que se llamo
FORTRAN V o FORTRAN 77. Est reflejada en el documento ANS X3.9-1978:
Programming Language FORTRAN y define dos niveles del lenguaje
denominados FORTRAN 77 completo y FORTRAN 77 bsico, siendo el
segundo un subconjunto del primero. Incluye, adems, instrucciones para el
manejo de cadenas de caracteres y de archivos, as como otras para la
utilizacin de tcnicas de programacin estructurada. Estas caractersticas
hacer que el lenguaje tambin sea valido para determinadas aplicaciones de
gestin. A mediados de los aos setenta se proporcionaron virtualmente cada
computadora, mini o mainframe, con un sistema FORTRAN 66 normal. Era por
consiguiente posible escribir programas en FORTRAN en cualquier sistema y
estar bastante seguro que estos pudieran moverse para trabajar en cualquier
otro sistema bastante fcil. Esto, y el hecho que pudieran procesarse
programas de FORTRAN muy eficazmente. La ultima normalizacin del
lenguaje, FRONTRAN 90, se encuentra en el documento ANS X3.198-1991 en
la que se incluyen caractersticas como la recursividad, tratamiento paralelo de
tablas y uso de memoria dinmica. Permite expresar los programas de
maneras que se satisfacen mas a un ambiente de la informtica moderna y han
quedado obsoletos muchos de los mecanismos que eran apropiados en
FROTRAN 77. En FROTRAN 90 algunos rasgos de FROTRAN 77 han sido
reemplazados por rasgos mejores, mas seguros y ms eficaces, muchos de
estos fueron quitados del idioma FORTRAN 95. El FRONTRAN tiene la ventaja
de ser un lenguaje compacto que sirve muy bien para satisfacer las
necesidades de los cientficos y los estadsticos de los negocios.

COBOL
Es el lenguaje mas utilizado en las aplicaciones de gestin, creado en 1960 por
un comit denominado CODASYL (COnference on DAta SYstems Languages),
patrocinado por el Departamento de Defensa de Estados Unidos, a fin de
disponer de un lenguaje universal para aplicaciones comerciales, como
expresa su nombre (COmmnon Business Oriented Language).
A lo largo de su existencia ha sufrido diversas actualizaciones. Su primer
estndar fue aprobado por el ANSI en 1968. Posteriormente, en 1974, se
adopta la norma ANS X3.23-1974, que ha perdurado hasta su ultima versin,
COBOL ANS-85, que facilita el diseo estructurado de los programas.
Sus caractersticas ms destacables son las siguientes: se asemeja al lenguaje
natural (ingls), es autodocumentado y ofrece grandes facilidades en el manejo
de archivos, as como en la edicin de informes escritos. Puede emplear
trminos comnmente utilizados en los negocios.
Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la
necesidad de escribir todos los elementos al mximo detalle, la extensin
excesiva en sus sentencias, e incluso duplicacin en algunos casos, y la
inexistencia de funciones matemticas.
No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje
mas utilizado en las aplicaciones de gestin.

PL/I
Fue creado a comienzos de los aos sesenta por IBM para ser usado en sus
equipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL y
FORTRAN se desarrollo el PL/I (Programming Language/I) tomando las

19
mejores caractersticas de los anteriores y aadiendo algunas nuevas, con el
objetivo de obtener un lenguaje lo mas general posible en cuanto a su
implementacin, til para aplicaciones tcnico-cientficas, comerciales, de
proceso de textos, de bases de datos y de programacin de sistemas. Se trata
de un lenguaje de programacin complejo. Compilado y estructurado, es capaz
de gestionar errores y de procesar multitareas, y se emplea en entornos
acadmicos y de investigacin.
Entre sus novedades esta su gran libertad en el formato de escritura de los
programas: soporta la programacin estructurada y diseo modular. Es un
lenguaje flexible y sofisticado. No obstante, no ha superado a sus progenitores
en sus aplicaciones especificas, debido en parte a su amplitud y, por ello, al
tamao de su compilador que hasta ahora solo se poda instalar en grandes
equipos. El elemento bsico de este programa es el enunciado que termina en
punto y coma. Los enunciados se combinan en procedimientos. Un
procedimiento puede representar por completo a un programa pequeo o un
bloque de construccin o modulo de un programa ms complejo.

BASIC
El lenguaje BASIC fue diseado por los profesores John G. Kemeny y Thomas
E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo
principal de proporcionar a los principiantes un lenguaje fcil de aprender, como
se indica en su nombre Beginner's All-purpose Symbolic Instruction Code
(Cdigo de instrucciones simblico de propsito general para principiantes). Es
un lenguaje interactivo muy popular que tiene una aceptacin debido a la
facilidad de su uso, es un idioma simple para aprender y fcil de traducir. Que
s interactivo, permite la comunicacin directa entre el usuario y el sistema de
computo durante la preparacin y uso de los programas.
Entre sus principales novedades estn las de ser un lenguaje interpretado y de
uso conversacional, til para aplicaciones tcnicas y de gestin. Esto, unido a
la popularizacin de las microcomputadoras y computadoras personales, ha
hecho que su utilizacin sea haya extendido enormemente, a la vez que ha
propiciado el surgimiento de una gran diversidad de diversiones que extienden
y se adaptan a necesidades particulares el lenguaje original. Existen multitud
de interpretes y compiladores del lenguaje.

VISUAL BASIC
En mayo de 1991 anuncia de un de un nuevo lenguaje de programacin
llamado visual Basic, el cual produce rpida y efectivamente aplicaciones de
Windows. Cuando la versin 1.0 sali al mercado este fue diseado para ser un
ambiente de programacin ntegramente visual utilizando un editor, compilador
y debugger. La meta era habilitar programas producidos por lenguajes
tradicionales a rpidas aplicaciones Windows de calidad con poco trabajo.

Combinando herramientas grficas y un sistema abierto, el visual Basic ofreca


a los programadores lo que ahora se llama programacin visual

Ventajas:
-1)provee una rpida va para dar prototipos a las ideas de los
programadores
-2)hace todo el trabajo de interfase(GUI)por el programador
-3)reduce increblemente la complejidad y tamao
requerido por las aplicaciones Windows

20
Aplicaciones:
-Bas: un modulo cdigo
-Vbx: un archivo de control definido
-Frm: una forma
-Mak: un archivo de proyecto
-Frx: un archivo de informacin binaria

Q BASIC

Q Basic es un lenguaje de alto nivel, el cual consiste en instrucciones que los


humanos pueden relacionar y entender. El compilador de Qbasic se encarga de
traducir el mismo a lenguaje de mquina.

Un programa es una secuencia de instrucciones. El proceso de ejecutar esas


instrucciones se llama correr el programa. Los programas contienen las
funciones de entrada, procesamiento y salida. La persona que resuelve
problemas mediante escribir programas en la computadora se conoce como
programador. Despus de analizar el problema y desarrollar un plan para
solucionarlo, escribe y prueba el programa que instruye a la computadora como
llevar a cabo el plan. El procedimiento que realiza el programador se define
como "problem solving". Pero es necesario especificar que un programador y
un usuario no son lo mismo. Un usuario es cualquier persona que use el
programa.

Ejemplo de qbasic, para hacer una calculadora

DIM total AS DOUBLE

DIM number AS DOUBLE

DIM secondNumber AS DOUBLE

DIM more AS STRING

DIM moreNumbers AS STRING

DIM operation AS STRING

total = 0

more = "y"

moreNumbers = "c"

CLS

WHILE more = "y"

INPUT "Enter the first number"; number

total = number
21
WHILE moreNumbers = "c"

COLOR 14

PRINT "The total is:"; total

COLOR 7

PRINT "Select an operation"

COLOR 2

PRINT "(+)"

COLOR 5

PRINT "(-)"

COLOR 1

PRINT "(x)"

COLOR 4

INPUT "(/)"; operation

COLOR 7

CLS

IF operation = "+" THEN

REM where we do additions

PRINT "Enter the number to Add to"; total

INPUT secondNumber

total = secondNumber + total

COLOR 14

PRINT "The total is now:"; total

COLOR 7

ELSE

IF operation = "-" THEN

REM subtraction

PRINT "Enter the number to Subtract from"; total


22
INPUT secondNumber

total = total - secondNumber

COLOR 14

PRINT "The total is now:"; total

COLOR 7

ELSE

IF operation = "x" THEN

REM multiplication

PRINT "Enter the number to Multiply"; total; "by"

INPUT secondNumber

total = secondNumber * total

REM * is the multiplication sign in programs

COLOR 14

PRINT "The total is now:"; total

COLOR 7

ELSE

IF operation = "/" THEN

REM division

PRINT "Enter the number to Divide"; total; "by"

INPUT secondNumber

IF secondNumber = 0 THEN

COLOR 4

PRINT "You cannot divide by zero"

COLOR 7

ELSE

total = total / secondNumber

REM / is the division sign in programs


23
END IF

COLOR 14

PRINT "The total is now:"; total

COLOR 7

ELSE

PRINT "you must select an operation"

END IF

END IF

END IF

END IF

INPUT "Do you wish to continue (c) or start with new numbers

(n)";moreNumbers

CLS

WEND

COLOR 14

PRINT "The grand total is:"; total

COLOR 7

INPUT "Do you wish to make more calculations (y - n)"; more

moreNumbers = "c"

REM if we don't put "moreNumbers" back to y, it will always

REM come back to "Do you wish to make more calculations" and never REM
ask

for numbers again

REM (try it)

total = 0

REM if we don't reset the total to 0, it will just

REM keep on adding to the total

24
WEND

END

PASCAL
Fue creado por el matemtico suizo Nicklaus Wirth en 1970, basndose en el
lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Su
nombre proviene del filosofo y matemtico francs del siglo XVII, Blaise Pascal,
que invento la primera maquina tipo mecnico para sumar. Fue el primer gran
lenguaje creado despus de haber sido ampliamente diseminados los
conceptos asociados con la programacin estructurada.
Aunque en principio la idea del diseador era proporcionar un lenguaje
adecuado para la enseanza de los conceptos y tcnicas de programacin, con
el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de
aplicaciones, que posee grandes facilidades para la programacin de sistemas
y diseo grafico.
Aporta los conceptos de tipo de datos, programacin estructurada y diseo
descendente, entre otros, adems de haberse convertido en predecesor de
otros lenguajes ms modernos, como MODULA-2 y ADA.

C
Este lenguaje fue creado en 1972 por Dennis Ritchie a partir del trabajo
elaborado por su colega de los laboratorios Bell Telephone, Ken Thompson.
Estos haban diseado con anterioridad el sistema operativo UNIX, y su
intencin al desarrollar el lenguaje C fue la de conseguir un lenguaje idneo
para la programacin de sistemas que fuese independiente de la maquina, con
el cual escribir su sistema UNIX.
Aunque, como acabo de decir, fue diseado inicialmente para la programacin
de sistemas, posteriormente su uso se ha extendido a ablaciones tcnico-
cientficas, de bases de datos, de proceso de textos, etc.
En 1980 Bjarne Stroustrup, inspirado en el lenguaje Simula67 adicion las
caractersticas de la programacin orientada a objetos incluyendo la ventaja de
una biblioteca de funciones orientadas a objetos) y lo denomino C con clases.
Para 1983 dicha denominacin cambio a la de C++. Con este nuevo enfoque
surge la nueva metodologa que aumenta las posibilidades de la programacin
bajo nuevos conceptos.
La utilizacin optima de este lenguaje se consigue dentro de su entorno natural,
que ese el sistema operativo UNIX, y entre sus caractersticas destaca el uso
de programacin estructurada para resolver tareas de bajo nivel, as como la
amplia librera de rutinas de que dispone. El lenguaje C rene caractersticas
de programacin intermedia entre los lenguajes ensambladores y los lenguajes
de alto nivel; con gran podero basado en sus operaciones a nivel de bits
(propias de ensambladores) y la mayora de los elementos de la programacin
estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje
preferido para el desarrollo de software de sistemas y aplicaciones
profesionales de la programacin de computadoras.

C es un lenguaje de programacin diseado por Dennis Ritchie, de los


Laboratorios Bell, y se instal en un PDP-11 en 1972; se dise para ser el
lenguaje de los Sistemas Operativos UNIX1. A su vez, UNIX es un Sistema
Operativo desarrollado por Ken Thompson, quin utiliz el lenguaje

25
ensamblador y un lenguaje llamado B para producir las versiones originales de
UNIX, en 1970. C se invent para superar las limitaciones de B.

C es un lenguaje maduro de propsitos generales que se desarroll a partir de


estas races; su definicin aparece en 1978 en el apndice ``C Reference
Manual'' del libro The C Programming Language, de Brian W. Kernighan y
Dennis M. Ritchie (Englewood Cliffs, Nueva Jersey, Prentice-Hall 1978), pero el
estndar recomendable ms reciente apareci en junio de 1983, en el
documento de los Laboratorios Bell titulado The C Programming Language-
Reference Manual, escrito por Dennis M. Ritchie generalizando, un programa
en C consta de tres secciones. La primera seccin es donde van todos los
``headers''. Estos ``headers'' son comnmente los ``#define'' y los ``#include''.
Como segunda seccin se tienen las ``funciones''. Al igual que Pascal, en C
todas las funciones que se van a ocupar en el programa deben ir antes que la
funcin principal (main()). Declarando las funciones a ocupar al principio del
programa, se logra que la funcin principal est antes que el resto de las
funciones. Ahora, solo se habla de funciones ya que en C no existen los
procedimientos.

Y como ltima seccin se tiene a la funcin principal, llamada main. Cuando se


ejecuta el programa, lo primero que se ejecuta es esta funcin, y de ah sigue
el resto del programa.

Los smbolos { y } indican ``begin'' y ``end'' respectivamente. Si en una funcin


o en un ciclo while, por ejemplo, su contenido es de solamente una lnea, no es
necesario usar ``llaves'' ({ }), en caso contrario es obligacin usarlos.

Ejemplo de un programa en C :

/*Programa ejemplo que despliega el contenido de "ROL" en pantalla*/

#include <stdio.h>

#define ROL "9274002-1"

despliega_rol() {

printf("Mi rol es : \%s\n", ROL);

void main() {

despliega_rol();

/* Fin programa */

MODULA-2
El lenguaje MODULA fue diseado en 1977 bajo la direccin de Nicklaus Wirth,
creador tambin el lenguaje PASCAL, con la intencin de incluir las
26
necesidades de la programacin de sistemas y dar respuestas a las criticas
recibidas respecto de las carencias del lenguaje PASCAL. En 1979 se realiza
una versin que pasa a denominarse MODULA-2 y que perdura en la
actualidad.
Adems de incluir las caractersticas de su predecesor, este nuevo lenguaje
incorpora las principales carencias de aquel, como la posibilidad de
compilacin separada, creacin de libreras, programacin concurrente, mejora
el manejo de cadenas de caracteres, los procedimientos de entrada/salida y la
gestin de la memoria, etc. adems, posee grandes facilidades para la
programacin de sistemas.
Tambin, debido a sus cualidades didcticas, ha sido ampliamente aceptado
por la comunidad universitaria como herramienta idnea para la enseanza de
la programacin.

ADA
Es l ultimo intento de obtener un nico lenguaje para todo tipo de
aplicaciones, e incluso los ltimos avances de tcnicas de programacin. Su
diseo fue encargado por el Departamento de Defensa de Estados Unidos,
para su uso en servicios militares, a la empresa Honeywell-Bull despus de
una seleccin rigurosa entre varias propuestas realizadas sobre una serie de
requerimientos del lenguaje y de haber evaluado negativamente veintitrs
lenguajes existentes. De estos, se seleccionaron como base para la creacin
del nuevo lenguaje el PASCAL, el ALGOL y el PL/I.
La estandarizacin del lenguaje se publico en 1983 con el nombre de ADA, en
honor de la considerada primera programadora de la historia, Augusta Ada
Byron, condesa de Lovelace.
Entre las caractersticas del lenguaje se encuentran la compilacin separada,
los tipos abstractos de datos, programacin concurrente, programacin
estructurada, libertad de formatos de escritura, etc. Como principal
inconveniente presenta su gran extensin. Los escritores lo llamaron inflexible
e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance
en la tecnologa del software.

LISP
En informtica, acrnimo de List Processing. Un lenguaje de programacin
para ordenadores o computadoras orientado a la generacin de listas,
desarrollado en 1959-1960 por John McCarthy y usado principalmente para
manipular listas de datos o de smbolos. El lenguaje LISP constituy un
cambio radical con respecto a los lenguajes procedurales (FORTRAN,
ALGOL) que se desarrollaban por entonces. El LISP es un lenguaje
interpretado, en el que cada expresin es una lista de llamadas a funciones.
Este lenguaje se sigue utilizando con frecuencia en investigacin y en
crculos acadmicos, y fue considerado durante mucho tiempo el lenguaje
modelo para la investigacin de la inteligencia artificial (IA), aunque el Prolog
ha ganado terreno durante los ltimos aos.

LOGO
En informtica, lenguaje de programacin de ordenadores o computadoras,
desarrollado en 1968 por Seymour Papert en el MIT, que se usa
frecuentemente en la enseanza de lenguaje de programacin a nios. Una
caracterstica importante de Logo son los grficos de tortuga, que permiten al
programador hacer dibujos simples dirigiendo los movimientos de la tortuga en
la pantalla hacia adelante, hacia la derecha o la izquierda. Una vez que
27
dominan el entorno sencillo del dibujo, el programador (normalmente un nio o
una nia) empieza a descubrir las caractersticas ms sofisticadas del lenguaje,
que estn basadas fundamentalmente en el lenguaje de programacin LISP.
Logo est considerado como un lenguaje para la formacin, a pesar de que
algunas empresas intentaron que tuviera una mayor aceptacin en los crculos
profesionales de programacin.

MACRO
En aplicaciones de ordenador o computadora, un conjunto de pulsaciones de
teclas, acciones o instrucciones grabadas y ejecutadas mediante una simple
pulsacin de tecla o una instruccin. As se evita la introduccin repetitiva de
instrucciones, se minimizan los errores tipogrficos y se permite a los
usuarios que no conozcan el programa reproducir conjuntos de instrucciones
previamente grabados por alguien ms experto en la aplicacin. Si la
aplicacin incluye tambin un lenguaje de macros que responda a variables e
instrucciones condicionales, el usuario puede tambin controlar el resultado
de un procedimiento, haciendo que la macro responda de forma diferente
bajo condiciones diversas. En un lenguaje de programacin, tal como el
lenguaje C o ensamblador, una macro es un nombre que define un conjunto
de instrucciones que sern sustituidas por la macro cuando el nombre de sta
aparezca en un programa (proceso denominado expansin de macros) en el
momento de compilar o ensamblar el programa. Las instrucciones de macros
se pueden guardar en el programa mismo o en un archivo separado que el
programa pueda identificar.

RPG
Report Program Operator fue introducido en 1960 como un lenguaje para
duplicar rpidamente el enfoque de proceso utilizado con un equipo de tarjeta
perforada. Este lenguaje fue desarrollado por IBM en 1964. Su uso esta aun
limitado sobre todo para las aplicaciones de negocios que son procesadas en
pequeas computadoras, generar informes comerciales o de negocios. Como
su nombre lo sugiere, el RPG esta diseado para generar los reportes de salida
que resultan del proceso de aplicaciones de negocios.
A pesar de las aplicaciones de actualizacin de archivos, el RPG es un
lenguaje de propsito limitado porque los programas objeto generados por el
compilador de RPG siguen sin desviacin, un ciclo de procesamiento bsico.
Una ventaja del RPG es la relativa facilidad para aprenderlo y usarlo. Dado que
la lgica de la programacin es fija, existen menos reglas formales que en otros
lenguajes.

ALGOL
El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primer
lenguaje de programacin de proceso estructurado de alto nivel. Fue orientado
al uso de quienes participan en proyectos cientficos y matemticos. Un grupo
internacional de matemticos europeos y americanos, pretendan crear un
lenguaje comn normalizado que les permitiera el intercambio de algoritmos,
aunque esta en desuso, fue el primero que incorporo conceptos claves para la
programacin actual.

APL
Sus siglas significan (A Programming Language). Un Lenguaje de
Programacin. Este programa fue desarrollado por Kenneth Inverson en el ao

28
1961 para resolver problemas matemticos. Este lenguaje se caracteriza por su
brevedad y por su capacidad de generacin de matrices y se utiliza en el
desarrollo de modelos matemticos.

PILOT
Programmend Inquiry Language Or Teaching (Consulta, lenguaje o
aprendizaje de investigacin programada) creado en 1969.
Este lenguaje de programacin es utilizado fundamentalmente para crear
aplicaciones destinadas a instrucciones asistidas por computadoras. Se
caracteriza por utilizar un mnimo de sintaxis.

SMALLTALK
SMALLTALK, Lenguaje de Programacin orientado a objetos integrados con un
entorno de desarrollo multiventana. SMALLTALK no es solo un hermoso
lenguaje de computacin orientado a objetos. El entorno de desarrollo merece
similar valoracin y ha sido copiado muchas veces, desde el Sistema Operativo
de Apple MS Windows y Borland Pascal (en una memoria extensin). Muchos
conceptos de SMALLTALK como los browsers y las tcnicas de browsing han
encontrado hoy su rumbo en muchas herramientas de desarrollo de la
generacin X, desarrollado por SMALLTALK poseen un factor divertido-de-
usar. Los cambios se graban instantneamente y los mismos pueden probarse
rpidamente.
SMALLTALK fue desarrollado dentro del Grupo de Investigacin del
Aprendizaje en el Centro de Investigacin de Xerox en palo Alto a comienzos
de los 70. Las principales ideas de SMALLTALK se le atribuyen generalmente
a Alan kay con races en Simula, LISP y SketchPad. Dan Ingalls escribi el
cdigo de las primeras ventanas solapables, los pop-up mens y la clase BitBlt.
Adele Goldberg y Dave Robson escribieron los manuales de referencia para
SMALLTALK y fueron miembros clave del equipo de desarrollo. Un programa
de licenciamiento de Xerox y Xerox Special Information Systems. Sin embargo
la distribucin generalizada a la comunidad de desarrollo no sucedi hasta la
fundacin de una nueva compaa llamada ParcPlace Systems Inc. , Dirigida
por Adele Goldberg.

Un segundo SMALLTALK (SMALLTALK 4) fue desarrollado por Digitalk en los


Angeles California. Este SMALLTALK estaba dirigido a cubrir la necesidad de
un producto pequeo, de alta velocidad, basado en PC.

Object Technology International Inc. (OTI) desarroll un conjunto de


herramientas para proveer el control de inversiones y el manejo de
configuraciones en grandes proyectos. IBM desarroll la familia de productos
VisualAge para SMALLTALK en colaboracin con Object Technology
(antiguamente ParcPlase-Digitalk) e IBM permanecen como los distribuidores
dominantes de entornos de desarrollos en SMALLTALK. Algunos nuevos
SMALLTALK se hallan en etapa de desarrollo.

FORTH
Lenguaje de cuarta generacin, creado en 1970, es un lenguaje estructurado e
interpretado de fcil ampliacin y ofrece una alta funcionalidad en un espacio
reducido. Es un lenguaje de alto nivel del cual derivan en la actualidad casi
todos los lenguajes empleados en los robots.

29
LENGUAJE C++
Se pronuncia ce plus plus. Fue desarrollada por Bjarme Stroustrup en los Bell
Laboratories a principios de la dcada de los 80. C++ introduce la
programacin orientada al objeto en C. Es un lenguaje extremadamente
poderoso y eficiente. C++ es un sper conjunto de C, para aprender C++
significa aprender todo de C, luego aprender programacin orientada al objeto
y el uso de stas con C++.

SIGNOS DE PROGRAMACIN C++.


A. ELEMENTOS SINTACTICOS.
Las palabras claves son aquellas que tienen un significado especial como:

BREAK, DOUBLE, IF, STUCT , CASE, ELSE, INT, SWITCH. CHAR, ENUM,
LONG, TYPEDEF, CONST, FLOAT, RETURN, VOID, DEFAULT, FOR, SIZE OF,
WJHILE,

Los identificadores son nombres que permiten hacer referencia a los diferentes
objetos tratados en el programa y que no son palabras clave. Un identificador
debe comenzar por una letra o el carcter ( ) y puede ir seguido por dgitos,
letras. Se distingue entre maysculas y minsculas.

Los delimitadores son signos especiales que permiten separar y reconocer las
diferentes unidades sintcticas del lenguaje. Los principales signos
delimitadores son:
; se considera el terminador, que es necesario cuando finaliza cada una de
las sentencias o declaraciones.

, separa dos elementos consecutivos de la lista.

() enmarca una lista de parmetros.

[] enmarca la dimensin o el subndice de una tabla.

{} enmarca un bloque de instrucciones o una lista de valores iniciales.

B. OPERADORES ARITMTICOS:

Operan sobre datos numricos y son :

- Resta * producto % modulo


+ suma / divisin -- decremento.
++ incremento

C. OPRADORES RELACIONALES.

Operan sobre elementos de diferentes tipos y evalan un tipo lgico. Son


los siguientes:

mayor que
< menor que
>= mayor o igual que
<= menor igual que
==igual que

30
!= distinto que

D. OPERADORES LGICOS.

Operan sobre tipos lgicos. Pueden ser los siguientes:

Y
O
!! NO

E. FUNCIONES.

Tambin podemos encontrar las funciones matemticas:

Sin (x)
Cos (x)
Tan (x)
Exp (x)
Log (x)
Pow(x,y)
Sqrt (x)
Los ngulos para las funciones trigonomtricas estn dados en radianes.

El C se encuentra en la jerarqua de lenguajes en un nivel intermedio entre


Pascal y el Ensamblador. Pretende ser un lenguaje de alto nivel con la
versatilidad del bajo nivel.

Se dise junto con el sistema operativo UNIX y est muy orientado a


trabajar en su entorno.

En su desarrollo se siguieron una serie de lneas generales tales como:

El compilador debe ser lo ms pequeo y eficiente posible. Pocas


palabras reservadas, esto es, un conjunto reducido de sentencias. No
existe anidamiento de procedimientos.

La entrada/salida no se considera parte del lenguaje en s, sino que se


suministra a travs de funciones de librera. La misma poltica se sigue con
cualquier otro tipo complejo de instrucciones.

Para escribir un programa se debe poder escribir poco texto. Para


lograr esto se reduce el nmero de palabras claves.

Con ello se lleg a un compilador con un poderoso juego de instrucciones,


que permite aumentar la productividad/da de los programadores.

A pesar de ello el C es un lenguaje rpido de aprender, que deriva en


compiladores sencillos de disear, robustos, y que generan objetos pequeos
y eficientes.

Una de las caractersticas ms apreciadas de C es su gran portabilidad,


gracias a que deja en manos de libreras las funciones dependientes de la
mquina, y todo ello sin restringir el acceso a dicha mquina!

31
Estas y otras caractersticas lo hacen adecuado para la programacin en
reas tales como:

- programacin de sistemas
- estructuras de datos y sistemas de bases de datos
- aplicaciones cientficas
- software grfico
- anlisis numrico

DELPHI
Es un sistema de desarrollo de aplicaciones para Windows introducido por
INPRISEen 1995. Basado en el objeto-orientado, objeto del lenguaje
pascal, incluye herramientas de programacin visual y genera programas
ejecutables(archivos .EXE ) incluye un sistema de base de datos Borland,
la cual permite acceder a las bases de datos; dBASE, PARADOX y ODBC.
Delphi tambin utiliza controles de Visual Basic (VBXS).
El cliente del Delphi mejora sus soportes con las bases de datos como;
ORACLE, SYBASE e INFORMIX, del jefe cliente/servidor.

Es un entorno de programacin visual orientado a objetos para desarrollo


rpido de aplicaciones (RAD) de propsito general, incluyendo aplicaciones
cliente/servidor.
Delphi es la versin de Delphi para 32 bits (delphi 3), es decir son casi los
mismos, con la nica diferencia que Delphi 3 es mucho ms mejorado, por
ejemplo contiene un TeeChart, que sirve para los grficos de negocio.

Delphi tiene las siguiente caractersticas:

Rendimiento - con el mejor y ms rpido compilador del mundo.


Empresa e Internet - soluciones cliente y servicio
Desarrollo de aplicaciones rpidas (RAD).
Reusabilidad de componentes, un verdadero entorno orientado a objetos.
Manejo de Base de Datos escalables.
Arquitectura multinivel abierta y dimensionable.
Diseminacin de informacin de base de datos en la Web a una gran
velocidad.

JAVA
Es un lenguaje de programacin para crear programas seguros, porttiles,
orientados a objetos interactivos, para mejorar la entrega de informacin a
travs de Internet, etc.
Java naci como un lenguaje para sistemas embebidos (equipos de propsito
especfico controlados por microchips y software)
James Gosling, a principios de los 90 y empleado de Sun Microsystems, tena
en mente un lenguaje independiente de plataforma, que pudiera correr bajo
cualquier CPU, que fuera sencillo y permitiera desarrollar software libre de
errores.
Trato de adecuar inicialmente el lenguaje C++ para estos propsitos, pero no
cumpli con las expectativas. Se desarroll entonces oak (el primer nombre
para Java) y se prob en un pequeo control remoto.
32
A mediados de 1.994, con el auge de la Web, el equipo de trabajo de Gosling
trabaj en el desarrollo de un Browser basado en Java. WebRunner fu
terminado para finales de 1.994 y se vislumbraron las ventajas de esta nueva
tecnologa.
Despus de esto la carrera en el mundo Java ha sido vertiginosa:
Mayo de 1.995. Sun anuncia Java y HotJava al mundo
Verano de 1.995. Los primeros desarrolladores interesados obtienen de
Sun la versin Alpha del ambiente de desarrollo
Septiembre de 1.995. Tiene lugar el primer Java contest. Sun libera el
primer pre-beta

Ventajas de Java:
Java como lenguaje de programacin presenta un conjunto de ventajas sobre
las dems alternativas en lenguajes de desarrollo:
1. Simple y poderoso
2. Seguro
3. Orientado por Objetos
4. Robusto
5. Interactivo
6. Independiente de arquitectura de hardware
7. Interpretado y rpido
8. Fcil de aprender
9. Herramientas poderosas: threads, excepciones, APIs, RMI, Beans, ...

Diciembre 7, 1.995. Microsoft pide la licencia para desarrollar productos
bajo el lenguaje Java

JAVASCRIPT
Este lenguaje de programacin originalmente fue llamado LIVESCRIPT, pero
luego fue renombrado con el nombre de JAVASCRIPT, con la idea de
capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems. ste
es un complemento ideal del lenguaje HTML, al permitir a la pgina realizar
algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor
del cual depende; JAVASCRIPT es un lenguaje diseado especialmente para
ejecutarlo en internet.

Entre estas tareas, puede estar, por ejemplo, realizar algunos clculos simples,
formatear un texto para que sea ledo por distintas personas de manera
distinta, proveer de un medio de configurar la visualizacin de una pgina,
realizar un prechequeo de validacin en formulario antes de enviarlo, etc.

HTML (hyper text markup language)


El lenguaje HTML, sirve para realizar esas atractivas pginas Web. Se trata de
un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y
grficos dentro del mismo documento, con otros dentro del servidor o incluso
con otros servidores WWW. Es decir, es un editor para combinar textos,
imgenes e incluso sonido y ahora tambin imgenes en movimiento. Es, en
definitiva, la forma de manejar y presentar la informacin en la red.
Para escribir documentos de hipertexto se ha desarrollado un nuevo formato de
datos o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguaje

33
permite dar indicaciones precisas al programa cliente de cmo debe
presentarse el documento en pantalla o al ser impreso.

es el formato usado en la world wide web. Las paginas webs son construidas
con etiquetas y cdigos htlm incrustadas en el texto. Htlm define las fuentes y
los elementos grficos como los que conectan con otros documentos en la red.
Cada conexin o link contiene un URL o direccin de una pagina web residente
en el mismo servidor o cualquier servidor de el mundo, de ah world wide web.

Las versiones mas avanzadas del HTLM ya traen la capacidad de incluir


formas interactivas, fondos predefinidos y tablas de contenido.

El problema de este lenguaje es que no es tan completo como el JAVA o el


JAVASCRIPT, solo puede ser considerado como un lenguaje de presentacin,
incluso, el HTLM es un derivado del SGLM(estndar generalize markup
lenguage) el cual es ampliamente utilizado para publicar documentos. El HTLM
es un documento SGLM con un set de etiquetas arreglado.

El lenguaje HTML es el usado actualmente para escribir textos Hypermediales


en el web.

Tres normas fundamentales:

1.- HTML simplemente texto


Lo primero es saber que un documento HTML es un archivo de texto simple,
luego, se puede editar con cualquier editor de textos.

2.- No importan los Tabs ni los saltos de lnea


Los interpretes HTML no toman en cuenta las tabulaciones, los saltos de lneas
ni los espacios en blanco extra. Esto tiene ventajas o desventajas. La principal
ventaja es que permite obtener resultados uniformes y de buena presentacin
de manera bastante fcil. La principal desventaja es que un documento
HTML, por lo menos se debe usar los comandos <P>... </P> o <BR> para
evitar que quede todo el texto en una sola lnea.
34
3.- Existen 3 caracteres especiales:
< menor que, se usa para indicar el comienzo de un comando HTML
>mayor que, se usa para indicar el trmino de un comando HTML.
& Ampersand, se usa para escribir caracteres especiales (smbolos
matemticos, comerciales, as como el signo menor que y el mayor que
entre otros) en un documento.

Lo primero es conocer los comandos que debe contener todo documento HTML
de ms de una lnea de largo:

EL COMANDO PRRAFO:
El comando <P>... </P> se utiliza como un delimitador de prrafo en HTML.
Inserta automticamente un quiebre de lnea al final del prrafo, y produce un
espaciamiento conveniente entre los diferentes prrafos de un documento.
Tambin en forma adicional permite alinear el texto al centro, a la izquierda o a
la derecha.

EL COMANDO QUIEBRE DE LNEAS:


El comando < BR> permite hacer un quiebre (salto)de lnea.

LOS COMANDOS DE ENCABEZADO:


Los textos en HTML poseen seis niveles de encabezado. Por ejemplo el nivel 1
se usa para las divisiones mayores de texto, el nivel de encabezado 6 se usa
para las divisiones ms chicas de texto.

ESTRUCTURA DE HYPERTEXTO:
Existen dos partes fundamentales de un documento HTML.

ENCABEZADO:
Se inicia mediante el comando<HEAD> y se termina con </HEAD>. Por lo
general se incluyen aqu el ttulo del documento, mediante el comando
<TITLE>... </TITLE>.

CUERPO:
Se inicia mediante el comando <BODY> y se termina con el comando. Dentro
del cuerpo del documento se incluyen cualquier carcter imprimible. Adems es
importante incluir el comando<ADDRESS>... </ADDRESS> al final del cuerpo
pero dentro de l. Dentro del ADDRESS se escribe el nombre del autor del
documento, la organizacin a la que pertenece, su direccin del correo
electrnico y otra informacin que se considere relevante.

HYPERTALK
"HyperTalk" es el lenguaje desarrollado por Dan Winkler para Bill Atkinson, el
creador del "HyperCard" para Apple-Macintosh. Est orientado a la creacin de
aplicaciones conforme al sistema de "hiperarchivos" (sistemas de fichas
interrelacionadas donde se facilita el "navegar" de un archivo a otro).
HyperTalk es un buen ejemplo de lenguaje orientado a objetos. Este tipo de
lenguaje combina la lgica declarativa con los algoritmos (Vea "PROLOG"). Un
programa ya no es una secuencia de instrucciones sino un conjunto de objetos
agrupados en conjuntos, definidos mediante atributos y a los cuales pueden
asociarse instrucciones. As, en HyperCard, existen archivos ("stacks" o "pilas")
que agrupan fichas ("cards"), y cada una de stas contiene campos de datos y
35
botones. Todos son "objetos" que -si bien mantienen entre s una relacin
jerrquica- tienen asociados paquetes de instrucciones ("scripts")
independientes unos de otros. Cada objeto pertenece a un conjunto (como
fichas o botones) que tiene "atributos" propios comunes a todos sus miembros,
y cada atributo tendr un valor comn o especfico para cada caso. Para dar o
buscar dicho valor intervienen "facetas" que son instrucciones (procedimientos)
asociadas.

Perl
Es un lenguaje especializado en el procesamiento de textos, particularmente
extraer y validar las respuestas a cuestionarios incluidos en pginas web.

PHP
Lenguaje que se acopla al HTML (pginas web) para definir procedimientos
que ha de realizar el servidor de web, por ejemplo procesar un formulario,
enviar o extraer datos de una base de datos (acoplndose tambin con un
lenguaje de tipo SQL), enviar una u otra pgina web segn determinadas
condiciones prefijadas por el programador, etc.

PROLOG
Los primeros aos de la dcada del 70 son conocidos como un perodo de
"crisis del software", en que se descubri que la creacin de buenos programas
involucraba costos mayores que los del hardware que los ejecuta. Tambin se
haca patente una creciente necesidad de procesar "conocimientos" (algo
mucho ms amplio y complejo que los datos cuantitativos o meras "secuencias
de caracteres" a los cuales se reducen muchos lenguajes de programacin).
Esta crisis llev a investigar numerosas alternativas, entre las cuales nuevos
lenguajes no basados en instrucciones algortmicas o procedimientos. Si el
hombre "procesa" ms informacin por inferencia lgica que por clculo, no
podra la mquina hacer lo mismo?
PROLOG ("PROgramacin en LOGica") es una respuesta a esta crisis,
producto del avance de la lgica moderna (de tipo funcional). Lo crearon A.
Colmenauer y Ph. Roussel, con la colaboracin de R. Kowalski,
simultneamente en la Universidad de Aix-Marseille (Francia) y Edimburgo
(Gran Bretaa). Se basa en el clculo de predicados de primer orden y en el
principio de resolucin de Robinson. En vez de ser algortmico ("procedural" en
ingls, trmino sin traduccin), es decir concebido como un conjunto de
instrucciones que la mquina debe ejecutar en forma secuencial, es
"declarativo", es decir basado en definiciones (de "hechos" o "reglas", como se
explica ms abajo).

SQL
Lenguaje desarrollado especialmente para facilitar la consulta de bases de
datos (BD), acotando progresivamente la bsqueda (de ah el nombre de
"Sequential Query Language").
Existen hoy numerosas aplicaciones de administracin de bases de datos que
recurren al SQL (Las ms conocidas, potentes - y caras - son Oracle e
Informix).
Hoy se pueden acoplar las bases de datos a hipertextos (pginas web), para lo
cual las buenas aplicaciones ya traen mdulos que hacen la conexin. El
lenguaje PHP del cual hablamos ms arriba tambin sirve para definir
procedimientos de insercin y de consulta de datos en BD que funcionan con
SQL.

36
ASP
Su nombre es Active Server Pages. Es un lenguaje independiente, diseado
por Microsoft para la codificacin eficiente de los scripts de los servidores, que
fueron diseados para ser ejecutados por un servidor Web en respuesta a la
peticin de un URL de un usuario. Los scripts de ASP son similares a otros
scripts de servidores con los que puedes estar familiarizado, que son utilizados
en otras plataformas, como Perl, Python, etc.

Power Builder
Realizado por POWERSOFT. Este sistema de desarrollo de aplicaciones para
un ambiente cliente/servidor de Windows. Soporta varias bases de datos,
incluyendo DB2 y ORACLE, y adems asta empaquetada con la base de datos
WATCON SQL. El power builder provee herramientas de programacin
visuales igual que el lenguaje de programacin POWERSCRIPT. El soporte
para Macintosh, Windows NT y UNIX, tambin esta provisto.

Unix

Ejemplo de Unix:

No todo el "rbol" de directorios est compuesto por directorios de usuario.


Existen muchos de ellos que son de uso general o del propio sistema y con los
que habr que familiarizarse. Los ms importantes son:

El raz, del que "cuelgan" todos.

/bin y /usr/bin

Contienen comandos UNIX ejecutables.

/etc

Es quiz el directorio ms importante. Contiene ficheros de datos y


configuracin del sistema, el fichero de password, configuracin de terminales,
red, etc (de ah su nombre).

/dev

Ficheros de dispositivos E/S.

/usr/man

Manual

/tmp

Directorio para arreglos temporales. TODOS los usuarios pueden leer y escribir
en l.
37
Linux

Linux es una implementacin del sistema operativo UNIX (uno ms de entre los
numerosos clnicos del histrico Unix), pero con la originalidad de ser gratuito y
a la vez muy potente, que sale muy bien parado (no pocas veces victorioso) al
compararlo con las versiones comerciales para sistemas de mayor
envergadura y por tanto tericamente superiores.

EVOLUCION DE LOS LENGUAJES DE


PROGRAMACIN

Basado en el clculo numrico:

Lenguaje poca de creacin Creador

FORTRAN 1955-1957 Backus

IAL , ALGOL 1960-1962 Naur

NPL, MPPL, PL/I 1963 IBM

Orientado a negocios:

Lenguaje poca de creacin Creador

COBOL 1959-1962 Depto. de defensa (EE.


UU. AA.)

Para Inteligencia Artificial:

Lenguaje poca de creacin Creador

LISP 1950 -1959 McCarthy

COMIT Yngve

SNOBOL Laboratorios Bell

38
Prolog

Para sistemas:

Lenguaje poca de creacin Creador

C 1970 Ritchie

Periodo Influencias Lenguajes


1950 - 55 Ordenadores primitivos Lenguajes ensamblador
Lenguajes experimentales
de alto nivel
1956 - 60 Ordenadores pequeos, FORTRAN
caros y lentos ALGOL 58 y 60
Cintas magnticas COBOL
Compiladores e interpretes LISP
Optimizacin del cdigo
1961 - 65 Ord. grandes y caros FORTRAN IV
Discos Magnticos COBOL 61 Extendido
Sistemas operativos ALGOL 60 Revisado
Leng. de propsito general SNOBOL
APL ( como notacin slo)
1966 - 70 Ordenadores de diferentes PL/I
tamaos, velocidades, costes FORTRAN 66 (estandard)
Sistemas de almacenamiento COBOL 65 (estandard)
masivo de datos (caros) ALGOL 68
S.O. multitarea e SNOBOL4
interactivos SIMULA 67
Compil. con optimizacin BASIC
Leng. estandard , APL/360
flexibles y generales
1971 - 75 Micro ordenadores
Sistemas de almacenamiento PASCAL
39
masivo de datos pequeos COBOL 74
y baratos PL /I
Progr. estructurada
Ingeniera del software
Leng. sencillos
1976 - 80 Ord. baratos y potentes ADA
Sistemas distribuidos FORTRAN 77
Prog. tiempo-real PROLOG
Prog. interactiva C
Abstraccin de datos
Prog. con fiabilidad
y fcil mantenimiento

Todo este desarrollo de las computadoras y de los lenguajes de programacin,


suele divisarse por generaciones y el criterio que se determin para determinar
el cambio de generacin no est muy bien definido, pero resulta aparente que
deben cumplirse al menos los siguientes requisitos:
La forma en que estn construidas.
Forma en que el ser humano se comunica con ellas.
Primera Generacin
En esta generacin haba un gran desconocimiento de las capacidades de las
computadoras, puesto que se realiz un estudio en esta poca que determin
que con veinte computadoras se saturara el mercado de los Estados Unidos
en el campo de procesamiento de datos.
Esta generacin abarco la dcada de los cincuenta. Y se conoce como la
primera generacin. Estas mquinas tenan las siguientes caractersticas:
Estas mquinas estaban construidas por medio de tubos de vaco.
Eran programadas en lenguaje de mquina.

En esta generacin las mquinas son grandes y costosas (de un costo


aproximado de ciento de miles de dlares). En 1951 aparece la UNIVAC
(NIVersAl Computer), fue la primera computadora comercial, que dispona de
mil palabras de memoria central y podan leer cintas magnticas, se utiliz para
procesar el censo de 1950 en los Estados Unidos.
En las dos primeras generaciones, las unidades de entrada utilizaban tarjetas
perforadas, retomadas por Herman Hollerith (1860 - 1929), quien adems
fund una compaa que con el paso del tiempo se conocera como IBM
(International Bussines Machines).
Despus se desarroll por IBM la IBM 701 de la cual se entregaron 18
unidades entre 1953 y 1957.

40
Posteriormente, la compaa Remington Rand fabric el modelo 1103, que
competa con la 701 en el campo cientfico, por lo que la IBM desarrollo la 702,
la cual present problemas en memoria, debido a esto no dur en el mercado.
La computadora ms exitosa de la primera generacin fue la IBM 650, de la
cual se produjeron varios cientos. Esta computadora que usaba un esquema de
memoria secundaria llamado tambor magntico, que es el antecesor de los
discos actuales.
Otros modelos de computadora que se pueden situar en los inicios de la
segunda generacin son: la UNIVAC 80 y 90, las IBM 704 y 709, Burroughs
220 y UNIVAC 1105.

Segunda Generacin
Cerca de la dcada de 1960, las computadoras seguan evolucionando, se
reduca su tamao y creca su capacidad de procesamiento. Tambin en esta
poca se empez a definir la forma de comunicarse con las computadoras, que
reciba el nombre de programacin de sistemas.
Las caractersticas de la segunda generacin son las siguientes:
Estn construidas con circuitos de transistores.
Se programan en nuevos lenguajes llamados lenguajes de alto nivel.
En esta generacin las computadoras se reducen de tamao y son de menor
costo. Aparecen muchas compaas y las computadoras eran bastante
avanzadas para su poca como la serie 5000 de Burroughs y la ATLAS de la
Universidad de Manchester.
Algunas de estas computadoras se programaban con cintas perforadas y otras
ms por medio de cableado en un tablero. Los programas eran hechos a la
medida por un equipo de expertos: analistas, diseadores, programadores y
operadores que se manejaban como una orquesta para resolver los problemas
y clculos solicitados por la administracin. El usuario final de la informacin no
tena contacto directo con las computadoras. Esta situacin en un principio se
produjo en las primeras computadoras personales, pues se requera saberlas
"programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su
uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un
buen nmero de horas escribiendo instrucciones, "corriendo" el programa
resultante y verificando y corrigiendo los errores o bugs que aparecieran.
Adems, para no perder el "programa" resultante haba que "guardarlo"
(almacenarlo) en una grabadora de astte, pues en esa poca no haba discos
flexibles y mucho menos discos duros para las PC; este procedimiento poda
tomar de 10 a 45 minutos, segn el programa. El panorama se modific
totalmente con la aparicin de las computadoras personales con mejore
circuitos, ms memoria, unidades de disco flexible y sobre todo con la aparicin
de programas de aplicacin general en donde el usuario compra el programa y
se pone a trabajar. Aparecen los programas procesadores de palabras como el
clebre Word Star, la impresionante hoja de clculo (spreadsheet) Visicalc y
otros ms que de la noche a la maana cambian la imagen de la PC. El
sortware empieza a tratar de alcanzar el paso del hardware. Pero aqu aparece
un nuevo elemento: el usuario.
El usuario de las computadoras va cambiando y evolucionando con el tiempo.
De estar totalmente desconectado a ellas en las mquinas grandes pasa la PC
a ser pieza clave en el diseo tanto del hardware como del software. Aparece el
concepto de human interface que es la relacin entre el usuario y su
computadora. Se habla entonces de hardware ergonmico (adaptado a las
dimensiones humanas para reducir el cansancio), diseos de pantallas
antirreflejos y teclados que descansen la mueca. Con respecto al software se
41
inicia una verdadera carrera para encontrar la manera en que el usuario pase
menos tiempo capacitndose y entrenndose y ms tiempo produciendo. Se
ponen al alcance programas con mens (listas de opciones) que orientan en
todo momento al usuario (con el consiguiente aburrimiento de los usuarios
expertos); otros programas ofrecen toda una artillera de teclas de control y
teclas de funciones (atajos) para efectuar toda suerte de efectos en el trabajo
(con la consiguiente desorientacin de los usuarios novatos). Se ofrecen un
sinnmero de cursos prometiendo que en pocas semanas hacen de cualquier
persona un experto en los programas comerciales. Pero el problema
"constante" es que ninguna solucin para el uso de los programas es
"constante". Cada nuevo programa requiere aprender nuevos controles, nuevos
trucos, nuevos mens. Se empieza a sentir que la relacin usuario-PC no est
acorde con los desarrollos del equipo y de la potencia de los programas. Hace
falta una relacin amistosa entre el usuario y la PC.
Las computadoras de esta generacin fueron: la Philco 212 (esta compaa se
retir del mercado en 1964) y la UNIVAC M460, la Control Data Corporation
modelo 1604, seguida por la serie 3000, la IBM mejor la 709 y sac al
mercado la 7090, la National Cash Register empez a producir mquinas para
proceso de datos de tipo comercial, introdujo el modelo NCR 315.
La Radio Corporation of America introdujo el modelo 501, que manejaba el
lenguaje COBOL, para procesos administrativos y comerciales. Despus sali
al mercado la RCA 601.

Tercera generacin
Con los progresos de la electrnica y los avances de comunicacin con las
computadoras en la dcada de los 1960, surge la tercera generacin de las
computadoras. Se inaugura con la IBM 360 en abril de 1964.3
Las caractersticas de esta generacin fueron las siguientes:
Su fabricacin electrnica esta basada en circuitos integrados.
Su manejo es por medio de los lenguajes de control de los sistemas
operativos.
La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67, 75, 85,
90, 195 que utilizaban tcnicas especiales del procesador, unidades de cinta de
nueve canales, paquetes de discos magnticos y otras caractersticas que
ahora son estndares (no todos los modelos usaban estas tcnicas, sino que
estaba dividido por aplicaciones).
El sistema operativo de la serie 360, se llam OS que contaba con varias
configuraciones, inclua un conjunto de tcnicas de manejo de memoria y del
procesador que pronto se convirtieron en estndares.
2
En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se
consider durante algunos aos como la ms rpida.
En la dcada de 1970, la IBM produce la serie 370 (modelos 115, 125, 135,
145, 158, 168). UNIVAC compite son los modelos 1108 y 1110, mquinas en
gran escala; mientras que CDC produce su serie 7000 con el modelo 7600.
Estas computadoras se caracterizan por ser muy potentes y veloces.
A finales de esta dcada la IBM de su serie 370 produce los modelos 3031,
3033, 4341. Burroughs con su serie 6000 produce los modelos 6500 y 6700 de
avanzado diseo, que se reemplazaron por su serie 7000. Honey - Well
participa con su computadora DPS con varios modelos.
42
A mediados de la dcada de 1970, aparecen en el mercado las computadoras
de tamao mediano, o minicomputadoras que no son tan costosas como las
grandes (llamadas tambin como mainframes que significa tambin, gran
sistema), pero disponen de gran capacidad de procesamiento. Algunas
minicomputadoras fueron las siguientes: la PDP - 8 y la PDP - 11 de Digital
Equipment Corporation, la VAX (Virtual Address eXtended) de la misma
compaa, los modelos NOVA y ECLIPSE de Data General, la serie 3000 y
9000 de Hewlett - Packard con varios modelos el 36 y el 34,
la Wang y Honey - Well -Bull, Siemens de origen alemn, la ICL fabricada en
Inglaterra. En la Unin Sovitica se utiliz la US (Sistema Unificado, Ryad) que
ha pasado por varias generaciones.

Cuarta Generacin
Aqu aparecen los microprocesadores que es un gran adelanto de la
microelectrnica, son circuitos integrados de alta densidad y con una velocidad
impresionante. Las microcomputadoras con base en estos circuitos son
extremadamente pequeas y baratas, por lo que su uso se extiende al mercado
industrial. Aqu nacen las computadoras personales que han adquirido
proporciones enormes y que han influido en la sociedad en general sobre la
llamada "revolucin informtica".
En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de
uso masivo y ms tarde forman la compaa conocida como la Apple que fue la
segunda compaa ms grande del mundo, antecedida tan solo por IBM; y esta
por su parte es an de las cinco compaas ms grandes del mundo.
En 1981 se vendieron 800 00 computadoras personales, al siguiente subi a 1
400 000. Entre 1984 y 1987 se vendieron alrededor de 60 millones de
computadoras personales, por lo que no queda duda que su impacto y
penetracin han sido enormes.
Con el surgimiento de las computadoras personales, el software y los sistemas
que con ellas de manejan han tenido un considerable avance, porque han
hecho ms interactiva la comunicacin con el usuario. Surgen otras
aplicaciones como los procesadores de palabra, las hojas electrnicas de
clculo, paquetes grficos, etc. Tambin las industrias del Software de las
computadoras personales crecen con gran rapidez, Gary Kildall y William Gates
se dedicaron durante aos a la creacin de sistemas operativos y mtodos
para lograr una utilizacin sencilla de las microcomputadoras (son los
creadores de CP/M y de los productos de Microsoft).
No todo son microcomputadoras, por su puesto, las minicomputadoras y los
grandes sistemas continan en desarrollo. De hecho las mquinas pequeas
rebasaban por mucho la capacidad de los grandes sistemas de 10 o 15 aos
antes, que requeran de instalaciones costosas y especiales, pero sera
equivocado suponer que las grandes computadoras han desaparecido; por el
contrario, su presencia era ya ineludible en prcticamente todas las esferas de
control gubernamental, militar y de la gran industria. Las enormes
computadoras de las series CDC, CRAY, Hitachi o IBM por ejemplo, eran
capaces de atender a varios cientos de millones de operaciones por segundo.

Quinta Generacin
En vista de la acelerada marcha de la microelectrnica, la sociedad industrial
se ha dado a la tarea de poner tambin a esa altura el desarrollo del software y
los sistemas con que se manejan las computadoras. Surge la competencia
internacional por el dominio del mercado de la computacin, en la que se
perfilan dos lderes que, sin embargo, no han podido alcanzar el nivel que se

43
desea: la capacidad de comunicarse con la computadora en un lenguaje ms
cotidiano y no a travs de cdigos o lenguajes de control especializados.
Japn lanz en 1983 el llamado "programa de la quinta generacin de
computadoras", con los objetivos explcitos de producir mquinas con
innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya
est en actividad un programa en desarrollo que persigue objetivos
semejantes, que pueden resumirse de la siguiente manera:
Procesamiento en paralelo mediante arquitecturas y diseos especiales
y circuitos de gran velocidad.
Manejo de lenguaje natural y sistemas de inteligencia artificial.
El futuro previsible de la computacin es muy interesante, y se puede esperar
que esta ciencia siga siendo objeto de atencin prioritaria de gobiernos y de la
sociedad en conjunto.

BIBLIGRAFIA
Los documentos empleados para la realizacin de este trabajo han sido
obtenidos de:

WWW.GEOCITIES.COM

WWW.LYCOS.ES

WWW.LAWEBDELPROGRAMADOR.ES

WWW.GOOGLE.COM

WWW.PROGRAMANDO.COM

WWW.TERRA.ES

WWW.YA.COM

INFORMATICA BASICA
CURSO DE PROGRAMACIN COBOL

Peter Abel. IBM PC Assembly Language and Programming. Fourth Edition.


Prentice Hall. 1997.

http://sunsite.dcc.uchile.cl/webmastercl/mirrors/javatutor/

http://highland.dit.upm.es:8000/UNIX/movs1/2dirsist.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node1.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node2.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node3.html
44
http://www.fing.edu.uy/~yemurenk/indexsort.html

http://www.cs.us.es/archive/LinuxFocus/Castellano/May1998/article11.html

Llaccua y Vasquez, Programando con Objetos en Borland Pascal. Ed. San


Marcos

Schildt , Turbo C/C++, manual de referencia. , Osborne/McGraw-Hill.

Watt , David A. Programming Languaje Concepts and Paradigms. University


of Glasgow, Uk. Prentice Hall.

45

You might also like