Download Una de las primeras herramientas que existen para diseñar soporte

Document related concepts
Transcript
Una de las primeras herramientas que existen para diseñar soporte lógico son los
lenguajes de programación. Estos no son más que un conjunto de instrucciones y
reglas que permiten al usuario crear programas de una forma más o menos
cómoda.
Atendiendo a su carácter de equipo electrónico, un ordenador sólo entiende
órdenes muy sencillas, convenientemente expresadas en código binario. Este, que
normalmente emplea dos símbolos: el "0" y el "1", es bastante difícil de utilizar por
parte de los programadores, por lo que ha sido preciso crear una serie de
lenguajes de programación más accesibles.
Siguiendo la tendencia apuntada en el párrafo anterior, se puede hablar de una
clasificación de los lenguajes de programación en dos grandes bloques: los
lenguajes de bajo nivel u orientados al equipo, y los lenguajes de alto nivel u
orientados al problema.
Los primeros , como su propio nombre indica, contienen instrucciones muy
cercanas al funcionamiento físico del equipo (es decir, que son órdenes que el
hardware de la máquina puede realizar de forma inmediata), por lo que se
aprovecha al máximo, en cuánto a rapidez y a potencia se refiere, las
posibilidades del ordenador.
El lenguaje de bajo nivel más cercano al soporte físico del ordenador es el código
máquina, que está basado que el código binario con el que funciona el equipo. La
programación en código máquina lleva al máximo la optimización de las
posibilidades del hardware, pero plantea algunos inconvenientes, como la
dificultad de trabajar con unos y ceros y la imposibilidad de analizar
visualmente el desarrollo lógico del programa (lo único que se ve es una
amalgama de unos y ceros) y detectar errores antes de la ejecución del mismo.
Otro inconveniente de los lenguajes de bajo nivel es que son específicos de la
máquina en la que se está trabajando. Si se cambia de modelo de ordenador o de
fabricante, lo más probable es que el programa escrito en código máquina no sea
válido.
El interés que existe en algunos ocasiones por trabajar con lenguajes de
programación cercanos al funcionamiento del soporte físico de los equipos ha
llevado al estudio de métodos que eviten la complejidad del trabajo con el código
máquina. Una de las soluciones obtenidas es la de emplear un lenguaje de
programación de bajo nivel, en el que se sustituya el manejo del código binario
(unos y ceros) por el de instrucciones más legibles para el programador o usuario.
Estas instrucciones son exactamente iguales a las del código máquina, pero su
presentación en una forma más elaborada facilita el trabajo con ellas.
El lenguaje de programación que surge de estas modificaciones se denomina
ensamblador y se cataloga como de bajo nivel, aunque, en este sentido, está por
encima del código máquina. Los ensambladores emplean instrucciones que se
citan por un número reducido de letras, que dan idea de las operaciones y
tratamientos que realizan. Así el usuario tiene una visión mucho mejor del
programa que ha escrito y puede detectar visualmente errores.
Los ensambladores tienen notables ventajas a la hora de su empleo, pues
permiten la ejecución muy rápida de los programas (las instrucciones siguen muy
de cerca lo que hace el soporte físico) y se aprovecha muy bien el tamaño de
memoria disponible. Esto último es muy interesante cuando se trabaja con
ordenadores de tamaño y potencia reducidos. Sin embargo, también son difíciles
de emplear (aunque menos que el código máquina) por la lentitud de la tarea y
porque requieren un excelente conocimiento de la estructura de la memoria del
ordenador.
De los lenguajes ensambladores, considerados de bajo nivel, se pasa ya a los de
alto nivel. De ellos se dice que están orientados al problema, porque su diseño
está pensado para que se adapten mejor a un determinado tipo de actividades,
como el cálculo científico, o el tratamiento masivo de datos, o la inteligencia
artificial, etc.
En los lenguajes de alto nivel, las instrucciones no tienen nada que ver (o más
bien poco) con las funciones que realiza el soporte físico del ordenador. Cada
instrucción de un lenguaje de alto nivel se descompone en otras varias, más
cercanas al nivel físico del equipo, que la CPU del ordenador debe realizar
siguiendo un orden adecuado. Por ello, los programas escritos con lenguajes de
alto nivel no pueden ejecutarse directamente en un ordenador, sino que deben
convertirse adecuadamente en instrucciones de código máquina.
Cuando el usuario ha acabado de escribir un programa en un lenguaje de alto
nivel, debe someterlo a un proceso que se llama compilación y que, como parece
lógico, lo llevan a cabo una serie de programas llamados compiladores.
Las ventajas de realizar las tareas de compilación de esta forma se refieren a la
potencia y a las posibilidades que brindan. Un compilador que realiza tres
procesos con el programa original es más fácil de diseñar y, cambiando
adecuadamente sus módulos, se puede aplicar a diversas máquinas o situaciones
diferentes. Además la división en etapas permite que se detecten errores e
incoherencias en el empleo del lenguaje en la primera de ellas, con lo que se avisa
al programador o usuario para que realice los cambios oportunos.
En muchos ordenadores comerciales, el paso del programa escrito en lenguaje
ensamblador al correspondiente en código máquina no lo lleva a cabo el
compilador se simplifica, pues sólo debe realizar dos de las tres tareas señaladas.
En algunos lenguajes de alto nivel de la gama más sencilla no se emplean
compiladores para las tareas de traducción de las instrucciones a código máquina,
sino que existen otros programas bastante más simples que reciben el nombre de
intérpretes. Cuando un lenguaje es interpretado y no compilado, las instrucciones
se comprueban y traducen de una en una (en vez de todas en el mismo proceso),
lo que simplifica notablemente la realización del intérprete, pero hace mucho más
lenta la conversión de instrucciones en comandos de código máquina. El lenguaje
Basic para pequeños microordenadores es un buen ejemplo de lenguajes de alto
nivel que emplean el intérprete.
La especialización de los lenguajes de alto nivel en tareas o grupos de
aplicaciones concretas ha llevado a la existencia de multitud de ellos, cada uno
con sus peculiaridades y su forma particular de desarrollar programas.
Debido a su sencillez y a su aplicación a los ordenadores más populares, Basic
(Beginners All-purpose Symbolic Instruction Code) es quizás el lenguaje de alto
nivel más conocido. Basic debe gran parte de su difusión a las características de
su diseño: empleo de palabras inglesas corrientes para denominar a las
instrucciones y uso de símbolos matemáticos para las operaciones.
Fundamentalmente, Basic se utiliza para resolver problemas científico-técnicos y
generales que no presenten demasiada complejidad. Una de sus características
principales, además de su sencillez de empleo, es que está pensado para su
manejo en forma de diálogo con el ordenador, como corresponde al uso de
intérprete en lugar de compilador. Cuando se realiza un programa en Basic, el
programador o usuario va introduciendo sus instrucciones en el ordenador y el
intérprete le va diciendo, una a una, si es correcta o no, para que en este último
caso la modifique convenientemente.
La sencillez en el manejo de Basic y el pequeño tamaño de memoria central de los
ordenadores que requieren han sido los elementos clave para su incorporación a
los equipos de dimensiones reducidas, lo que le ha dado una popularidad y una
difusión tremendas. Muchos de los aficionados a estos temas y de los
profesionales que se introducen por primera vez en el mundo de la informática lo
hacen a través de Basic.
Actualmente existen en el mercado numerosos compiladores de Basic y algunos
de ellos tan completos y estructurados, que no tienen nada que envidiar a otros
lenguajes como Pascal. Además el tratamiento de archivos se ha perfeccionado
de tal manera que ni el mismo Cobol le puede hacer sombra. Existen también
versiones para entornos gráficos que se basan en la programación para entorno
objeto, con instrucciones altamente especializadas.
Otro lenguaje de alto nivel muy extendido es Cobol (Common BusinessOriented
Language), que además es históricamente el primer lenguaje se este tipo que se
desarrolló. Cobol está diseñado para su aplicación en ambientes administrativos y
comerciales, ya que trata con facilidad grandes cantidades de datos. La
realización de nóminas o la gestión de actividades bancarias son dos
ejemplosactividades corrientes, detrás de las que están programas escritos en
Cobol.
Fortran es un lenguaje muy potente para el tipo de tareas para el que está
diseñado, pero su evolución a lo largo de los últimos años ha sido muy pequeña.
Así, por ejemplo, no se le han añadido posibilidades para el tratamiento de
gráficos o para el desarrollo de juegos. El resultado de todo ello es que Fortran ha
seguido en su sitio, pero sin ganar nuevos campos de aplicación.
Con una concepción mucho más moderna apareció, a finales de la década de los
sesenta, el lenguaje Pascal. Este fue diseñado para facilitar la formación de
alumnos en temas de programación informática. Su principal característica es que
es un lenguaje que permite la programación estructurada, por lo que los
programas escritos con él son muy compactos, presentan una estructura muy
simple y tienen un diseño lógico coherente.
Pascal es probablemente, después de Basic, el lenguaje de programación más
difundido en el terreno de los microprocesadores.
En la actualidad uno de los lenguajes que más reconocimiento tiene a nivel
profesional, es el lenguaje C. Este ofrece un juego de instrucciones muy reducido,
con una gran cantidad de funciones de librería las cuales las podremos ir
enriqueciendo con nuevas funciones escritas a la medida de nuestras
necesidades. Es de destacar el elevado grado de portabilidad que posee. Es un
lenguaje estructurado. Es un lenguaje de alto nivel utilizado para la
implementación de Sistemas Operativos y Lenguajes de alto nivel, como para la
realización de Utilidades y Programas de Aplicación. Por otra parte posee
características de relativamente bajo nivel (manejo de direcciones de memoria,
acceso a funciones de entrada/salida, etc.).
Entre la pléyade de otros lenguajes de alto nivel que se pueden encontrar en el
mercado, conviene no olvidarse de Logo basado en lenguajes para inteligencia
artificial y que incorpora numerosas posibilidades para que los niños aprendan a
razonar; Lisp y Prolog, lenguajes diseñados específicamente para la realización de
programas que siguen los principios de la inteligencia artificial; y Ada lenguaje
especializado en la programación de sistemas informáticos controlados por
microprocesador y que se utiliza bastante en aplicaciones militares.
Con las posibilidades de la transmisión de datos, los ordenadores se pueden
comunicar entre sí a grandes distancias, permitiendo la aparición de nuevos
servicios y prestaciones.