




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
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
1 / 121
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































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).
El papel de los lenguajes de programación
(^) 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.
(^) 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
(^) De procesamiento de negocios (COBOL). (^) Científicos (FORTRAN). (^) De sistemas (ALGOL, JOVIAL, etc.): Para construir sistemas operativos. (^) De Inteligencia Artificial (LISP).
(^) 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:
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.
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.
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:
(^) 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.
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: