Inicio
He creado este espacio para compartirlo con familiares y amigos, aunque no descarto la posibilidad de que otros visitantes se encuntren a gusto y lo puedan disfrutar tambien...

InicioMapa del sitioDescargasColaboradoresEnlacesAutor    
Buscar :

Ideas


Y encima del sofá... un televisor

¿Realmente merece el televisor ese papel protagónico que solemos darle?


¿Un flat panel sobre mi buró?

¿Y por qué no... "debajo" del buró?


 Cómo se fabrica el Software  Contenido | Anterior | Siguiente

Lenguajes de programación

El lenguaje de programación más simple es el "Ensamblador". A cada instrucción de máquina se le asocia un "mnemotécnico", es decir una especie de abreviatura de la instrucción que representa, por ejemplo SUM para una instrucción que suma dos numeros. El programador escribe su programa usando estos mnemotécnicos de modo que al final su programa tiene la forma de una lista que puede ser leida y comprendida por él mismo a simple vista. Esta lista es luego traducida a código de máquina usando un programa especial que recibe el nombre de "ensamblador".

Esto resuelve parte del problema, pero está muy lejos de ser la solución definitiva. Y es que las instrucciones que el CPU puede ejectuar son de muy bajo nivel, como sumar, restar, dividir y multiplicar dos numeros binarios, o mover valores binarios de un lugar a otro de la memoria. Para completar tareas más complejas como escribir un carácter en la pantalla del monitor o producir un sonido, se necesitan largas secuencias de instrucciones de máquina. Aún usando lenguaje ensamblador para escribir esos programas, la lista definitiva resulta demaciado intrincada y difícil de comprender por un humano. La solución a este problema fue la invensión de los llamados "lenguajes de alto nivel" o "superlenguajes".

Ejemplos de superlenguajes son PL/1, ALGOR, FORTRAN, COBOL, BASIC, PASCAL, C, C++, Java, Visual Basic, Delphi y un largo etc. - El gran aporte de estos lenguajes consiste basicamente en dos aspectos: (1) Cada instrucción se traduce en un gran numero de instrucciones de máquina. (2) Las instrucciones del lenguaje son "abstractas" en el sentido de que no están diseñadas para un CPU específico, sino que un mismo programa puede funcionar en computadoras con CPUs muy diferentes.

Por ejemplo, la siguiente instrucción en C:

       printf("Hello World");

provocará que el mensaje "Hello World" se escriba en la pantalla del monitor. Para lograr esto, el CPU tuvo que leer y ejecutar un gran numero de instrucciones en código de máquina, de modo que, en efecto, el uso de un lenguaje de alto nivel como C, representa un alto nivel de abstracción a la hora de programar.

Un programa escrito en superlenguaje tiene la forma de una lista mucho mejor estructurada, mucho más lejible y compresible por un ser humano, más orientada al problema concreto que se está resolviendo y mucho más abstracta, separada del hardware. El programador no piensa en términos del CPU sino en términos del sistema operativo, se programa para un sistema operativo determinado, y muchas veces hasta para varios (es lo que se llama "portabilidad del código", o sea, la habilidad que tiene un mismo programa de funcionar en más de un sistema operativo).

Pero una lista así no puede ser comprendida directamente por el CPU, sino que ha de ser traducida a lenguaje nativo, o como se dice en el argot informático, "compilada". Para ello se usa un programa especial llamado "compilador". La lista que el programador escribe directamente en superlenguaje se llama "código fuente" y normalmente recide en un fichero texto con una extensión que es alegórica al lenguaje en que está escrita, por ejemplo C para lenguaje C, PAS para lenguaje PASCAL, BAS para lenguaje BASIC, etc. Una vez compilado el programa fuente, se obtiene un fichero ejecutable con extensión COM, EXE etc, según sea el caso. Este último ya contiene las correspondientes instrucciones de máquina y puede ser ejectuado directamente por el CPU.

