LENGUAJES DE PROGRAMACIÓN.





Principales lenguajes de Programación
Las ventajas prácticas que supone un lenguaje de programación se ven aumentadas cuando se dota al lenguaje de capacidades especializadas que lo hacen especialmente adecuado para la realización de tareas concretas; podríamos mencionar, entre otros, los siguientes: La lista es inacabable , y en las próximas secciones describiremos brevemente algunos de los lenguajes más usados en la actualidad.

FORTRAN
Su nombre proviene de FOR MULA TRAN SLATOR o traductor de fórmulas. Ha ido pasando por sucesivas versiones; la última es Fortran 90. Está especialmente indicado para el cálculo matemático, y sus compiladores proporcionan el código más optimizado para este tipo de tareas. Sigue siendo muy utilizado en la comunidad científica.

COBOL
Su nombre proviene de Common Business-Oriented Language. Resulta especialmente útil para tareas administrativas y comerciales, y para la creación y utilización de ciertas bases de datos. También ha experimentado sucesivas revisiones, y se habla incluso de un Object COBOL.

PASCAL
Su nombre proviene de Blaise Pascal, famoso entre otras cosas por haber desarrollado una máquina mecánica de calcular, la pascalina. Fue desarrollado a finales de los años 60 con fines fundamentalmente didácticos, y se extendió mucho en el mundo de los ordenadores personales. Uno de sus creadores, Niklaus Wirth, ha desarrollado otros lenguajes de programación (Modula-2, Oberon).

APL
Su nombre proviene de A Programming Language. Resulta bastante críptico, emplea una notación propia y está destinado a cálculos matemáticos.

FORTH
Su nombre proviene de la corrupción de FOURTH (cuarto). Originalmente desarrollado para controlar el posicionamiento de radiotelescopios, alcanzócierta popularidad por su brevedad y eficiencia. FORTH es un lenguaje de pila .

SWIFT

Este recién llegado ha sido propuesto por Apple Computer como lenguaje de elección para la programación en mac OS, iOS, tvOS y Watch OS. Se trata de un lenguaje orientado a objetos con capacidades de programación funcional; resulta compacto y a pesar de su juventud ha ya alcanzado la versión 4.2 (Junio de 2018). Es un lenguaje de agradable manejo, similar a Kotlin (este último relacionado con Java)

¿Qué es un lenguaje de pila? Para comprenderlo necesitamos describir brevemente el concepto de pila y la forma en que funciona la computadora.
Las bandejas del autoservicio (o los platos) se almacenan en un montón ordenado. Las nuevas bandejas se añaden en la parte superior, y los usuarios toman bandejas también por la parte superior. Dicho de otromodo, el montón de bandejas es tal que la última bandena en entrar es la primera en salir: los sistemas que poseen estas características se dicen que son del tipo LIFO (Last in, first out).
El segundo ejemplo es la pila de una UCP. Ya se ha mencionado que una UCP se puede considerar como algo parecido a una caja negra, a la cual llegan cables que aportan los datos de entrada, cables que aportan instrucciones de control, y cables que proporcionan resultados. En el interior de esa caja negra hay toda una colección de circuitos que realizan diferentes funciones lógicas y ariméticas; a fin de cuentas, un µP es un dispositivo lógico programable. Como dato anecdótico, la parte de la UCP que se encarga de las operaciones aritméticas y lógicas recibe en su conjunto el nombre de ALU (Unidad Aritmética y Lógica).
Además de la ALU, la UCP contiene otros circuitos; entre ellos se cuenta ciertas posiciones de memoria llamadas registros. Los registros son posiciones de memoria análogas a las presentes en el subsistema de RAM, con algunas particularidades. Al estar dentro (físicamente) de la UCP, los registros tienen unos tiempos de acceso sumamente reducidos, al no ser necesario consultar el subsistema de memoria para acceder a su contenido. Los registros se emplean para almacenar los operandos que serán procesados por las instrucciones recibidas al efecto. El número y tipo de los registros varía con los fabricantes; con todo, existen dos de especial importancia: el contador de programa ( PC ) y el puntero de pila ( SP ).
Contador de programa.- Es un registro que contiene en todo momento la dirección de la próxima instrucción que haya que ejecutar. Una vez ejecutada una instrucción, el PC se actualiza automáticamente para señalar la próxima instrucción que haya que ejecutar. No decimos que se incrementa el PC porque la próxima instrucción podría ser tanto anterior como posterior dentro de la memoria de la computadora.
En el momento del arranque, se carga en el PC la dirección de la primera instrucción que haya que ejecutar; esta instrucción suele encontrarse en ROM (ROM de arranque o boot ROM en la literatura). El programa contenido en la ROM carga en RAM el SO; a continuación se carga en el PC la primera instrucción de arranque del SO, y la máquina arranca.
Puntero de Pila.- La memoria global de la computadora está numerada, desde $00000000 hasta $ffffffff, por ejemplo, y posiblemente más allá. Las zonas más altas y más bajas de la memoria se reservan para uso del SO. La memoria restante se reparte entre las aplicaciones en ejecución, y cada una es dueña y señora de su fragmento de memroia. En la memoria reservada para cada aplicación, se destina un fragmento para su utilización como pila. En el momento del arranque la pila está vacía, y el SP señala la primera dirección utilizable de la pila. Al añadir información a la pila, se escribe esa información en la posición indicada inicialmente por el S P, y en las direcciones anteriores cronológicamente: la pila crece hacia abajo. Una vez añadida la información a la pila, el SP se decrementa automáticamente hasta apuntar a la primera posición de memoria libre de la pila. Este proceso permite añadir múltiples informaciones a la pila. Para eliminar una información de la pila, basta con incrementar el SP hasta que apunte a la dirección del primer byte de la información que se quiera descartar. La próxima operación de escritura en la pila reutilizará la memoria que antes ocupase la información eliminada.
Lenguajes de Pila.- Un lenguaje de pila se caracteriza por utilizar pilas para su ejecución. El lenguaje FORTH, en particular, hace uso de una o más pilas para almacenar en ellas los operandos y operadores pertinentes. Una vez ejecutada la instrucción, se decarta de la pila la instrucción y los operandos, y como máximo queda en la pila el resultado obtenido. Este resultado se puede trasladar a otra zona de memoria. Este lenguaje tiene una curva de aprendizaje considerable, y produce resultados muy eficientes. Existen versiones comerciales, shareware y freeware.
Téngase en cuenta que todos los lenguajes de programación y todos los sistemas operativos hacen uso de pilas de una u otra forma. Los lenguajes de pila son un caso en que la pila adquiere especial importancia.


LISP
Su nombre proviene de List Processing (por cierto, la palabra inglesa lisp significa "ceceo"). Fue desarrollado para efectuar estudios relacionados con la inteligencia artificial, y ha pasado por diferentes versiones, incluyendo una orientada a objetos. Sigue siendo el preferido de una parte importante de la comunidad de IA.

JAVA
El fenómeno Java comenzó su andadura hacia 1995 y es posiblemente el lenguaje de aceptación más meteórica de la historia. Pese a unos orígenes relacionados con el control de dispositivos, ha alcanzado gran difusión por su potencia y transportabilidad. La cantidad de documentación relativa a Java (tanto del fabricante como de origen externo [ 1 ], [ 2 ]) es realmente importante, lo cual facilita el desarrollo y potencia aún más la implantación de este lenguaje.

Introducción al lenguaje C : El programa Hola, Mundo!
El nombre de este lenguaje proviene de la tercera letra del alfabeto latino, y se adoptó porque en el momento de su concepción ya existían otros lenguajes denominados A y B. Fue desarrollado para facilitar el transporte de sistemas operativos entre distintas computadoras, de tal modo que al ofrecer un "ensamblador transportable" se pudiera reutilizar gran parte del código al pasar a otra computadora. En efecto, bastaría con crear un compilador de C para trasladar todo el código escrito en C de una máquina a otra. El lenguaje C fue creado por Brian Kernighan y Dennis Ritchie, y constituye la base del sistema operativo UNIX. Su primera descripción, realizada por los autores, se hallará en el libro The C Programming Language . El lector interesado hallará en la página anterior numerosas traducciones realizadas a diferentes lenguajes que se han realizado. Entre ellas se incluye, por cierto, el Braille.

El primer programa que se escribe para probar un lenguaje suele ser precisamente el "Hola, Mundo", esto es, un programa que imprime ésa frase en pantalla. Una vez escrito el programa con ayuda de un editor de texto, se genera el ejecutable mediante un compilador y después se ejecuta el programa, que debería mostrar en pantalla el mensaje indicado. Esto exige tener unos conocimientos mínimos sobre el funcionamiento de un editor de textos y de un compilador,o bien sobre el funcionamiento de un entorno integrado de desarrollo (IDE). La dispersión de plataformas, sistemas operativos y entornos de desarrollo es tan grande que resulta imposible enumerar aquí los procedimientos implicados en cada caso; afortunadamente, los fabricantes de entornos de desarrollo ponen siempre a disposición del usuario la documentación necesaria para crear y ejecutar programas.

El código fuente de Hola, Mundo! es como sigue:

#include <stdio.h>				/* Sentencia de inclusión */
int main(void)					/* Cabecera de función */
	{					/* Principio de bloque */
		printf ("Hola, Mundo!\n\n");	/* Llamada a función */
		return 0;
	}					/* Final de bloque */

Este programa puede escribirse y compilarse fácilmente, produciendo los resultados esperados. Conviene tener en cuenta los siguientes detalles relacionados con el programa:



El lenguaje C resulta pequeño y eficiente, y está especialmente indicado para la programación de sistemas, aunque los compiladores actuales hacen posible emplearlo para construir programas de todo tipo, incluyendo el cálculo ( q.v. ).