Está en la página 1de 7

QU ES PROGRAMACIN?

HISTORIA Y
LENGUAJES
System

QU ES PROGRAMACIN?
A pesar de que existen muchas definiciones de programacin, y stas han
University

venido cambiando a medida que ha pasado el tiempo, es posible resumir los


elementos en comn que todas tienen, de una manera simple y natural, de la
siguiente manera: Programar es instruir al computador a travs de un conjunto
de rdenes escritas en un lenguaje particular para que realice un conjunto de
International

tareas que el usuario desea.

Basados en esta definicin, es posible definir con un poco ms de detalle


algunos elementos que le son esenciales. En todos los casos, un programa de
computador tiene un conjunto de entradas, que son procesadas de acuerdo
con las instrucciones previamente definidas y que generan un conjunto de
salidas. Son las salidas de un programa las que ofrecen al usuario las respuestas
Whitney

que ste busca; estas salidas dependen evidentemente de los datos de


entrada, pero claramente tambin de las instrucciones que han sido dadas al
computador a travs de un ejercicio de programacin previo.
con

Ahora bien, en la mayor parte de los casos, y sin importar lo complejo que
alianza

pueda ser el conjunto de instrucciones o la tarea encomendada al


computador, las instrucciones son entregadas al computador y ejecutadas por
ste de manera secuencial, una a una. Para que el programa sea exitoso, las
rdenes deben tener un orden particular, que produzca al final los resultados
Grancolombiano-en

esperados, y tienen adems que estar escritas de una manera no ambigua,


porque el computador no tiene la habilidad de entender y decidir qu camino
es el mejor en caso de que existan ambigedades en las instrucciones que
recibe, y de esa manera no sera posible garantizar los resultados de un
programa determinado.

Otro elemento que es muy importante dentro del proceso de elaborar un


programa es el lenguaje en el que se escribe. En primer lugar, el lenguaje en el
que el conjunto de instrucciones es entregado al computador tiene que ser un
Politcnico

lenguaje que ste pueda entender, para que las instrucciones puedan ser
ejecutadas de manera adecuada. En segundo lugar, para realizar la
codificacin de las instrucciones debe existir un lenguaje que sea
comprensible para la persona realizando el proceso. Ya que en la mayor parte
de los casos estos lenguajes son diferentes entre s, es necesario llevar a cabo
un proceso de traduccin de tal manera que lo que el usuario desea sea
escrito en un lenguaje que le permita asegurarse de la correccin de las


instrucciones para despus se traducido una vez ms a un lenguaje que sea
comprensible para la mquina en la que se ejecutarn las instrucciones, de tal
System

manera que los resultados esperados sean obtenidos.

Existen muchos lenguajes de programacin actualmente. En el pasado han


University

existido muchos ms y cada ao se crean lenguajes nuevos o se actualizan


lenguajes existentes. Esto hace que dar un vistazo a los lenguajes de
programacin sea una tarea muy interesante. A continuacin daremos un
vistazo a los principales lenguajes de programacin que han existido, y a su
lugar en la historia, y en el futuro de la programacin.
International

LENGUAJE DE MQUINA. El lenguaje de mquina es, en realidad, el nico


lenguaje que un computador puede entender directamente, y es al lenguaje
al que se deben traducir todos los programas escritos por programadores en el
Whitney

lenguaje de programacin de su eleccin. Es un lenguaje que en trminos de


su estructura depende del tipo de CPU que tiene el computador, pero que en
ltima instancia est basado en los preceptos de la lgica Booleana y que
est formado por conjuntos de bits (Que pueden tomar, como ya sabemos, el
con

valor 1 o 0). Una programa de computador escrito en lenguaje de mquina


puede verse de la siguiente forma: 01100011 01100011 00111100 00001101 10.
alianza

Lo que evidentemente no es muy claro para un lector humano. Es por esto que
los lenguajes de programacin comprensibles para humanos fueron
desarrollados, comenzando por
Grancolombiano-en

ENSAMBLADOR. El lenguaje ensamblador (O Assembly Language en ingls),


fue la primera alternativa al lenguaje de mquina. Es un lenguaje en el que se
utilizan palabras y nmeros mucho ms fciles de recordar, para representar
conjuntos de bits que deben programarse en el computador. Sin embargo, el
hecho de que siga estando vinculado a un tipo particular de plataforma, as
como el hecho de que a pesar de ser ms sencillo que el lenguaje de
mquina siga siendo un conjunto bastante oscuro de instrucciones hacen que
el ensamblador siga siendo una opcin poco escogida como lenguaje de
Politcnico

programacin, excepto en casos muy especficos, como cuando se requiere


desarrollar software que acceda directamente el hardware del computador,
como por ejemplo drivers para componentes fsicos determinados. Pronto, el
ensamblador, que fue creado durante la dcada de 1.950, fue reemplazado
por lenguajes que fueran ms aptos para el aprendizaje y desarrollo por parte
de los programadores. A finales de la dcada de 1.950 apareci

FORTRAN. El nombre de Fortran es un acrnimo de FORmula TRANslator


(Traductor de Frmulas), y hace el nombre mismo hace notorio el enfoque
matemtico del lenguaje. A pesar de que no ofreca mejoras sustanciales en
trminos de rendimiento sobre los programas escritos en ensamblador, escribir


programas e Fortran era muchsimo ms simple. Vale la pena anotar, que a
pesar de ser un lenguaje con medio siglo encima, Fortran ha sido actualizado y
es posible encontrar, sobre todo en el medio acadmico, algunos usuarios del
System

lenguaje hoy en da. El enfoque de nuestro siguiente lenguaje es un poco


diferente

COBOL. El nombre de COBOL es otro acrnimo de Common Business-Oriented


University

Language (Lenguaje Comn Orientado a Negocios), y para hacerle honor a


su nombre, es un lenguaje utilizado desde su comienzo a finales de la dcada
de 1.950 en el desarrollo de aplicaciones de negocios. De hecho, y de
manera similar a lo que pasa con Fortran, existen hoy en da aplicaciones
International

desarrolladas en COBOL aun en funcionamiento. Sin embargo, de vuelta a


los 50s, las cosas no se iban a quedar as. Pronto, otros lenguajes fueron
creados, y trajeron grandes cosas

BASIC. Creado en la dcada de 1.960, BASIC que significa Begginers All-


purpose Symbolic Instruction Code (Cdigo de Instrucciones Simblicas de
Todo Propsito para Principiantes) busc cambiar el enfoque de la evolucin
Whitney

que los lenguajes de programacin venan teniendo. Enfocado en la


simplicidad, BASIC es un lenguaje sencillo, fcil de aprender, pero que a causa
de esa simplicidad, en ocasiones limita lo que el programador puede hacer, o
con

que tanto acceso al hardware del computador puede tener. A pesar de estas
limitaciones, es considerado por muchos uno de los mejores lenguajes para
alianza

aprender a programar, y sigue siendo mantenido y mejorado hoy en da, a


travs de los esfuerzos de compaas como Microsoft que han desarrollado
diferentes compiladores para el lenguaje.
Grancolombiano-en

PASCAL, SMALLTALK Y LENGUAJE B. El trabajo en Pascal comenz a finales de la


dcada de 1.960, y el lenguaje como tal fue liberado en 1.970. Presentando
grandes avances en trminos de usabilidad y flexibilidad respecto a los
lenguajes que lo precedieron, Pascal es usado hoy en da an en ambientes
acadmicos e incluso se escoge como el lenguaje predilecto para ensear a
programar en varios centros educativos. Por su parte, Smalltalk fue importante
porque fue el primer lenguaje orientado por objetos (grosso modo, esto quiere
decir que sigue una aproximacin en la cual conceptos importantes del
programa y el sistema son vistos como representaciones de objetos del mundo
Politcnico

real, con ciertos atributos, y conteniendo todas las capacidades necesarias


para accederlos y modificarlos), y B fue importante por lo que vino despus
de B. Y lo que viene despus de B, naturalmente es

C. El lenguaje C fue creado en 1.972 por Dennis Ritchie basndose en el


lenguaje B creado con anterioridad. Pensado para ofrecer la flexibilidad que
Fortran y COBOL no tenan, pronto C se convirti en el lenguaje predilecto
para el desarrollo de aplicaciones de software. Una de las ventajas de C es
que su estructura y sintaxis son mucho ms comprensibles para los
programadores que las de los lenguajes anteriores, lo que hace que


programar en C sea un ejercicio mucho ms intuitivo y gil que programar en
otros lenguajes. Desde luego, los programas escritos en C deben ser traducidos
al lenguaje de mquina correspondiente al computador en que se ejecutarn,
System

y este proceso lo realiza un programa especializado conocido como el


compilador. Hoy en da existen compiladores de programas escritos en C para
prcticamente cualquier sistema operativo y plataforma de hardware, lo que
University

hace de C un lenguaje fcilmente portable a otros computadores y


arquitecturas. Sin embargo, y a pesar de todas las ventajas que presenta, C
puede ser mejorado. El proceso de mejora de C dio como fruto un lenguaje
ms poderoso, ms flexible y ms seguro, conocido como
International

C++. C++ es un lenguaje de propsito general nacido con base en C. Creado


a mediados de la dcada de 1.980, una de las principales ventajas y
diferencias de C++ es que es un lenguaje orientado por objetos, lo que lo hace
mucho ms poderoso que su antecesor. Sin embargo, el lado opuesto de ese
poder, es que el aprendizaje de C++ puede ser un proceso relativamente
complicado, y alcanzar real dominio del lenguaje es un proceso que no es
Whitney

breve. Sin embargo, la recompensa de este esfuerzo es el dominio de un


lenguaje que permite realizar desarrollos prcticamente a cualquier escala.
Hoy en da, existen muchos compiladores para C++ en prcticamente
cualquier plataforma. Gracias a esto y a las virtudes del lenguaje, C++ es uno
con

de los principales lenguajes de desarrollo.


alianza

JAVA. Java es un lenguaje creado por Sun Microsystems en la dcada de


1.990. Liberado en 1.995, est basado, al menos en trminos de estructura
sintctica en C++. No obstante este hecho, las diferencias entre los dos
lenguajes son amplias. Java es un lenguaje basado en el paradigma de
Grancolombiano-en

objetos, pero carece de las capacidades de acceso directo y a bajo nivel al


sistema que ofrece C. Sin embargo, Java tiene una ventaja muy grande frente
a sus competidores, y es que fue diseado para ser independiente de la
plataforma. Esto quiere decir que el cdigo escrito en Java puede ser
ejecutado en computadores corriendo bajo diferentes sistemas operativos sin
tener que ser modificado. Este proceso requiere que el cdigo original escrito
en Java deba ser precompilado hasta traducirlo a un lenguaje intermedio
(conocido como byte-code), que luego es interpretado por una mquina
virtual en el computador de destino, que se encarga de la compilacin final,
Politcnico

de tal manera que se genere el cdigo adecuado para el computador y


sistema operativo sobre el que se desee que se ejecute la aplicacin. A pesar
de (o gracias a) estas caractersticas, Java es uno de los lenguajes ms
ampliamente utilizados hoy en da, y la tendencia no tiene trazas de parar.

OTROS. Existen otros muchos lenguajes de programacin aparte de aquellos


de propsito general presentados hasta ahora. Algunos estn orientados
especficamente al desarrollo de pginas web (HTML, XHTML por ejemplo),
otros son lenguajes de generacin de scripts (Porciones de cdigo escritas de
manera simple y que no tienen que ser compiladas previamente, sino que son


interpretadas cuando se ejecutan), tales como Ruby, Javascript, ActionScript.
Finalmente, hay lenguajes diseados para escribir y ejecutar sentencias sobre
bases de datos, el ms popular de los cuales es SQL.
System

QU SE NECESITA PARA ESCRIBIR PROGRAMAS?


University

Una vez se ha determinado el problema a solucionar, y se ha escogido el


lenguaje en el que se escribir el programa que lo solucione, el siguiente paso
es efectivamente escribir el programa correspondiente. A pesar de que es
posible llevar a cabo este proceso desde ceros, actualmente no es necesario,
International

y de hecho, dada la complejidad de los problemas, los lenguajes y las


plataformas en que sern ejecutados, no es lo ms recomendable. Vale la
pena anotar aqu que antes de que se llegar al nivel de crecimiento y avance
de las estrategias de desarrollo de software con que se cuenta hoy, los
primeros desarrolladores no tuvieron casi herramientas que facilitaran sus
procesos (Recuerden que en algn punto, los programas tuvieron que ser
Whitney

escritos en lenguaje de mquina).

Actualmente sin embargo, los desarrolladores cuentan, y de hecho necesitan


un conjunto de herramientas que no solamente les hacen la vida ms simple.
con

Sin ellas, no sera posible desarrollar programas funcionales, en los tiempos y


bajo las condiciones de calidad que se requieren hoy en da.
alianza

En primera instancia, se requiere un Ambiente de Desarrollo. Este es una


aplicacin de software especializada en permitir la escritura de otros
programas utilizando un lenguaje determinado. De manera ideal, un ambiente
Grancolombiano-en

