Los lenguajes de programacin Introduccin La programacin de

  • Slides: 51
Download presentation
Los lenguajes de programación

Los lenguajes de programación

Introducción La programación de computadoras es una de las áreas mas interesantes de la

Introducción La programación de computadoras es una de las áreas mas interesantes de la tecnología moderna. Para comunicarnos con estas maquinas es necesario recurrir a lenguajes especiales. Este trabajo presenta brevemente lo que son los lenguajes de programación, como se clasifican, las características y diferencias de los principales lenguajes y para finalizar, estudiaremos cual es el proceso que le permite a la computadora entender esos lenguajes.

Finalidad de los lenguajes Entre los seres humanos el lenguaje es un medio de

Finalidad de los lenguajes Entre los seres humanos el lenguaje es un medio de comunicación de ideas, sentimientos, necesidades, ordenes. De un modo similar, entre el hombre y la computadora la comunicación se establece por medio de un lenguaje especializado. � Las computadoras pueden hacer algunas tareas elementales(con mucha rapidez) y combinándolas en forma adecuada es posible obtener resultados útiles. � Un lenguaje de programación permite que el usuario controle las tareas elementales de la computadora, además de mantener un nivel de comunicación adecuado. Por tanto, programar consiste en lograr que la computadora funcione como queremos, aplicando las facilidades de un lenguaje. �

� La programación de las primeras computadoras (para cambiar un proceso por otro) se

� La programación de las primeras computadoras (para cambiar un proceso por otro) se efectuaba reacomodando cables y conexiones (los programas eran cableados). Gracias al espíritu inquieto de muchos investigadores esta actividad fue facilitada y mejorada, quitándole lo mecánico y volviéndola lógica.

Clasificación de los lenguajes

Clasificación de los lenguajes

En la actualidad hay una gran variedad de lenguajes de programación, cada uno con

En la actualidad hay una gran variedad de lenguajes de programación, cada uno con muchas ventajas y también con desventajas. No obstante, los lenguajes pueden agruparse según sus características comunes. Los lenguajes de programación han sido clasificados de muchas maneras: *Por su nivel *Por sus aplicaciones principales. La clasificación de los lenguajes por su nivel se refiere a qué tan cercanos están los lenguajes a las características físicas de la computadora o qué tan próximos están alas necesidades del programador. La segunda, por aplicaciones, se refiere a las ventajas que tienen los lenguajes para resolver ciertos problemas específicos.

Clasificación de los lenguajes por su nivel LENGUAJES DE BAJO NIVEL � Los lenguajes

Clasificación de los lenguajes por su nivel LENGUAJES DE BAJO NIVEL � Los lenguajes de bajo nivel son aquellos que el procesador de la computadora entiende en forma directa. � Dependen de las características de cada tipo de maquina y sólo son comprensibles por especialistas. � Aparecieron durante la primera generación de computadoras y entran en esta categoría el lenguaje maquina y el lenguaje ensamblador.

LENGUAJES DE ALTO NIVEL � Los lenguajes de alto nivel son aquellos desarrollados para

LENGUAJES DE ALTO NIVEL � Los lenguajes de alto nivel son aquellos desarrollados para el usuario de la computadora. � Permiten que los procedimientos se expresen con un estilo comprensible; sin embargo, la computadora no los entiende directamente. � Algunos de estos lenguajes fueron desarrollados durante la segunda generación de computadoras y la mayoría durante la tercera. � Ejemplos de lenguajes de alto nivel son: Pascal, BASIC, Ada, FORTRAN, etcétera.

LENGUAJES DE NIVEL MEDIO � Los lenguajes de nivel medio se definen como lenguajes

LENGUAJES DE NIVEL MEDIO � Los lenguajes de nivel medio se definen como lenguajes que reúnen las ventajas de los dos niveles anteriores. � Los únicos lenguajes de este tipo son C y Forth.

El siguiente esquema presenta el lugar que ocupan los lenguajes dentro del campo de

