Está en la página 1de 7

“¿QUÉ ES PROGRAMACIÓN?

HISTORIA Y
LENGUAJES
System

¿QUÉ ES PROGRAMACIÓN?
A pesar de que existen muchas definiciones de programación, y éstas han
University

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


elementos en común que todas tienen, de una manera simple y natural, de la
siguiente manera: Programar es instruir al computador a través 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 definición, es posible definir con un poco más 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 también de las instrucciones que han sido dadas al
computador a través de un ejercicio de programación 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 además 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 ambigüedades en las instrucciones que
recibe, y de esa manera no sería 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
Politécnico

lenguaje que éste pueda entender, para que las instrucciones puedan ser
ejecutadas de manera adecuada. En segundo lugar, para realizar la
codificación 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 “traducción” de tal manera que lo que el usuario desea sea
escrito en un lenguaje que le permita asegurarse de la corrección de las


instrucciones para después se traducido una vez más a un lenguaje que sea
comprensible para la máquina en la que se ejecutarán las instrucciones, de tal
System

manera que los resultados esperados sean obtenidos.

Existen muchos lenguajes de programación actualmente. En el pasado han


University

existido muchos más y cada año se crean lenguajes nuevos o se actualizan


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

LENGUAJE DE MÁQUINA. El lenguaje de máquina 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 programación de su elección. Es un lenguaje que en términos de


su estructura depende del tipo de CPU que tiene el computador, pero que en
última instancia está basado en los preceptos de la lógica 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 máquina


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 programación comprensibles para humanos fueron
desarrollados, comenzando por…
Grancolombiano-en

ENSAMBLADOR. El lenguaje ensamblador (O Assembly Language en inglés),


fue la primera alternativa al lenguaje de máquina. Es un lenguaje en el que se
utilizan palabras y números mucho más fáciles 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 más sencillo que el lenguaje de
máquina siga siendo un conjunto bastante oscuro de instrucciones hacen que
el ensamblador siga siendo una opción poco escogida como lenguaje de
Politécnico

programación, excepto en casos muy específicos, como cuando se requiere


desarrollar software que acceda directamente el hardware del computador,
como por ejemplo drivers para componentes físicos determinados. Pronto, el
ensamblador, que fue creado durante la década de 1.950, fue reemplazado
por lenguajes que fueran más aptos para el aprendizaje y desarrollo por parte
de los programadores. A finales de la década de 1.950 apareció…

FORTRAN. El nombre de Fortran es un acrónimo de FORmula TRANslator


(Traductor de Fórmulas), y hace el nombre mismo hace notorio el enfoque
matemático del lenguaje. A pesar de que no ofrecía mejoras sustanciales en
términos de rendimiento sobre los programas escritos en ensamblador, escribir


programas e Fortran era muchísimo más 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 académico, algunos usuarios del
System

lenguaje hoy en día. El enfoque de nuestro siguiente lenguaje es un poco


diferente…

COBOL. El nombre de COBOL es otro acrónimo de Common Business-Oriented


University

Language (Lenguaje Común Orientado a Negocios), y para hacerle honor a


su nombre, es un lenguaje utilizado desde su comienzo a finales de la década
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 día 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 década de 1.960, BASIC que significa Begginer’s All-


purpose Symbolic Instruction Code (Código de Instrucciones Simbólicas de
Todo Propósito para Principiantes) buscó cambiar el enfoque de la evolución
Whitney

que los lenguajes de programación venían teniendo. Enfocado en la


simplicidad, BASIC es un lenguaje sencillo, fácil 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 día, a


través de los esfuerzos de compañías 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


década de 1.960, y el lenguaje como tal fue liberado en 1.970. Presentando
grandes avances en términos de usabilidad y flexibilidad respecto a los
lenguajes que lo precedieron, Pascal es usado hoy en día aún en ambientes
académicos e incluso se escoge como el lenguaje predilecto para enseñar 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 aproximación en la cual conceptos importantes del
programa y el sistema son vistos como representaciones de objetos del mundo
Politécnico

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


para accederlos y modificarlos), y B fue importante por lo que vino después
de B. Y lo que viene después de B, naturalmente es…

C. El lenguaje C fue creado en 1.972 por Dennis Ritchie basándose en el


lenguaje B creado con anterioridad. Pensado para ofrecer la flexibilidad que
Fortran y COBOL no tenían, 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 más comprensibles para los
programadores que las de los lenguajes anteriores, lo que hace que


