ed-b1 instalación y uso de entornos

UT 1: introducción. lenguajes e intérpretes

eugeniaperez.es

UT 1: INTRODUCCIÓN. COMPILADORES E INTÉRPRETES

1 Lenguajes de programación

OBJETIVOS

  • Introduccir los lenguajes de programación y su tipología
  • Mostrar el concepto de compilación y ejecución
  • Distinguir entre lenguajes en función de la forma de ejecución
  • Enumerar las fases del desarollo del software

 

eugeniaperez.es

UT 1: INTRODUCCIÓN. COMPILADORES E INTÉRPRETES

1 Lenguajes de programación

  • LENGUAJES DE PROGRAMACIÓN
    • FASES DEL PROCESO DE PROGRAMACIÓN
    • CARACTERÍSTICAS
    • TIPOLOGÍA
  • ​CLASIFICACIÓN Y TIPOLOGÍA
  • INTERPRETACIÓN Y COMPILACIÓN
  • PROCESO DE DESARROLLO

eugeniaperez.es

CONTENIDOS

UT 1: introducción: compiladores e intérpretes

1 Lenguajes de programación

ANTES DE EMPEZAR...

¿Conoces algún lenguaje de programación?

¿Por qué has decidido aprenderlo?

...

¿Cómo explicarías con tus palabras lo que es?

 

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1 Lenguajes de programación

Text

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1 Lenguajes de programación

  • Lenguaje de programación -> acciones se deben llevar a cabo el equipo.
  • Lenguaje natural -> humanos
  • Protocolos de comunicación -> entre equipos

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1 Lenguajes de programación

Lenguaje de programación -> programas -> algoritmos

 

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1 Lenguajes de programación

El lenguaje de programación está formado:

  • Símbolos y reglas sintácticas y semánticas -> estructura y el significado de sus elementos y expresiones.

  • Al proceso de pruebas, depuración, compilación y mantenimiento del código fuente ->proceso de programación.

 

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1.1 Fases del proceso

  • El desarrollo lógico del programa.
  • Codificación del programa.
  • Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
  • Prueba y depuración del programa.
  • Desarrollo de la documentación.

 

eugeniaperez.es

Sumar

Restar

Multiplicar

Dividir

UT 1: introducción: compiladores e intérpretes

1.2 Características

eugeniaperez.es

UT 1: introducción: compiladores e intérpretes

1.2 Características

eugeniaperez.es

¿Ensamblador? El lenguaje de más difícil dominio

de la historia...

UT 1: introducción: compiladores e intérpretes

1.3 Justificación

eugeniaperez.es

EXPANSIÓN DEL SECTOR...

Most popular coding languages 2015

UT 1: introducción: compiladores e intérpretes

1.3 Justificación

eugeniaperez.es

¿Por qué lenguaje empezar...?

  • Programador de Servidores o Back-end: Python, Ruby, PHP, Java o .Net.
  • Programador de clientes o Front-end: HTML, CSS, Javascript.
  • Programador móvil: Objective C o Java (para Android). HTML / CSS para sitios web móviles.
  • Programador 3D o de videojuegos: C/C++, OpenGL, Animación.
  • Programador de alto rendimiento: C/ C++, Java.

UT 1: INTRODUCCIÓN. COMPILADORES E INTÉRPRETES

2. Clasificación y características

  • LENGUAJES DE PROGRAMACIÓN
  • CLASIFICACIÓN Y TIPOLOGÍA
    • NIVEL DE ABSTRACCIÓN​
    • FORMA DE EJECUCIÓN
    • PARADIGMA DE PROGRAMACIÓN
  • INTERPRETACIÓN Y COMPILACIÓN
  • PROCESO DE DESARROLLO

eugeniaperez.es

CONTENIDOS

UT 1: introducción: compiladores e intérpretes

2. Clasificación y características

eugeniaperez.es

Vamos a clasificarlos en base a 3 criterios globales:

  • Nivel de abstracción: cantidad de capas de ocultación que hay entre el código que escribimos y el código máquina.
  • Formas de ejecución del lenguaje.
  • Paradigma o estilo de programación.

UT 1: introducción: compiladores e intérpretes

2.1 Nivel de abstracción

eugeniaperez.es

  • Lenguajes de bajo nivel: primera generación. Lenguaje máquina
  • Lenguajes de medio nivel: instrucciones de operaciones sencillas con datos simples o posiciones de memoria. Lenguaje ensamblador
  • Lenguajes de alto nivel: 
    • Tercera generación: los lenguajes actuales que cumplen con la OO. C, C++, C#, Java, etc.