El siguiente esquema presenta el lugar que ocupan los lenguajes dentro del campo de la computación. � El lenguaje mas cercano al hardware (centro de la figura) es el lenguaje maquina, circundado por el lenguaje ensamblador. Como este ultimo se encuentra mas alejado del hardware, hay una capa de traducción llamada programa ensamblador. Mas hacia el exterior están los lenguajes de alto nivel y de cuarta generación. Ambos requieren de un estrato intermedio de traducción, formado por los compiladores e intérpretes. � Lenguajes de cuarta generación Lenguajes de alto nivel Compiladores e interpretes Lenguaje ensamblador Programa ensamblador Lenguaje máquina Hard ware

Clasificación de los lenguajes por su aplicación Muchos de los lenguajes de alto nivel

Clasificación de los lenguajes por su aplicación Muchos de los lenguajes de alto nivel desarrollados para servir a un objeto en especial. A continuación una clasificación de los lenguajes de acuerdo con las áreas de aplicación: *Lenguajes de propósito general: Pascal, BASIC. *Lenguajes para aplicaciones científicas: FORTRAN, APL. *Lenguajes didácticos: Logo. *Lenguajes para administración. COBOL, RPG, SQL.

*Lenguajes para inteligencia artificial: Prolog, Lisp. *Lenguajes para programación de sistemas: C, Ada. *Lenguajes

*Lenguajes para inteligencia artificial: Prolog, Lisp. *Lenguajes para programación de sistemas: C, Ada. *Lenguajes de programación orientada a objetos (OOP): Small. Talk, Java, C++. *lenguajes de cuarta generación (4 GL): Mapper, Cogen, Linc. *Lenguajes orientados a la interfaz gráfica: Visual Basic, Visual C++, Delphi.

Lenguajes de bajo nivel

Lenguajes de bajo nivel

Los lenguajes de bajo nivel, lenguaje maquina y ensamblador, aparecieron durante la primera generación

Los lenguajes de bajo nivel, lenguaje maquina y ensamblador, aparecieron durante la primera generación de computadoras y siguen siendo utilizados ya que son los lenguajes propios de los microprocesadores, aunque sólo los usan programadores especializados.

El lenguaje máquina El CPU de una computadora es un circuito electrónico digital, por

El lenguaje máquina El CPU de una computadora es un circuito electrónico digital, por ello solo entiende pulsos electrónicos. Esos pulsos eléctricos corresponden a secuencias de unos y ceros que el procesador maneja y entiende, y son conocidas como lenguaje maquina; no importa que tan moderna sea la computadora, cualquier programa que ejecute deberá estar en lenguaje maquina antes de que el CPU pueda entenderlo. � Programar en código maquina permite el control directo del CPU. Sin embargo, sise cambia de computadora, el lenguaje cambia. Por lo tanto, un programa realizado en el código maquina de un procesador no sirve para otro procesador diferente. �

� A continuación se muestra como ejemplo un programa en lenguaje maquina que lee

� A continuación se muestra como ejemplo un programa en lenguaje maquina que lee os números desde el teclado, los suma e imprime el resultado. Fue escrito para computadoras con microprocesador Intel 8086 (y sólo funcionará en maquinas con este procesador o compatible). 10110100 00000001 11001101 0010001 (leer un número desde el teclado) 10001010 11111000 10110100 00000001 11001101 00100001 (leer otro número desde el teclado) 00000010 11111000 (sumar los números) 10110100 00000010 10001010 11010111 1100110100100001 (imprimir el resultado) 10111000 01001100 0000 (terminar proceso) 11000011 Aquí se observa con toda claridad que este lenguaje no es sencillo y con facilidad causa confusión.

� B 4 CD 8 A B 4 CD 02 B 4 8 A

� B 4 CD 8 A B 4 CD 02 B 4 8 A CD B 8 C 3 Para disminuir las confusiones con los ceros y unos se recurre a la equivalencia hexadecimal de cada byte. 01 21 F 8 02 D 7 21 4 C 00 (leer un número desde el teclado) (leer otro número desde el teclado) (sumar los números) (imprimir e resultado) (terminar proceso) La ventaja del código maquina es el control directo del procesador y la gran velocidad de ejecución. Además, pese a los avances logrados en lenguajes, aún existen rutinas que sólo es posible hacer en código maquina.

El lenguaje ensamblador � Para allanar algunas de las dificultades que presentaba la programación

El lenguaje ensamblador � Para allanar algunas de las dificultades que presentaba la programación en lenguaje maquina se desarrollo un método mnemotécnico que establecía una equivalencia entre las secuencias binarias y un conjunto de abreviaturas que indicaban las acciones efectuadas por el procesador. A esta mejora se le nombró como lenguaje ensamblador y sus instrucciones mnemotécnicas o mnemónicas.

El lenguaje ensamblador maneja símbolos que el procesador no entiende de inmediato, por ello

El lenguaje ensamblador maneja símbolos que el procesador no entiende de inmediato, por ello los programas deben traducirse a lenguaje maquina para ejecutarse. � Ese proceso de traducción (conocido como ensamblado) es sencillo pues existe una relación uno a uno entre las instrucciones en ensamblador y las secuencias numéricas en código maquina. � Gracias al ensamblador las revisiones y cambios ya no se realizan sobre el código binario de la computadora, sino sobre símbolos. �

El programa antes presentado luce así en lenguaje ensamblador: MOV AH, 0 1 H

El programa antes presentado luce así en lenguaje ensamblador: MOV AH, 0 1 H I N T 2 1 H (leer un número desde el teclado) MOV BH, AL MOV AH, 0 1 H I N T 2 1 H (leer otro numero desde el teclado) A DD BH , BL (sumar los números) MOV DL, BH I N T 2 1 H M O V A X , 4 C 0 0 H (imprimir el resultado) I N T 21 (terminar proceso) RET El ensamblador tiene las mismas ventajas que el lenguaje maquina: control directo del procesador y gran velocidad de ejecución; además, ofrece mayores facilidades para el desarrollo de programas. También es un lenguaje que depende por completo de cada tipo de computadora.

Lenguajes de alto nivel Debido a las dificultades que presentaba programar con lenguajes de

Lenguajes de alto nivel Debido a las dificultades que presentaba programar con lenguajes de bajo nivel, se desarrollaron nuevos lenguajes, llamados de alto nivel, que facilitaron bastante el trabajo de los programadores. � Actualmente hay gran variedad de lenguajes, algunos aparecieron en la segunda generación (FOLTRAN, ALGOL y COBOL), la mayoria en la tercera y se siguen desarrollando más. �

CARACTERISTICAS GENERALES Por muy diferentes que puedan ser entre sí los lenguajes de alto

CARACTERISTICAS GENERALES Por muy diferentes que puedan ser entre sí los lenguajes de alto nivel, todos poseen las siguientes caracteristicas:

� Independencia: el lenguaje no depende de un equipo en particular � Transportabilidad: un

� Independencia: el lenguaje no depende de un equipo en particular � Transportabilidad: un programa hecho en una computadora puede funcionar en otra

� Generación de códigos: los programas hechos en lenguajes de alto nivel deben ser

� Generación de códigos: los programas hechos en lenguajes de alto nivel deben ser traducidos a lenguaje maquina para poder ejecutarse. � Notación orientada al problema: los lenguajes y su gramática se especializan hacia un área especifica (administrativa, científica, etcétera).

� Uso de identificadores: los valores o procesos pueden s ser referidos mediante símbolos

� Uso de identificadores: los valores o procesos pueden s ser referidos mediante símbolos o palabras, en lugar de números. � Similitud con el lenguaje ordinario: las palabras del lenguaje y sus estructuras son parecidas al idioma inglés.

El lenguaje FORTRAN Fue el primer lenguaje de alto nivel que apareció. Su nombre

El lenguaje FORTRAN Fue el primer lenguaje de alto nivel que apareció. Su nombre es una abreviatura de FORmula TRANslating system. Se desarrolló a partir de 1954 y dos años más tarde apareció en el IBM 704. Se mejoraron sus características y se transformo en FORTRAN II (1958). FORTRAN III no se utilizo públicamente y en 1962 se desarrollo FORTRAN IV para IBM 7090/7094. La ultima versión estándar es FORTRAN 95. � FORTRAN fue orientado hacia la solución de problemas y permite el manejo de números complejos. �

