Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Porqué estudiar lenguajes de programación y tipos de lenguajes intermedios, Diapositivas de Informática General

Este documento ofrece una introducción a la importancia de estudiar diferentes lenguajes de programación y presenta los conceptos básicos de los lenguajes intermedios. El texto aborda la ventaja de aprender varios lenguajes, mejorar la habilidad para desarrollar algoritmos eficaces, la facilidad de uso de un lenguaje disponible y la posibilidad de hacer una mejor elección del lenguaje de programación. Además, se discuten los atributos de un buen lenguaje, como claridad, sencillez y unidad, y se explica el papel de los lenguajes intermedios en la compilación y ejecución de programas. El documento también menciona la diferencia entre la traducción de un lenguaje de alto nivel a código máquina antes y durante su ejecución, y las ventajas y desventajas de utilizar lenguajes intermedios.

Tipo: Diapositivas

2019/2020

Subido el 28/09/2020

ifoc
ifoc 🇲🇽

5

(1)

1 documento

1 / 121

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
LENGUAJES DE
PROGRAMACIÓN
Javier Martín
Centro Asociado de Móstoles
UNED
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Porqué estudiar lenguajes de programación y tipos de lenguajes intermedios y más Diapositivas en PDF de Informática General solo en Docsity!

LENGUAJES DE

PROGRAMACIÓN

Javier Martín

Centro Asociado de Móstoles

UNED

Introducción

JAVIER MARTIN ([email protected])  (^) TUTORIAS: JUEVES de 5 a 7

PLAN DE TRABAJO  (^) Exposición de los temas y mediante transparencia, abundando en los puntos más importantes.  (^) Resolución de dudas  (^) Propuesta y resolución de ejercicios y problemas

¿Porqué estudiar lenguajes de programación?

La pregunta es ¿cuál es la ventaja de estudiar una variedad de lenguajes diferentes que es poco probable que uno llegue a utilizar?:  (^) Mejorar la habilidad para desarrollar algoritmos eficaces.  (^) Mejorar el uso del lenguaje de programación disponible.  (^) Acrecentar el propio vocabulario con construcciones útiles sobre programación.  (^) Hacer posible una mejor elección del lenguaje de programación.  (^) Facilitar el aprendizaje de un nuevo lenguaje.  (^) Facilitar el diseño de un nuevo lenguaje.

Breve historia de los lenguajes de programación:Desarrollo de los primeros lenguajes:  (^) Lenguajes basados en el cálculo numérico (Ejemplo: FORTRAN).Lenguajes para negocios (Ejemplo: COBOL).Lenguajes para Inteligencia Artificial (Ejemplo: LISP).  (^) Lenguajes para sistemas (Ejemplo: C).

Evolución de los

Lenguajes de Programación

Orientados a Objetos e

Imperativos

El papel de los lenguajes de programación

 Inicialmente los lenguajes se proyectaban para ejecutar programas con

eficiencia. A mediados de los años sesenta la programación cambia:

 (^) Las máquinas son menos costosas y aumentan los costos de programación.  (^) Surge la necesidad de trasladar programas de unos sistemas a otros.  (^) El mantenimiento del producto consume mayores recursos de cómputo.  (^) La tarea del lenguaje de alto nivel es la de facilitar el desarrollo de programas correctos para resolver problemas en alguna área de aplicación dada.

 Los lenguajes de programación evolucionan o dejan de usarse.

Influencias que obligan a la revisión del los lenguajes:

 (^) Capacidad de las computadoras.  (^) Aplicaciones: Los requerimientos de nuevas áreas de aplicación afectan los diseños de nuevos lenguajes y las revisiones y ampliaciones de los más antiguos.  (^) Métodos de programación.  (^) Métodos de implementación.  (^) Estudios teóricos.  (^) Estandarización.

Dominios de aplicación

 Aplicaciones de los años sesenta. Durante la década de 1960, casi toda la
programación se podía dividir en cuatro modelos básicos de programación:

 (^) De procesamiento de negocios (COBOL).  (^) Científicos (FORTRAN).  (^) De sistemas (ALGOL, JOVIAL, etc.): Para construir sistemas operativos.  (^) De Inteligencia Artificial (LISP).

 Aplicaciones de los años noventa. La situación actual tiene más dominios
de aplicación:

 (^) De procesamiento de negocios (COBOL).  (^) Científicos (FORTRAN 90).  (^) De sistemas : Con el advenimiento de los microprocesadores baratos que gobiernan automóviles, hornos de microondas, etc., ha aumentado la necesidad de contar con lenguajes para tiempo real.  (^) Edición : Los sistemas de procesamiento de texto tienen su propia sintaxis para mandatos de entrada y archivos de salida. El traductor TEX produce un programa en el lenguaje PostScript de descripción de páginas. PostScript se puede compilar por medir de un procesador adecuado. Éste suele ser la impresora láser que se utiliza para imprimir el documento.  (^) De proceso : Dentro de UNIX, el lenguaje de comandos de usuario se conoce como shell y a los programas se les llama guiones de shell (parecidos a los archivos .bat). Estos guiones se pueden invocar siempre que ocurren ciertas condiciones habilitadoras.

Estandarización de los lenguajes  Los estándares son en general de dos clases:

 1. Estándares patentados (DE PACTO): Son las definiciones

elaboradas por la compañía que desarrollo el lenguaje y que es su