de desarrollo no solamente deja que el programador escriba cdigo en l, sino


que participa activamente en el proceso, resaltando la sintaxis del cdigo
escrito de tal manera que sea ms fcil de leer, haciendo sugerencias durante
la escritura, completando por ejemplo las palabras de cdigo ms frecuentes,
e identificando los errores de escritura cometidos por el programador. Adems
de esto, una vez el cdigo ha sido escrito, un ambiente de desarrollo ofrece
herramientas para verificar que la ejecucin se est dando de la manera que
el programador espera, verificando paso a paso las instrucciones introducidas.
Politcnico

La otra herramienta fundamental durante el proceso de desarrollo es el


Compilador. Este es un programa de software que se encarga de traducir las
instrucciones desde el lenguaje de programacin escogido, al lenguaje de
mquina necesario para que el computador en que se ejecutar el programa
entienda adecuadamente las instrucciones que describen la tarea que debe
ejecutar. Para lograr esto, el compilador lee el cdigo escrito en el lenguaje
escogido, verifica que no tenga errores (En caso de encontrar alguno debera
hacrselo saber al usuario), y luego genera, con base en las instrucciones del
cdigo verificado, un archivo que se puede ejecutar en el computador
destino del programa, y que debe realizar las tareas encomendadas por el


programador. En Windows, este tipo de archivos de salida generalmente
tienen extensin .exe y estn compuestos por cdigo binario. Es decir, su
contenido es un conjunto de bits con valores 1 o 0, que en conjunto
System

conforman la secuencia de instrucciones que deben ser ejecutadas, escritas


en lenguaje de mquina, de tal manera que puedan ser entendidas por el
computador. Este cdigo final es completamente diferente al original, que
University

est escrito en el lenguaje de programacin escogido, y que con el


conocimiento adecuado de la sintaxis correspondiente al lenguaje puede ser
entendido con relativa facilidad por un ser humano. Las instrucciones
compiladas son especficamente destinadas para la comprensin del
computador.
International

Cabe hacer algunas anotaciones en este punto. Con anterioridad se ha


hablado de lenguajes que no requieren compilacin, como los lenguajes de
generacin de scripts. Si esto es posible, es perfectamente vlido preguntarse
qu necesidad existe de procesar el cdigo a travs de un compilador para
generar otro archivo en otro lenguaje que no es comprensible por los
Whitney

humanos, para poder ejecutar las instrucciones que se desean impartir al


computador? En primer lugar, las instrucciones traducidas a lenguaje de
mquina son mucho ms rpidas. Ya que no necesitan ser interpretadas al
momento de ejecutarse como los scripts generados por otros lenguajes, estn
con

listas para entrar en accin en el momento en que se requiera. Por otro lado, a
pesar de que el hacer cambios a las instrucciones escritas en lenguajes de
alianza

generacin de scripts es mucho ms sencillo y no requiere herramientas


especializadas, esto presenta la desventaja de que el cdigo de las
instrucciones es completamente legible, no slo para el programador que lo
Grancolombiano-en

escribi, sino para cualquier persona que desee examinarlo. Esto presenta
problemas de seguridad, privacidad y cuestiones de derechos de autor que
son evitados al compilar el cdigo en lenguaje de mquina. Ahora bien, en
honor a la justicia, tambin es necesario dejar claro que a pesar de que la
compilacin genera cdigo en un lenguaje prcticamente imposible de
entender por los humanos, y del que no es sencillo retornar al lenguaje de
programacin del que se parti, lo que garantiza que el secreto del cdigo se
mantenga, tambin es cierto que resulta entonces necesario mantener copias
del cdigo original en el lenguaje de programacin original para poder hacer
Politcnico

modificaciones a las instrucciones originales. Es necesario tener en cuenta que


este proceso de modificacin y recompilacin requiere herramientas
especializadas y procesos extra.

En ltima instancia, el proceso, el lenguaje y el resultado escogidos dependen


en gran medida de encontrar un balance entre las fortalezas y debilidades
que presenta cada una de las alternativas disponibles.


BIBLIOGRAFA
System

FORD, Jerry Lee , (2007)Programming for the Absolute Beginner, Editorial


Course Technology
KINGSLEY-HUGHES, Adrian y KINGSLEY-HUGHES, Kathie , (2005), Beginning
University

, John Wiley & Sons, Incorporated Programming


International
Whitney
con
alianza
Grancolombiano-en
Politcnico

También podría gustarte