Download lenguajes de programación. - fundamentos de sistemas de
Document related concepts
Transcript
FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW LENGUAJES DE PROGRAMACIÓN. Es un conjunto de reglas y estándares para escribir un programa. Los lenguajes de programación sirven para escribir programas que permitan la comunicación usuario/máquina. Los lenguajes utilizados para escribir programas de computadoras que pueden ser entendidos por ellas se denominan lenguajes de programación. Los lenguajes de programación se clasifican en tres grandes categorías: máquina, bajo nivel (ensamblador) y alto nivel. Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los programas se indica a la computadora qué tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, la computadora sólo entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel. Generaciones de los lenguajes de programación. a. Lenguaje máquina, primera generación: Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la máquina para poder ser ejecutado. Éste es generado por software y no por el programador. El programador escribe en un lenguaje de programación, el cual es traducido al lenguaje de máquina mediante intérpretes y compiladores. Fue utilizado en las primeras computadoras. Es un lenguaje de programación que trabaja sin símbolos y hace referencia a las direcciones reales de la memoria y a los códigos binarios de las instrucciones. Este lenguaje interactúa con el hardware y constituyen el nivel más bajo de programación. Es utilizado muy raramente para el desarrollo de programas de aplicación. También es conocido como lenguaje de primera generación. Todas las instrucciones y datos se especifican en ceros y unos (binario). En la actualidad es poco frecuente su uso. Los lenguajes máquina son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la UCP (Unidad Central de Procesamiento) pueda comprender y ejecutar el programa. Las instrucciones en lenguaje máquina se expresan en términos de la unidad de memoria más pequeña, el bit (dígito binario 0 ó bien 1), en esencia una secuencia de bits que especifican la operación y las celdas de memoria implicadas en una operación. Una serie de instrucciones en lenguaje máquina son: 0010 0000 0000 1001 1001 0001 1001 1110 Como se puede observar, estas instrucciones serán fáciles de leer por la computadora y difíciles por un programador, y viceversa. Esta razón hace difícil escribir programas en código o lenguaje máquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea más fácil leer o escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en lenguaje máquina se han diseñado otros lenguajes de programación que facilitan la escritura y posterior ejecución de los programas. Estos programas son los de bajo y alto nivel. b. Lenguaje de bajo nivel, o de segunda generación: Utilizan códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de programas muy potentes y rápidos, pero son de difícil aprendizaje. UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW 1 FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN Lenguaje ensamblador. Es un lenguaje de programación de bajo nivel, en que las instrucciones y las direcciones de memoria están representadas por símbolos. Permite la utilización de nombres simbólicos en lugar de ceros y unos. De esta manera se podrá utilizar la palabra "suma" para indicarle a la computadora que se requiere sumar dos números. Este lenguaje es utilizado raramente para el desarrollo de software de aplicación y con frecuencia es llamado lenguaje de segunda generación. c. Lenguaje de alto nivel, tercera generación: Por el contrario, son de uso mucho más fácil, ya que en ellos un solo comando o instrucción puede equivaler a millares en código máquina. El programador escribe su programa en alguno de estos lenguajes mediante secuencias de instrucciones. Antes de ejecutar el programa la computadora lo traduce a código máquina de una sola vez (lenguajes compiladores) o interpretándolo instrucción por instrucción (lenguajes intérpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol, Basic, Fortran, C++. Un Programa de computadora, es una colección de instrucciones que, al ser ejecutadas por el UCP de una máquina, llevan a cabo una tarea o función específica. Este conjunto de instrucciones que forman los programas son almacenados en archivos denominados archivos ejecutables puesto que, al teclear su nombre (o hacer “clic” sobre el icono que los identifica) logras que la computadora los cargue y corra, o ejecute las instrucciones del archivo. El contenido de un archivo ejecutable no puede ser entendido por el usuario, ya que no está hecho para que la gente lo lea, sino para que la computadora sea quien lo lea. Los archivos de programas ejecutables contienen el código máquina, que la CPU identifica como sus instrucciones. Son lo que conocemos como Programas Objeto. Dado que sería muy difícil que los programadores crearan programas directamente en código de máquina, usan lenguajes más fáciles de leer, escribir y entender para la gente. El programador teclea instrucciones en un editor, que es un programa parecido a un simple procesador de palabras, estas instrucciones son almacenadas en archivos denominados programas fuentes (código fuente). Si los programadores necesitan hacer cambios al programa posteriormente vuelven a correr el editor y cargan el programa fuente para modificarlo. El proceso de conversión de programas fuente a programas objeto se realiza mediante un programa denominado compilador. El compilador toma un programa fuente y lo traduce a programa objeto y almacena este último en otro archivo. También se le conoce como lenguaje de tercera generación. Generalmente se utiliza para el desarrollo de programas o software de aplicación. Su principal característica es que una instrucción codificada en lenguaje de alto nivel equivale a varias instrucciones en lenguaje maquinal o ensamblador. Además, las personas pueden comprender mejor las instrucciones, y esto hace que se reduzcan el tiempo y el costo para realizar programas. Los programas escritos en este lenguaje requieren su traducción o compilación a lenguaje maquinal a través de unos programas denominados compiladores. d. Lenguajes de muy alto nivel, de cuarta generación (4GL). Es el lenguaje de muy alto nivel cuya característica principal es permitir a los usuarios con poco conocimiento sobre computación y lenguajes de programación, desarrollar sus propios programas de aplicación sin la participación operativa del personal del departamento de informática. Este tipo de programas o sistemas se conoce como cómputo de usuario final. De manera común son lenguajes que permiten la interacción directa del usuario en funciones de consulta y actualización de información. Los lenguajes 4GL son mucho más orientados al usuario que los lenguajes de generaciones anteriores, y los programas se desarrollan especificando instrucciones muy próximas al lenguaje humano. Típicamente los lenguajes 4GL también se denominan lenguajes no procedimentales, ya que los programadores simplemente especifican qué es lo que quieren que el ordenador realice y no cómo. Estos lenguajes se utilizan en ámbitos altamente especializados o de investigación. Un ejemplo: Visual Basic. UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW 2 FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN e. Lenguajes naturales, quinta generación. Existen lenguajes naturales de dos tipos. Por un lado están los lenguajes humanos: el español, inglés, etc. Por otro lado están los lenguajes de programación de quinta generación que usan un lenguaje humano para ofrecer una relación con el ordenador más intuitiva. Los lenguajes naturales de quinta generación están todavía en su infancia, y actualmente puede considerarse que están más cerca de los lenguajes 4GL que de los lenguajes humanos. TRADUCTOR. Unos programas especiales llamados traductores (compiladores e intérpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguaje máquina (0 y 1 bits) que ésta pueda entender COMPILADOR. Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el intérprete debe traducir mientras está en la fase de ejecución (saca todos los errores). Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o Pascal) a programa objeto (instrucciones en lenguaje máquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de programación. Un compilador efectúa la traducción, no ejecuta el programa. Una vez compilado el programa, el resultado en forma de programa objeto será directamente ejecutable. Presentan la ventaja considerable frente a los intérpretes de la velocidad de ejecución, por lo que su uso será mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces. En caso de que se opte por un interpretador se debe considerar que el intérprete resida siempre en memoria. Traduce un programa que se encuentra escrito en algún lenguaje de alto nivel (programa fuente) a lenguaje maquinal. Normalmente el compilador analiza el léxico y verifica la sintaxis del programa, y en una segunda fase hace la traducción. Al programa compilado se le denomina programa objeto y está listo para que la computadora lo ejecute. Como se puede observar, los compiladores (intérpretes, traductores) son una pieza fundamental para el trabajo del programador, ya que son los que permiten obtener código máquina directamente ejecutable de un programa escrito en un lenguaje de más alto nivel. Las tecnologías de compilación constituyen una parte muy importante de la evolución de los lenguajes de programación. Según los lenguajes pertenecen a generaciones más avanzadas, se requieren compiladores más complejos. Un aspecto muy importante de los compiladores es la idea de portabilidad, que permite producir programas para distintos tipos de computadoras a partir de un mismo programa en algún lenguaje de alto nivel. Por ejemplo, si tenemos un programa en el lenguaje C, y utilizamos el compilador de C para PC, entonces podremos generar el programa en código máquina para PC con Windows y por tanto ejecutar el programa en un PC. Si, con el mismo programa en C, utilizamos el compilador para un ordenador UNIX de HP entonces obtendremos un ejecutable para esa máquina. Para que esto sea posible es necesario que nuestros programas no utilicen funciones particulares a ninguna máquina. En muchas ocasiones es imposible evitar usar este tipo de funciones. EDITOR. Un editor es un programa que permite escribir texto o números en un archivo utilizando un formato estándar (ASCII). Es distinto de un procesador de textos en el sentido de que cada procesador de textos UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW 3 FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN utiliza sus códigos propios para organizar el texto y la impresión del mismo; por eso los textos creados por un procesador sólo pueden ser leídos con ese procesador. Mientras que todos los editores escriben con un mismo código estándar. Existen en los procesadores de texto mandatos especiales para pasar un documento a formato texto del DOS. DEPURADOR. Cuando se escriben programas, es normal cometer errores (bugs). De hecho, en promedio, un programador comete un error cada 10 líneas de programa. Esto significa que la probabilidad de que el programa funcione a la primera vez es prácticamente nula. Por lo tanto, el desarrollo de un programa siempre incorpora una etapa de depuración (debugging), que consiste en buscar y resolver los errores cometidos durante la programación. Para facilitar la etapa de depuración es conveniente usar herramientas especializadas para estos efectos. La más común es el depurador o también llamado “debugger”. Un depurador es una herramienta que permite intervenir durante la ejecución de un programa, para saber cómo se está ejecutando. El depurador permite: Ejecutar paso a paso un programa (stepping). Establecer puntos de detención (breakpoints). Examinar el contenido de las variables y objetos. Conocer el encadenamiento de llamadas de procedimientos. Retomar la ejecución hasta un nuevo punto de detención. Depuración manual: Cuando no se dispone de un depurador, se debe recurrir a la depuración manual. Ésta consiste en preparar el programa para poder conocer cómo se está ejecutando el programa. La técnica más usual de depuración de programas consiste en colocar instrucciones para imprimir en puntos estratégicos del programa, desplegando el contenido de las variables. Referencias: o o Hernández, Antonio y Ramos Raúl. ¿Qué es la informática aplicada las ciencias del deporte?. Recuperado en noviembre de 2003, de http://www.efdeportes.com/efd33a/informa.htm Méndez, Justo. Lenguajes de Programación. Recuperado en noviembre de 2003, http://www.monografias.com/trabajos/lengprog/lengprog.shtml Actividad: o REALIZAR EN EQUIPO DE 2 LA SÍNTESIS DE ESTE MATERIAL. Llenar el cuadro y presentar ejemplos. UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW 4 a de