Los programadores escriben las instrucciones en diferentes lenguajes de programación, algunos comprensibles directamente por las computadoras y otros que requieren etapas de traducción del lenguaje específico a lenguaje de la máquina para que sea comprensible por ésta. Así, se pueden considerar tres grandes tipos de lenguajes de pro- gramación: máquina, ensamblador y alto nivel.
Lenguaje máquina
Las computadoras comprenden directamente sólo su propio lenguaje, conocido como lenguaje máquina (también llamado código máquina) y definido por su arquitectura hardware. Los lenguajes de máquina normalmente constan de dígitos binarios (dígitos 0 y 1) y suelen ser incomprensibles para los humanos debido a su complejidad.
Una computadora puede comprender directamente instrucciones escritas sólo en su propio lenguaje máquina y que está definido por su diseño hardware. Los lenguajes máquina constan, generalmente, de cadenas de números binarios (dígitos 0 y 1) que instruyen a las computadoras a realizar operaciones elementales una a una. Los lengua- jes máquina son dependientes de la máquina (un lenguaje máquina específico sólo se puede utilizar en una única computadora). Tales lenguajes son incomprensibles para los humanos.
La mayoría de los lenguajes básicos de computadora, como el lenguaje máquina, proporcionan las instrucciones a la computadora en bits. Aunque la mayoría de las computadoras utilizan los mismos tipos de operaciones, los diseñadores de los diferentes procesadores (CPU) normalmente eligen conjuntos distintos de códigos binarios para realizar dichas operaciones. Por consiguiente, el lenguaje máquina de una computadora no es necesariamente el mismo que el lenguaje máquina de otra computadora. La única coincidencia entre computadoras es que en cual- quiera de ellas, todos los datos se almacenan y manipulan en código binario.
Las primeras computadoras eran programadas en lenguaje máquina (código binario). La programación escrita que utiliza el lenguaje máquina es un proceso tedioso y difícil de realizar. Por ejemplo, para sumar dos números se puede requerir una instrucción como ésta:
1101101010101001
Para realizar cualquier operación, como la anterior, el programador tiene que recordar las posiciones de los datos en memoria. Esta necesidad de recordar los códigos específicos en binario hace muy difícil la programación en có- digo máquina y muy propensa a errores.
Lenguaje ensamblador
La programación en lenguaje máquina es muy lenta y tediosa para la mayoría de los programadores. Por ello, para hacer la tarea del programador más fácil comenzaron a crearse lenguajes denominados ensambladores, los cuales, en lugar de utilizar series de números o cadenas que entiendan las computadoras, utilizan palabras, abreviaturas en inglés que pueden entender los humanos y al mismo tiempo representan las operaciones elementales. Dichas abre- viaturas constituyeron el fundamento del lenguaje ensamblador. Sin embargo, aunque es mucho más fácil escribir instrucciones en lenguaje ensamblador, una computadora no puede ejecutar instrucciones directamente en este lenguaje debido a que sólo entiende lenguaje máquina. El surgimiento de lenguajes de programación más parecidos al lenguaje humano requirió a su vez el desarrollo de programas traductores que convirtieran instrucciones escritas en lenguaje ensamblador (assembly language) a instrucciones en lenguaje máquina. A estos programas traductores se les llama ensambladores.
En lenguaje ensamblador, una instrucción tiene un formato más fácil de recordar, llamado nemotécnico o ne- mónico. Las instrucciones en lenguaje ensamblador son abreviaturas o segmentos de palabras clásicas en inglés. Por ejemplo, algunas instrucciones se recogen en la tabla 1.4.
Ensamblador
Un programa que traduce un programa escrito en lenguaje ensamblador en un programa equivalente en lenguaje máquina.
Lenguajes de alto nivel
Con el advenimiento de los lenguajes ensambladores creció el uso de las computadoras, pero los programadores tenían que utilizar numerosas instrucciones, incluso para las tareas más sencillas.
Para poder aumentar la velocidad y facilidad del proceso de programación, se desarrollaron los lenguajes de alto nivel en los que se crearon sentencias o instrucciones que se podían escribir para realizar tareas complejas. Estos lenguajes de alto nivel estaban más próximos a los lenguajes hablados como el inglés, francés o español además podían contener notaciones matemáticas. Así aparecieron lenguajes como Cobol, Basic, Fortran, Pascal, C C++, Java o C#, denominados lenguajes de alto nivel y cuyas instrucciones eran: print, read, open, write, for, while, etcétera. Las instrucciones son similares a palabras ordinarias del lenguaje inglés y también contienen notaciones matemáticas relevantes.
Desde el punto de vista de programación, los lenguajes de alto nivel son preferibles a los lenguajes ensamblador y de máquina.
Al igual que sucede con los lenguajes ensambladores las computadoras no pueden ejecutar directamente instrucciones escritas en un lenguaje de alto nivel. Se necesita un programa traductor denominado compilador o interprete que traduzca las instrucciones en lenguaje de alto nivel a instrucciones en lenguaje máquina, bien directamente como en el caso de C++ o C, o bien un lenguaje intermedio llamado bytecode que luego se interpreta en un lenguaje máquina en el caso de Java. El proceso de traducción se denomina compilación o interpretación de un programa y es un proceso lento como sucede con la traducción de un idioma a otro, aunque las herramientas actuales realizan los procesos de traducción de un modo rápido y eficiente. Los lenguajes de programación pueden ser compilados o interpretados, según el tipo de traductor que emplean (compilador o intérprete). Posteriormente se describirán con más detalles los programas traductores, compiladores e intérpretes.
El proceso de programación
La programación es un proceso de resolución de problemas. Para resolver estos problemas se requieren técnicas diferentes que comprenden desde el análisis del problema, especificación de requisitos o requerimientos y las etapas de diseño denominadas algoritmos.
Un algoritmo es el concepto fundamental de la ciencia de las computadoras (informática). Desde un punto de vista práctico, un algoritmo es un conjunto de pasos que definen cómo se realiza una tarea. Por ejemplo, hay un algoritmo para construir un modelo de avión, de un tren, una lavadora o un aparato de televisión. Antes de que una máquina pueda ejecutar una tarea, se debe diseñar un algoritmo que posteriormente se pueda convertir en un programa que entienda la computadora, para lo cual se necesitará traducir el programa en lenguaje máquina mediante un traductor (compilador o intérprete).
Algoritmo
Proceso de resolución de problemas compuesto por un conjunto de Instrucciones que se realizan paso a paso para conseguir una solución y que se obtiene en un tiempo finito.
El estudio de algoritmos es uno de los temas centrales en estudios de ciencias e ingeniería y en particular en ingeniería de sistemas computacionales y en ingeniería informática. El conocimiento de las técnicas de diseño de algo- ritmos es fundamental para el programador y uno de los temas centrales de nuestra obra.
Para desarrollar un programa que pueda resolver un problema, se debe comenzar analizando y examinando el problema con detenimiento con objeto de obtener diferentes opciones para encontrar la solución; a continuación se selecciona una opción y se debe diseñar el algoritmo correspondiente escribiendo las instrucciones del programa en un lenguaje de alto nivel, etapa conocida como codificación del programa, y a continuación introducir y ejecutar el programa en la computadora.
Las computadoras no entienden los algoritmos, por lo que es necesario indicarles exactamente las "acciones que deben hacer" en un lenguaje comprensible para la máquina. La descripción de las acciones o tareas que debe hacer la computadora se denomina "programa", y programación a la actividad de escribir y verificar tales programas. Por esta razón, se necesitará convertir el algoritmo en un programa mediante un lenguaje de programación cuyas instrucciones sí entienda la computadora. El proceso de resolución de problemas (proceso de programación) con una computadora consta de las siguientes etapas:
• Análisis del problema, con estudio de los requisitos y del dominio del problema.
• Diseño del algoritmo que resuelva el problema.
• Verificar el funcionamiento correcto del algoritmo.
Implementar el algoritmo en un lenguaje de programación como Java.
Ejecutar el programa.
Depurar el programa para obtener y corregir errores.
• Mantener el programa.
• Actualizar el programa.
En el capítulo 2 profundizaremos en el proceso de programación que nos permita adquirir las competencias nece- sarias para iniciar el aprendizaje de las técnicas de programación y obtener los conocimientos precisos a fin de comenzar a diseñar y construir programas.
QR de este contenido:
Descargar esta imagen Aquí