El lenguaje ALGOL � El ALGOL (ALGOrithmic Language) apareció en 1985, tras su discusión

El lenguaje ALGOL � El ALGOL (ALGOrithmic Language) apareció en 1985, tras su discusión en un comité de dos asociaciones de informática (ACMamericana y GAMM-europea). Fue el primer lenguaje estructurado. � El ALGOL se orientó hacia problemas científicos. Sus principales características fueron ser algorítmico y permitir la recursividad.

El lenguaje COBOL son siglas de Common Business Oriented Lenguaje. Sus orígenes remontan a

El lenguaje COBOL son siglas de Common Business Oriented Lenguaje. Sus orígenes remontan a 1959, cuando después de una reunión de fabricantes de computadoras, industrias y gobierno estadounidense, se planteó la necesidad de un lenguaje que estuviese enfocado hacia las necesidades administrativas. Como resultado se formó el Comité CODASYL(Conference on Data Systems Languajes) que desarrolló una descripción del lenguaje, apareciendo finalmente COBOL en 1960. � COBOL fue el primer lenguaje transportable y su enfoque de trabajo es hacia problemas administrativos. �

El lenguaje BASIC son las siglas de Beginner’s All-purpose Symbolic Instruction Code. Este lenguaje

El lenguaje BASIC son las siglas de Beginner’s All-purpose Symbolic Instruction Code. Este lenguaje fue desarrollado en 1965, en el Darmouth College (New Hamshire), por Thomas Kurtz y John Kenemy. Estos investigadores tuvieron como finalidad tener un lenguaje facil de aprender (en aquella época ninguno de los lenguajes existentes resultaba sencillo para los estudiantes universitarios). � Sus características son la simplicidad, el fácil aprendizaje, la versatilidad, y no ser estructurado. �

El lenguaje LOGO Este lenguaje fue creado por Seymour Papert (del Tecnológico de Massachussets)

El lenguaje LOGO Este lenguaje fue creado por Seymour Papert (del Tecnológico de Massachussets) en las postrimerías de la década de los sesenta, y es una variante de LISP (LISt Processor). Mediante él intentó reunir teorías pedagógicas de aprendizaje e inteligencia artificial. � LOGO es un eficiente lenguaje educativo (para enseñanza de programación y aprendizaje en general) gracias a su sencillez y a sus capacidades graficas (conocidas como gráficos de tortuga). � LOGO tiene como características ser interactivo, ampliable y recursivo. Debido a su ascendiente (LISP) puede servir de introducción en los campos de inteligencia artificial y procesamiento de listas. �

El lenguaje Pascal En honor a Blaise Pascal, Nicklaus Wirth así bautizó al lenguaje

El lenguaje Pascal En honor a Blaise Pascal, Nicklaus Wirth así bautizó al lenguaje que diseñó en 1970. el lenguaje Pascal tuvo propósito enseñar , os principios de la programación estructurada a estudiantes universitarios. Tuvo como antecesor directo al ALGOL; sin embargo, en Pascal es más sencillo el manejo de datos y no es tan extenso. � Es un lenguaje estructurado, transportable, de propósito general, recursivo y modular. �

El lenguaje C Durante la década de los sesenta se empezó a sentir necesidad

El lenguaje C Durante la década de los sesenta se empezó a sentir necesidad de un lenguaje de programación que tuviera facilidades y estructuras de un lenguaje de alto nivel pero que permitiera también manipular directamente al procesador de la computadora. � El primer intento lo realizó Martin Richards en la Universidad de Cambridge (Inglaterra) en 1969, con el lenguaje BCPL. En los laboratorios Bell tomaron sus conceptos y desarrollaron el lenguaje B. En 1972 Ken Thompson y Dennis Ritchie empiezan a extender este lenguaje dando creación al lenguaje C. � Las capacidades del C promovieron que el núcleo del sistema operativo Unix fuera reescrito casi en su totalidad en este lenguaje, en 1973. � El lenguaje C es uno de los más populares en la actualidad, se ha implantado en casi la totalidad de las computadoras y ha mantenido gran estandaridad en sus librerías de funciones, gracias a lo cual es muy útil para desarrollar sistemas transportables. �

Traducción de lenguajes