propietaria.

 2. Estándares de consenso (DE FACTO): Se trata de documentos

elaborados por organizaciones con base en un acuerdo entre los

participantes pertinentes. Método principal para asegurar la

uniformidad entre varias implementaciones de un lenguaje.

Ejemplo: ANSI, IEEE, ISO, etc..

Proceso en el desarrollo de normas : Un grupo decide que un lenguaje requiere una definición estándar. El organismo normativo organiza un grupo de trabajo de voluntarios para desarrollar esa norma. Cuando el grupo de trabajo llega a un acuerdo sobre su norma, se somete a votación por parte de un bloque más grande de individuos interesados. Los desacuerdos se resuelven y se produce el estándar del lenguaje.

Efectos de los entornos sobre los lenguajes  Cuatro clases generales de entornos objetivo cubre casi todas las aplicaciones de programación:  de procesamiento por lotes,  interactivo,  (^) de sistema empotrado, y  (^) de programación (entorno interactivo). Cada uno plantea distintos requerimientos sobre los lenguajes adaptados a esos entornos.

Entornos de procesamiento por lotes  (^) El más simple entorno operativo se compone sólo de archivos externos de datos. Un programa toma un cierto conjunto de archivos de datos como entrada, procesa los datos y produce un conjunto de archivos de datos de salida. El nombre de procesamiento por lotes viene porque los datos de entrada se reúnen en “lote s” de archivos y son procesados en lotes por programas.

 Los archivos constituyen la base para casi toda la estructura de E/S.

 Un error que termine la ejecución del programa es aceptable aunque

costoso. No es posible la ayuda externa por parte del usuario para

manejar o corregir errores de inmediato.

 Carencia de restricciones de regulación de tiempo. No hay recursos

para monitorear o afectar directamente la velocidad de ejecución del

programa.

Entornos de sistemas incrustados (empotrados)  Un sistema de computadora que se usa para controlar parte de un sistema más grande como una planta industrial, una aeronave, etc., se conoce con el nombre de sistema de computadora incrustad o. El fallo de una aplicación empotrada puede poner en peligro la vida. La seguridad de funcionamiento y corrección son atributos principales.

 Suelen operar sin un sistema operativo subyacente y sin archivos de
entorno y dispositivos de E/S usuales. El programa debe interactuar
directamente con la máquina.
 El manejo de errores tiene gran importancia. Cada programa debe estar
preparado para manejar todos los errores en forma interna, adoptando
acciones apropiadas para recuperarse y continuar. La interrupción del
programa no es aceptable y no hay un usuario en el entorno que pueda
proporcionar la corrección interactiva del error.
 Operan en tiempo real, donde la respuesta las entradas debe producirse
en intervalos de tiempo restringidos.
 Suele ser un sistema distribuido, compuesto por más de una computadora.
 Una vez iniciadas las tareas, se ejecutan por lo común de forma
simultánea e indefinida.

Entornos de programación  (^) Es el entorno en el cual los programas se crean y se ponen a prueba. Consiste en un conjunto de herramientas (editor, depurador, verificador, generadores de datos de prueba, etc.) de apoyo y un lenguaje para invocarlas.  (^) Al compilar por separado cada subprograma el compilador necesita información de:  (^) La especificación del número, orden y tipo de parámetros.  (^) La declaración de tipo de datos.  (^) La definición de un tipo de datos (para la declaración local de variables).  (^) Un problema común, es encontrar, durante el ensamblado del programa final completo, que varios subprogramas y otras unidades de programa tienen nombres (de variables) iguales. Métodos para evitar este problema:

  1. Todo nombre compartido debe ser único. Se deben usar convenciones para la asignación de nombres desde un principio.
  2. Definir, en el lenguaje, reglas de ámbito, para ocultar nombre.
  3. Los nombres se pueden conocer agregando explícitamente sus definiciones desde una biblioteca externa (herencia en POO).  (^) Características que ayudan a poner a prueba y depurar programas.
  4. Características para rastreo de ejecución. 2. Puntos de interrupción. Cuando se alcanza un punto de interrupción durante la ejecución del programa, la misma se interrumpe y el control se traslada al programador en un terminal. 3. Asertos : expresan relaciones que deben cumplirse entre los valores de las variables en ese punto del programa.

Máquinas virtuales

 (^) Aunque hay muchos rasgos que se podrían destacar como candidatos para formar parte de una definición del concepto de máquina virtual (a partir de ahora MV), una MV se puede definir sencillamente como una capa de abstracción que separa el funcionamiento de un ordenador de su hardware. Además, las MV se dividen en abstractas o teóricas, como sería la máquina de Turing (el primer ejemplo de una MV), y concretas o prácticas (a las que se quiere normalmente se hace referencia al hablar de MV). En esta sección se tratarán las MV concretas que, como se verá, son capas de software que juegan un papel relevante tanto en el funcionamiento de los lenguajes compilados como interpretados.

Introducción al concepto

Las MV se construyeron para simplificar el proceso del control del hardware de un ordenador porque extienden y enmascaran la funcionalidad del hardware a través de procedimientos y datos abstractos.

Se pueden identificar dos tipos de MV concretas:

las que juegan un papel en la preparación de un programa para su ejecución (tiempo de compilación) y  (^) las que permiten la ejecución de dicho programa. La figura muestra la diferencia entre los dos tipos: