Introducción a la programación
Hoy en día, los computadores han llegado a tomar parte en la mayoría de nuestras actividades cotidianas, logrando con éstos desempeñar una gran variedad de tareas de manera rápida y automática; liberándonos así de tener que realizarlas manualmente. Los computadores son máquinas que facilitan nuestro trabajo; con éstos podemos llevar a cabo diversas actividades, tales como: manejar los registros contables de una empresa, gestionar citas médicas, realizar gráficos o dibujos complejos, jugar videojuegos, procesar música, etc. Sin embargo, para lograr tales fines es preciso dotar al computador la capacidad de ser programable, es decir, que podamos suministrarle una serie de instrucciones en un orden lógico que le indiquen, paso a paso, cada una de las acciones que debe realizar para ejecutar una determinada tarea.
Al leer lo anterior, quizás usted ya pueda hacerse una idea y responder con sus propias palabras ¿qué es programación?, pues bien, al proceso de suministrar instrucciones a un computador, u otro tipo de máquina programable, para que ejecute una o varias tareas específicas, se le conoce como Programación; y al conjunto de instrucciones integradas como una sola unidad es lo que se conoce como Programa o Aplicación.
La programación nos ofrece una amplia senda de posibilidades, pues a través de ella podremos dar soluciones a problemas reales en función de la razón, la intuición, y el conocimiento humano. Gracias al avance en las ciencias de las ciencias de la programación, y de la computación, se ha logrado el desarrollo de las numerosas aplicaciones para computadores que se utilizan hoy en día; algunos ejemplos estas aplicaciones son: el procesador de textos Word; los navegadores de internet tales como Explorer y Firefox; y los reproductores de audio y video como Winamp, Windows Media, y QuickTime.
Los Lenguajes de Programación
Para que las máquinas programables puedan "entender instrucciones" es necesario utilizar un sistema que permita la comunicación entre el usuario y la máquina. Los lenguajes de programación son la forma de expresión idónea para lograr ése objetivo. Tales lenguajes están constituidos por un conjunto de reglas, términos, símbolos, y códigos convencionales; con los cuales podemos introducir todas las instrucciones que se requieren al momento de crear los programas que posteriormente serán ejecutados por una máquina.
A lo largo del tiempo se han desarrollado un gran número de lenguajes de programación, sin embargo, solo unos cuantos de éstos han ganado popularidad. Algunos de los lenguajes más populares que hoy tienen un gran valor en la historia de la computación son: Basic, Cobol, Fortran, RPG, PL/1, Pascal, Logo y C. Cada uno de estos lenguajes utiliza una forma de expresión diferente para poder comunicarse con las máquinas.
Clasificación de los lenguajes de programación
Los lenguajes de programación se pueden clasificar, en primera instancia, según el grado de similitud que tienen con el lenguaje natural, en tres grupos; los cuales se describen a continuación:
Lenguajes de bajo nivel: son aquellos que únicamente son inteligibles por las máquinas y, que por tanto, permiten una comunicación directa con el hardware de las mismas. En estos lenguajes las instrucciones están representadas por códigos binarios, o por sus equivalentes en códigos hexadecimales; y que no son fáciles de entender a simple vista por el ser humano, ya que requieren de un estudio previo para su comprensión. Los lenguajes de programación de bajo nivel difieren de una máquinas a otra; esto significa que, cada modelo de máquinas programable traerá definido su propio juego de instrucciones. Un ejemplo de lenguaje de bajo nivel es el Lenguaje Binario.
Binario Hex. Significado 01000000 40h Mover el contenido del Registro B al Reg. B 01000001 41h Mover el contenido del Registro B al Reg. C 01000010 42h Mover el contenido del Registro B al Reg. D 01000011 43h Mover el contenido del Registro B al Reg. E 01000100 44h Mover el contenido del Registro B al Reg. H 01000101 45h Mover el contenido del Registro B al Reg. L
En las terminologías de la computación, a los lenguajes de bajo nivel también se les conoce como Lenguajes de Máquina; y a los programas escritos mediante estos lenguajes se les denomina Programa Objeto o Código de Máquina (ver ejemplo 1).
Lenguajes de medio nivel: en estos lenguajes las instrucciones están representadas por códigos alfabéticos basados en abreviaturas del del idioma inglés, denominadas como Abreviaturas Nemotécnicas. Estos lenguajes no son directamente inteligibles por las máquinass, ya que requieren pasar por un proceso de traducción mediante equipos y herramientas especiales para cada máquinas. Un lenguaje de medio nivel muy conocido es el Lenguaje Assembly.
Nemotécnico Hex. Significado MOV B, B 40h Mover el contenido del Registro B al Reg. B MOV B, C 41h Mover el contenido del Registro B al Reg. C MOV B, D 42h Mover el contenido del Registro B al Reg. D MOV B, E 43h Mover el contenido del Registro B al Reg. E MOV B, H 44h Mover el contenido del Registro B al Reg. H MOV B, L 45h Mover el contenido del Registro B al Reg. L
Aunque los lenguajes de medio nivel no permiten una comunicación directa con el hardware, como lo hacen los lenguajes de bajo nivel, si que permiten controlar partes muy especificas del hardware. Los lenguajes de medio nivel facilitan la programación en gran medida, pues evidentemente, es más sencillo recordar instrucciones mediante una abreviatura nemotécnica que recordarlas mediante su equivalente en código binario o hexadecimal (comprare los ejemplos 1 y 2).
Lenguajes de alto nivel: son aquellos que tienen un mayor grado de similitud con los lenguajes humanos (en especial con el idioma inglés), lo que facilita aun más su comprensión a simple vista. Al igual que los lenguajes humanos, los lenguajes de programación de alto nivel están constituidos por un juego de palabras predefinidas (léxico) y un conjunto de reglas gramaticales (sintaxis) que permiten introducir correctamente las instrucciones en cualquier computadora o máquinas programable. Algunos de los lenguajes que ya se mencionaron al principio de este tema; como Basic, C, Cobol, Fortran, y Pascal, son ejemplos de lenguajes de alto nivel.
a) Lenguaje Pascal: If n = 5 Then A := A * 3; b) Lenguaje Basic: If n = 5 Then A = A * 3 End If c) Lenguaje C: If (n == 5) { A *= 3 }
En la jerga de la computación, a los programas escritos en lenguajes de alto nivel también se les conoce como Programa Fuente o Código Fuente (ver ejemplo 3).
La gran similitud que tienen los lenguajes de alto nivel con los lenguajes humanos no los hace directamente inteligibles por las máquinass; por lo tanto, éstos requieren de un proceso de compilación o de interpretación, en el cual se transforma el código fuente en un código objeto que si sea inteligible por las máquinas.
Analizando los lenguajes de programación
En la imagen de la figura 1 se intenta ilustrar el grado de aproximación que tienen los distintos lenguajes de programación con el lenguaje natural; basándonos en las definiciones de los tres niveles de los lenguajes de programación podremos analizar lo siguiente:
- Los lenguajes como Basic, Cobol, C, Fortran y Pascal representan el nivel más alto y el más próximo al lenguaje natural, por tanto, son los lenguajes más fáciles que los usuarios pueden entender.
- Un lenguaje de alto nivel no puede comunicarse directamente con el hardware, por lo tanto, primero requiere ser compilado o interpretado.
- El Lenguaje Binario representa el nivel más bajo de la programación y es el más directo al hardware y, además, es el único lenguaje que las máquinass pueden "entender".
- Un lenguaje de bajo nivel permite una comunicación directa con la máquina, la cual permite tener un control total sobre partes más específicas del hardware.
- El Lenguaje Assembly representa un nivel de programación intermedio entre el usuario y el hardware. Podemos considerar a un lenguaje de medio nivel como una combinación de características tanto de lenguajes de bajo nivel, como de lenguajes de alto nivel.
Compiladores, Intérpretes, y Entornos de Desarrollo
Para que podamos crear programas o aplicaciones, mediante un lenguaje de programación, es necesario contar con una serie de herramientas que nos permita introducir y traducir las instrucciones a un lenguaje que sea entendible por el computador. Hay dos tipos de herramientas básicas que cumplen ese propósito; entre éstas tenemos los compiladores y los intérpretes, o incluso la combinación de ambos. Cada lenguaje requiere su propio compilador o intérprete; a excepción de los lenguajes de bajo nivel que, al ser directamente inteligibles por la máquina, no necesitan ser compilados o interpretados.
La diferencia entre un compilador y un intérprete, es que el primero traduce una vez todo el código fuente de un programa al lenguaje de la máquina; mientras que, el segundo solo interpreta línea por línea el código fuente, durante cada ejecución de un programa. Normalmente, los compiladores e intérpretes se encuentran disponibles como parte del software de programación instalable en la máquina.
Otra herramienta de programación más completa son los entornos de desarrollo (también llamados Entornos de Desarrollo Integrado o IDE); éstos están conformados por un conjunto de utilidades, herramientas y recursos que facilitan el trabajo de programación; siendo todo accesible desde una misma interfaz. Entre los principales elementos que constituyen un entorno de desarrollo se incluyen: un compilador o un intérprete (o ambos), y un editor de código fuente.
Para los lenguajes de alto nivel, estos entornos de desarrollo suelen estar integrados en forma de software que pueda instalarse en cualquier maquina; mientras que para los lenguajes de medio y bajo nivel, suelen estar formados mediante la combinación de hardware y software específico para cada maquina. En otro artículo se hablará más acerca de algunos entornos de desarrollos para el Lenguaje Pascal actualmente disponibles.
Una recomendación final
Al estudiar una carrera como programador usted podrá crear sus propios programas o aplicaciones; sin embargo, cabe aclarar que en este blog no se pretende capacitarlo como programador de aplicaciones avanzadas, sino que se tratarán solamente los temas básicos que son necesarios para quienes inician su aprendizaje. Por tanto, si usted desea ejercer su carrera a un nivel profesional, no se conforme con lo que se le enseña; adquiera una actitud investigativa, ya sea consultando libros y otros recursos en internet; esto le ayudará a ampliar sus conocimientos o a corroborar la información que a Usted se le haya impartido.
Publicar un comentario