programar en C sea un ejercicio mucho más intuitivo y ágil que programar en
otros lenguajes. Desde luego, los programas escritos en C deben ser traducidos
al lenguaje de máquina correspondiente al computador en que se ejecutarán,
System

y este proceso lo realiza un programa especializado conocido como el


compilador. Hoy en día existen compiladores de programas escritos en C para
prácticamente cualquier sistema operativo y plataforma de hardware, lo que
University

hace de C un lenguaje fácilmente 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
más poderoso, más flexible y más seguro, conocido como…
International

C++. C++ es un lenguaje de propósito general nacido con base en C. Creado


a mediados de la década 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 más 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 prácticamente a cualquier escala.
Hoy en día, existen muchos compiladores para C++ en prácticamente
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 década de


1.990. Liberado en 1.995, está basado, al menos en términos de estructura
sintáctica 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 diseñado para ser independiente de la
plataforma. Esto quiere decir que el código escrito en Java puede ser
ejecutado en computadores corriendo bajo diferentes sistemas operativos sin
tener que ser modificado. Este proceso requiere que el código original escrito
en Java deba ser “precompilado” hasta traducirlo a un lenguaje intermedio
(conocido como byte-code), que luego es interpretado por una máquina
virtual en el computador de destino, que se encarga de la compilación final,
Politécnico

de tal manera que se genere el código adecuado para el computador y


sistema operativo sobre el que se desee que se ejecute la aplicación. A pesar
de (o gracias a) estas características, Java es uno de los lenguajes más
ampliamente utilizados hoy en día, y la tendencia no tiene trazas de parar.

OTROS. Existen otros muchos lenguajes de programación aparte de aquellos


de propósito general presentados hasta ahora. Algunos están orientados
específicamente al desarrollo de páginas web (HTML, XHTML por ejemplo),
otros son lenguajes de generación de scripts (Porciones de código 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 diseñados para escribir y ejecutar sentencias sobre
bases de datos, el más 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 serán ejecutados, no es lo más 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 algún punto, los programas tuvieron que ser
Whitney

escritos en lenguaje de máquina).

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


un conjunto de herramientas que no solamente les hacen la vida más simple.
con

Sin ellas, no sería posible desarrollar programas funcionales, en los tiempos y


bajo las condiciones de calidad que se requieren hoy en día.
alianza

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


aplicación 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 código en él, sino


que participa activamente en el proceso, resaltando la sintaxis del código
escrito de tal manera que sea más fácil de leer, haciendo sugerencias durante
la escritura, completando por ejemplo las palabras de código más frecuentes,
e identificando los errores de escritura cometidos por el programador. Además
de esto, una vez el código ha sido escrito, un ambiente de desarrollo ofrece
herramientas para verificar que la ejecución se esté dando de la manera que
el programador espera, verificando paso a paso las instrucciones introducidas.
Politécnico

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 programación escogido, al lenguaje de
máquina 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 código escrito en el lenguaje
escogido, verifica que no tenga errores (En caso de encontrar alguno debería
hacérselo saber al usuario), y luego genera, con base en las instrucciones del
código 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 extensión .exe y están compuestos por código 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 máquina, de tal manera que puedan ser entendidas por el
computador. Este código final es completamente diferente al original, que
University

está escrito en el lenguaje de programación 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 específicamente destinadas para la comprensión del
computador.
International

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


hablado de lenguajes que no requieren compilación, como los lenguajes de
generación de scripts. Si esto es posible, es perfectamente válido preguntarse
¿qué necesidad existe de procesar el código a través 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
máquina son mucho más rápidas. Ya que no necesitan ser interpretadas al
momento de ejecutarse como los scripts generados por otros lenguajes, están
con

listas para entrar en acción 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

generación de scripts es mucho más sencillo y no requiere herramientas


especializadas, esto presenta la desventaja de que el código de las
instrucciones es completamente legible, no sólo 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 código en lenguaje de máquina. Ahora bien, en
honor a la justicia, también es necesario dejar claro que a pesar de que la
compilación genera código en un lenguaje prácticamente imposible de
entender por los humanos, y del que no es sencillo retornar al lenguaje de
programación del que se partió, lo que garantiza que el secreto del código se
mantenga, también es cierto que resulta entonces necesario mantener copias
del código original en el lenguaje de programación original para poder hacer
Politécnico

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


este proceso de modificación y recompilación 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.


BIBLIOGRAFÍA
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
Politécnico

También podría gustarte