La historia del desarrollo de los superlenguajes se remonta a los finales de los 50s, y aún continúa en nuestros dias. A lo largo de tan extenso período, los lenguajes de programación han sufrido cambios profundos. Los primeros, como FORTRAN y PL/1, aunque más abstractos que sus predecedores los ensambladores, conservaban una estructura lineal, los programas seguían siendo una lista de instrucciones inamobibles, aunque de más alto nivel.

El segundo paso fue la llamada "programación estructurada", donde C y Pascal fueron los definitivos triunfadores. Este tipo de programación permite al programador crear sus propias instrucciones (que en realidad se llaman "funciones" y/o "procedimientos"), con lo cual se gana un nivel más de abstacción a la hora de programar. Asi mismo, el código fuente no tiene por qué recidir en un solo fichero sino que un proyecto extenso puede distribuirse en varios ficheros; la ventaja no es solo una mejor organización del proyecto sino además (y sobre todo) una mejor "reusabilidad" del código: aquellos módulos que han sido suficientemente depurados de errores, se compilan por separado no hacia código de máquina sino hacia un código intermedio llamado "código objeto", normalmente en ficheros con extensión OBJ. Al final, todos los ficheros OBJ se enlazan usando un programa especial llamado "linker" para conformar el fichero ejectutable definitivo. También se puden agrupar varios OBJs dentro de un solo fichero para formar lo que se llama una "librería" (normalmente con extension LIB) que también puede ser enlazada con otros OBJs para formar el ejecutable definitivo. Todos estos avances surgieron durante el desarrollo de la programación estructurada.

El siguiente paso fue la llamada "programación orientada o objeto" (OOP), con lenguajes como C++ y Java. Estos lenguajes permiten al programador crear estructuras llamadas "objetos" donde los datos se mezclan con las instrucciones que actuan sobre ellos, conformando así un ente armónico de fácil manejo en el resto del programa; también se permite la cobinación (herencia) de objetos para formar objetos más complejos. La meta de este tipo de programación es modelar los problemas de una forma más cercana a la naturaleza real de los problemas mismos; por ejemplo, en la práctica observamos que efectivamente existen objetos como mamíferos, que tienen determinadas propiedades y actitudes, y observamos otros objetos más específicos como perros y gatos, ambos mamíferos, pero diferentes entre sí.

Con el surgimiento de sistemas operativos gráficos como Windows, la programación tropezó con una gran dificultad: la comunicación con el usuario dejó de ser tan simple como recibir caracteres desde el teclado e imprimir caracteres alfanuméricos en la pantalla; ahora el usuario necesita una comunicación gráfica y para esto se requiere un gran esfuerzo de programación. La solución fue la llamada "programación visual", un concepto introducido por Visual Basic y que ahora es prácticamente obligatorio para cualquier lenguaje de programación orientado a sistemas operativos gráficos como Windows o Mac/OS. Ejemplos de estos nuevos lenguajes son Visual Basic, Visual C++, Visual Fox Pro y Delphi, casi siempre versiones "visuales" de lenguajes anteriores (Delphi es una versión visual y orientada a objeto de PASCAL).

En este nuevo tipo de programación, el programa deja de ser una lista de instrucciones, estructuras ú objetos... simplemente deja de ser una lista. Ahora es más bien un conjunto de pequeñas listas, una por cada "evento" que pueda ocurrir. Estos eventos pueden ser acciones del usuario con el mouse, entradas de caracteres del teclado, entrada de datos desde un puerto USB, etc. El programa simplemente espera a que algo ocurra, y para cada cosa que ocurra, hay un segmento de programa que se ejectuará como respuesta a ese evento. El otro gran aporte de la programación visual es el uso de editores gráficos como parte de la herramienta de programación: el programador no tiene que escribir la larga lista de instrucciones necesarias para dibujar un elemento gráfico, sino que la dibuja directamente utilizando el editor gráfico; el compilador se encarga de hacer la traducción correspondiente directamente desde el editor.

 Contenido | Anterior | Siguiente

  • Otros articulos técnicos


  • Imprimir   Enviar a un amigo   
                                                    

    Miami / USAmail@armandoacosta.comInicio