UT 1: introducción: compiladores e intérpretes

2.1 Nivel de abstracción

eugeniaperez.es

  • Lenguajes de alto nivel: 
    • Cuarta generación: invoca instrucciones directamente para la operación que queremos. SQL
    • Quinta generación: lenguajes naturales basados en el conocimiento. Haskell, Modula 3, etc

UT 1: introducción: compiladores e intérpretes

2.2 Forma de ejecución

eugeniaperez.es

  • Lenguajes compilados: un programa traductor -> código fuente -> código objeto -> enlazador -> programa ejecutable.
  • Lenguajes interpretados: ejecutan las instrucciones directamente. Es necesario un programa intérprete.
  • Lenguajes virtuales: muy similar a los compilados, pero no generan código objeto sino un bytecode que puede ser interpretado en cualquier plataforma.

UT 1: introducción: compiladores e intérpretes

2.3 Paradigma de programación

eugeniaperez.es

  • Paradigma imperativo: describe la programación cómo una secuencia de instrucciones realiza una tarea.
  • Paradigma declarativo: especifica o declara un conjunto de premisas y condiciones para indicar qué es lo que hay que hacer.
  • Paradigma orientado a objetos: operaciones mediante objetos.
  • Paradigma estructurado: no modular.

UT 1: introducción: compiladores e intérpretes

3 Obtención de código ejecutable

eugeniaperez.es

El programa, escrito en el lenguaje que sea y ejecutado en la arquitectura que queramos, necesita ser traducido para poder ser ejecutado. 

Para ello podemos definir los distintos códigos por los que pasará el programa antes de ser ejecutado por el sistema

UT 1: introducción: compiladores e intérpretes

3.1 Forma de ejecución

eugeniaperez.es

  • Código fuente: es un conjunto de instrucciones escritas en un lenguaje de programación determinado. 
  • Código objeto: es el código resultante de compilar el código fuente. 
  • Código ejecutable: es el resultado de enlazar nuestro código objeto con las librerías. Se ejecutará directamente en nuestro sistema o sobre una máquina virtual.

UT 1: INTRODUCCIÓN. COMPILADORES E INTÉRPRETES

4. Interpretación y compilación

  • LENGUAJES DE PROGRAMACIÓN
  • ​CLASIFICACIÓN Y TIPOLOGÍA
  • INTERPRETACIÓN Y COMPILACIÓN
    • ​EL COMPILADOR
    • EL INTÉRPRETE
    • JAVA Y LAS MÁQUINAS VIRTUALES
  • PROCESO DE DESARROLLO

eugeniaperez.es

CONTENIDOS

UT 1: introducción: compiladores e intérpretes

4. Interpretación y compilación

eugeniaperez.es

El código fuente no es sino un fichero de texto que contiene instrucciones en determinado lenguaje de programación. El programador escribe ese código o programa siguiendo las normas que indica el lenguaje , pero ¿cómo traducir ese código fuente en algo que un sistema operativo y el procesador subyacente puedan ejecutar?

UT 1: introducción: compiladores e intérpretes

4.1 El compilador

eugeniaperez.es

Generan un código binario específico para un sistema operativo y procesador, y por tanto está optimizado para ejecutarse en el mismo lugar donde se ha compilado.

UT 1: introducción: compiladores e intérpretes

4.1 El compilador

eugeniaperez.es

Ventajas

  • Es más óptimo para esa máquina.
  • Portabilidad entre máquinas del mismo tipo.

Desventajas

  • No es portable a otro sistema o procesador.
  • Siempre es necesario realizar el paso intermedio de la compilación.

 

UT 1: introducción: compiladores e intérpretes

4.1 El compilador

eugeniaperez.es

Ejemplos:

  • Ensamblador, el lenguaje que más se acerca al lenguaje del procesador
  • C, de bajo nivel respecto al resto de los de "alto nivel".
  • C++, eficiente en ejecución y en mantenimiento. De ahí su uso para desarrollar sistemas operativos, gestores de bases de datos, videojuegos, etc.

 

UT 1: introducción: compiladores e intérpretes

4.2 El intérprete

eugeniaperez.es

Puede ser interpretado por intérpretes específicos de cualquier SO o procesador, siempre y cuando éste sea el adecuado.

UT 1: introducción: compiladores e intérpretes

4.2 El intérprete

eugeniaperez.es

Ventajas

  • Ahorro del proceso de compilación.
  • Portabilidad entre máquinas siempre que existe el intérprete.