Traducción de lenguajes

� Cuando se escribe un programa en lenguaje de alto nivel, éste debe traducirse

� Cuando se escribe un programa en lenguaje de alto nivel, éste debe traducirse al lenguaje máquina de la computadora para lo que lo pueda ejecutar. � Este proceso de traducción se realiza mediante programas especializados llamados compiladores e intérpretes. Disco Programa fuente Programa objeto traducción inté rpre te CPU Cargar programa d pila com r o

Tipos de programa � Una vez escrito un programa éste puede estar en código

Tipos de programa � Una vez escrito un programa éste puede estar en código fuente, código objeto o código ejecutable. Código fuente: es el conjunto de instrucciones tal y como fueron escritas por el programador en el lenguaje de alto nivel (también se le conoce como programa fuente). � Código objeto: son las instrucciones de un programa cuando ya han sido traducidas a lenguaje máquina (también se le conoce como programa fuente). � Código ejecutable: es un código objeto que puede ser ejecutado por la computadora de inmediato (no todos los códigos objeto son ejecutables. ) �

El compilador es un programa especial que traduce un programa fuente (escrito en un

El compilador es un programa especial que traduce un programa fuente (escrito en un lenguaje de alto nivel) a un código objeto. � Un compilador analiza las líneas del programa e identifica ciertas estructuras para traducirlas adecuadamente a lenguaje máquina. Una vez que se ha efectuado la compilación puede prescindirse del programa fuente. � Los compiladores son propios de cada lenguaje de programación. Algunos ejemplos de lenguajes que requieren compilador son: Pascal, C, FORTRAN, COBOL, ALGOL, Y APL. �

� El proceso de compilación se verifica en cinco etapas: Programa fuente Análisis de

� El proceso de compilación se verifica en cinco etapas: Programa fuente Análisis de léxico Análisis de sistemas Generación de código intermedio Generación de código máquina Programa objeto

Análisis léxico: durante esta etapa se verifica que las palabras utilizadas en el programa

Análisis léxico: durante esta etapa se verifica que las palabras utilizadas en el programa fuente pertenezcan al lenguaje. � Análisis de sintaxis: esta parte de la compilación examina cada instrucción del programa fuente para que las instrucciones estén organizadas correctamente. � Generación de código intermedio: este paso produce un código simbólico que permitirá efectuar la equivalencia con lenguaje máquina. � Generación de código máquina: en esta última etapa se elabora el programa objeto. �

El intérprete Es un programa especial que traduce (a lenguaje máquina) cada línea del

El intérprete Es un programa especial que traduce (a lenguaje máquina) cada línea del programa fuente y la ejecuta de inmediato. � Los interpretes no producen código objeto, por ello la ejecución de un programa requiere forzosamente del código fuente. Además, los programas en lenguaje interpretado se ejecutan con más lentitud que aquellos en lenguaje compilado. � Son lenguajes que requieren intérprete: BASIC, LOGO, Prolog, LISP Y Small. Talk. �

Conclusiones

Conclusiones

Un lenguaje de programación permite que el usuario controle las tareas elementales de la

Un lenguaje de programación permite que el usuario controle las tareas elementales de la computadora. � La programación de las primeras computadoras era por medio de cables. � Los lenguajes de programa se clasifican por su nivel y por sus aplicaciones principales. � Lenguajes de bajo nivel son los que el procesador de la computadora entiende directamente. Dependen de las características de cada tipo de máquina. � Son lenguajes de bajo nivel el lenguaje máquina y el lenguaje ensamblador. �

� Lenguajes de alto nivel son lenguajes que permiten que los procedimientos de expresen

� Lenguajes de alto nivel son lenguajes que permiten que los procedimientos de expresen con palabras y estructura comprensibles. � Algunos lenguajes de alto nivel son: Pascal, BASIC, Ada, FORTRAN. � Los lenguajes de nivel medio son los que reúnen las ventajas de lenguajes de alto y bajo nivel. Los únicos de este tipo son C y Forth. � El CPU de una computadora es un circuito electrónico digital que sólo entiende pulsos electrónicos.

� El lenguaje máquina son las secuencias de unos y ceros que el procesador

� El lenguaje máquina son las secuencias de unos y ceros que el procesador maneja y entiende. � Cualquier programa deberá estar en lenguaje máquina antes de que el CPU pueda entenderlo. � Programar en código máquina permite el control directo del CPU y gran velocidad de ejecución. � Un programa escrito en el lenguaje máquina de un procesador específico no sirve para otro diferente.

El lenguaje ensamblador maneja símbolos y existe una relación uno a uno entre esos

El lenguaje ensamblador maneja símbolos y existe una relación uno a uno entre esos símbolos y las secuencias numéricas en código máquina. También es un lenguaje totalmente dependiente de cada tipo de computadora. � Las instrucciones en ensamblador no las entiende directamente del CPU, por ello los programas deben traducirse a lenguaje máquina para poder ejecutarse (proceso de ensamblado). � Las ventajas del lenguaje ensamblador son control directo del procesador , gran velocidad de ejecución y facilidades para la depuración y mantenimiento de programas. �

Son características de los lenguajes de alto nivel la independencia, transportabilidad, generación de código,

Son características de los lenguajes de alto nivel la independencia, transportabilidad, generación de código, notación orientada al problema, uso de identificadores y similitud con el lenguaje ordinario. � El lenguaje FORTRAN (FORmula TRANslating system) fue el primer lenguaje de alto nivel que apareció. Se orientó a la solución de problemas numéricos. � El lenguaje ALGOL (ALGOrithmic Languaje) fue el primer lenguaje estructurado, algorítmico y que permitió la recursividad. Se orientó hacia problema científicos. �

� El lenguaje COBOL (Common Business Oriented Languaje) fue el primer lenguaje transportable y

� El lenguaje COBOL (Common Business Oriented Languaje) fue el primer lenguaje transportable y su enfoque de trabajo e hacia problemas administrativos. � El lenguaje Pascal ha tenido como propósito enseñar los principios de la programación estructurada. Sus principales características son ser un lenguaje estructurado, transportable, de propósito general, recursivo y modular.

� El lenguaje C es muy útil para la programación de sistema debido a

� El lenguaje C es muy útil para la programación de sistema debido a su estandarizad, a la gran cantidad de computadoras que lo han implementado y que permite grandes facilidades para el control directo de la computadora. Se desarrolló en 1972 por Thompson y Ritchie (laboratorios Bell) y se encuentra emparentado con el sistema operativo UNIX. � El código fuente es el conjunto de instrucciones en lenguaje de alto nivel.

� El código objeto son las instrucciones de un programa que ya han sido

� El código objeto son las instrucciones de un programa que ya han sido traducidas a lenguaje máquina. � El código ejecutable es un código objeto que puede ser ejecutado por la computadora de inmediato. � Un compilador es un programa especial que traduce un programa escrito en lenguaje de alto nivel a un código objeto. � Algunos ejemplos de lenguajes que requieren compilador son: Pascal, C, FORTRAN, COBOL, ALGOL Y APL.

Los pasos de compilación son análisis léxico, análisis de sintaxis, generación de código intermedio

Los pasos de compilación son análisis léxico, análisis de sintaxis, generación de código intermedio y generación de código máquina. � El intérprete es un programa especial que traduce (a lenguaje máquina) cada línea del programa fuente y la ejecuta de inmediato. � Los intérpretes no producen código objeto. La ejecución de un programa requiere del código fuente. Los programas en lenguaje interpretado se ejecutan con más lentitud que aquellos en lenguaje compilado. � Los lenguajes que requieren intérprete son BASIC, LOGO, Prolog y LISP. �

Bibliografía � Vasconcelos Santillán, INTRODUCCIÓN A LA COMPUTACIÓN, México 2005, 103 -105 pp. ,

Bibliografía � Vasconcelos Santillán, INTRODUCCIÓN A LA COMPUTACIÓN, México 2005, 103 -105 pp. , Publicaciones cultural.

Elaboraron: � Karen Cruz Ríos � Blanca Estela Espinal Hernández � Abraham Mayer Chávez

Elaboraron: � Karen Cruz Ríos � Blanca Estela Espinal Hernández � Abraham Mayer Chávez