Desventajas

  • Ejecución más lenta que el compilado ya no es directa.
  • La ejecución depende del intérprete.

 

UT 1: introducción: compiladores e intérpretes

4.2 El intérprete

eugeniaperez.es

Ejemplos

  • PHP, lenguaje muy orientado a la web.
  • Python, uno de los lenguajes realmente más versátiles.
  • JavaScript, lenguaje de entorno cliente. Con HTML5 y Node.js se ha convertido en el lenguaje interpretado más importante.
  • Perl, de Perl derivó PHP.
  • Ruby, otro moderno lenguaje de scripting para el framework RoR.

 

UT 1: introducción: compiladores e intérpretes

4.3 Java y las máquinas virtuales

eugeniaperez.es

La idea de la máquina virtual: Write once, Run anywhere, Se incluyó una JVM a mediados de los 90 hacía efectiva esa promesa para cualquier sistema y procesador.

UT 1: introducción: compiladores e intérpretes

4.3 Java y las máquinas virtuales

eugeniaperez.es

Ventajas

  • La portabilidad del código compilado.
  • Mejora su rendimiento a través del JIT (Just in Time Compiler), el cual optimiza la ejecución.

Desventajas

  • El rendimiento siempre será pero que en un lenguaje puramente compilado.

 

UT 1: INTRODUCCIÓN. COMPILADORES E INTÉRPRETES

5. Proceso de desarrollo

  • LENGUAJES DE PROGRAMACIÓN
  • ​CLASIFICACIÓN Y TIPOLOGÍA
  • INTERPRETACIÓN Y COMPILACIÓN
  • PROCESO DE DESARROLLO
    • ​ANÁLISIS
    • DISEÑO
    • CODIFICACIÓN
    • PRUEBAS Y DOCUMENTACIÓN
    • EXPLOTACIÓN Y MANTENIMIENTO

eugeniaperez.es

CONTENIDOS

UT 1: introducción: compiladores e intérpretes

5. Procesos de desarrollo

eugeniaperez.es

Pasa por diferentes etapas desde que se produce la necesidad de crear un software hasta que se finaliza y está listo para ser usado por un usuario.

UT 1: introducción: compiladores e intérpretes

5.1 Análisis

eugeniaperez.es

  • Requisitos del software que hay que desarrollar. Inicialmente, esta etapa comienza con una entrevista al cliente.
  • se crea un informe ERS (Especificación de Requisitos del Sistema) acompañado de los diagramas de caso de uso, donde se especifican los actores y escenarios del proyecto. 

UT 1: introducción: compiladores e intérpretes

5.2 Diseño

eugeniaperez.es

  • Se determina el funcionamiento de forma global y general.
  • Se diseña el sistema en función de los recursos del mismo, tanto físicos como lógicos. 
  • Se crearán los diagramas de clases y de Entidad/Relación así como de secuencia para definir la funcionalidad del sistema.

UT 1: introducción: compiladores e intérpretes

5.3 Codificación

eugeniaperez.es

  • Gracias a las etapas anteriores, el programador contará con un análisis completo del sistema que hay que codificar y con una especificación de la estructura básica que se necesitará.

UT 1: introducción: compiladores e intérpretes

5.4 Pruebas

eugeniaperez.es

  • Buscan confirmar que la codificación ha sido exitosa y el software no contiene errores, a la vez que se comprueba que el software hace lo que debe hacer.
  • No es un proceso estático.
  • Idílicamente, personal diferente al que codificó la aplicación, con una amplia experiencia en programación.

UT 1: introducción: compiladores e intérpretes

5.5 Documentación

eugeniaperez.es

  • Documentación disponible para:
    • el usuario: manejo de la aplicación
    • destinada al propio equipo de desarrollo: información técnica para entendimiento del programa.

UT 1: introducción: compiladores e intérpretes

5.6 Explotación

eugeniaperez.es

  • Se implementa el software en el sistema elegido o se prepara para que se implemente por sí solo de manera automática.

UT 1: introducción: compiladores e intérpretes

5.7 Mantenimiento

eugeniaperez.es

  • En esta fase se arreglan los fallos o errores que suceden cuando el programa ya ha sido implementado en un sistema y se realizan las ampliaciones necesarias o requeridas.

UT 1: introducción: compiladores e intérpretes

Actividades

eugeniaperez.es

Realiza la actividad del trabajo de investigación

que encontrarás en el aula.

ED UT1 Introducción: compiladores e intérpretes

By eugenia_perez

ED UT1 Introducción: compiladores e intérpretes

  • 1,487