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

Lenguajes de Interfaz, Apuntes de Semántica de Lenguajes de Programación

Documento sobre la materia de Lenguajes de Interfaz

Tipo: Apuntes

2018/2019

Subido el 24/11/2019

uriel-6
uriel-6 🇲🇽

1 documento

1 / 108

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN
AUTORES: L. I. ERROL ROBERTO FABREGAT TINAJERO
L.I. y MTRA. RITA AURORA FABREGAT TINAJERO
Informática VII (Programación e
implementación de sistemas)
Clave: 1866
Plan: 2005 Créditos: 8
Licenciatura: Informática Semestre:
Área: Informática Hrs. Asesoría: 2
Requisitos:
Informática II (estructura de datos
estáticas y dinámicas en memoria principal)
Hrs. Por semana: 4
Tipo de asignatura: Obligatoria (x) Optativa ( )
Objetivo general de la asignatura
Al finalizar el curso, el alumno conocerá la definición y forma de construcción del
software que hace posible el funcionamiento de las computadoras en diferentes
niveles de operación.
Temario oficial (horas sugeridas 64)
1. Introducción (4 h)
2. Lenguajes de programación (16 h)
3. Compiladores (16 h)
4. Sistemas operativos (28 h)
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 Lenguajes de Interfaz y más Apuntes en PDF de Semántica de Lenguajes de Programación solo en Docsity!

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN

AUTORES: L. I. ERROL ROBERTO FABREGAT TINAJERO

L.I. y MTRA. RITA AURORA FABREGAT TINAJERO Informática VII (Programación e implementación de sistemas) Clave: 1866 Plan: 2005 Créditos: 8 Licenciatura: Informática Semestre: 8º Área: Informática Hrs. Asesoría: 2 Requisitos: Informática II (estructura de datos estáticas y dinámicas en memoria principal) Hrs. Por semana: 4 Tipo de asignatura: Obligatoria (x) Optativa ( ) Objetivo general de la asignatura Al finalizar el curso, el alumno conocerá la definición y forma de construcción del software que hace posible el funcionamiento de las computadoras en diferentes niveles de operación. Temario oficial (horas sugeridas 64)

  1. Introducción (4 h)
  2. Lenguajes de programación (16 h)
  3. Compiladores (16 h)
  4. Sistemas operativos (28 h)

Introducción El avance en las tecnologías de la información requiere generar sistemas de información de mayor complejidad y por demás eficientes, generando así reducción en tiempos y costos para las empresas; por lo que a lo largo de este material tú encontrarás la ayuda suficiente para comprender la base de un sistema de información y las diversas etapas que lo conforman. En esta asignatura estudiaremos la definición de los lenguajes de programación más utilizados, su origen y aplicación en el campo de sistemas, diferentes compiladores para esos lenguajes y la definición y estructuración de los sistemas operativos.

1.1 Definición de programas de sistema Un sistema es un conjunto de elementos que sirven para llevar a cabo alguna tarea. Dentro de estos elementos encontramos al software que son todos aquellos programas que vamos a emplear para llevar a cabo nuestro sistema. Un Programa puede ser definido como un conjunto de instrucciones organizadas de acuerdo con el lenguaje que se vaya a operar, que permite realizar funciones o tareas específicas. 1 1.2 Lenguajes de programación Un lenguaje de programación es un conjunto de reglas, signos y palabras que permite ejecutar programas con funciones o tareas particulares. Los programas para ser entendidos por la computadora se codifican en lenguaje binario (ceros y unos); esta codificación es conocida como lenguaje máquina. En un inicio los lenguajes de programación se acercaban mucho al lenguaje máquina pero a medida que ha pasado el tiempo, han ido evolucionando y se han transformado en un pseudo-inglés reducido con un abundante aparato formal o bien en elementos gráficos o visuales que han facilitado su uso por parte del programador. De acuerdo con su nivel de abstracción: “entre más lejano es un lenguaje a la computadora se le denomina de alto nivel, de lo contrario es de bajo nivel”.^2 Si deseas profundizar en el tema se recomienda que visites la siguiente dirección: http://www.slideshare.net/jrojas/tema1-lenguajes-de-programacion. (^1) Joyanes Aguilar, Luis; L. Rodríguez Baena; Matilde Fernández Azuela, Fundamentos de Programación: Libro de Problemas. México, McGraw Hill, 1996. p. 10. (^2) Con base en http://foro.latinohack.com/showthread.php?t=17882, consultado el 08/10/09.

Ahora bien, a lo largo de la historia de los lenguajes de programación, se reconocen 5 generaciones, en donde cada una mejora a sus predecesoras en cuanto a las facilidades que otorga al programador. 3

  1. Primera generación: lenguaje máquina.
  2. Segunda generación: lenguajes ensambladores.
  3. Tercera generación: lenguajes de alto nivel. Ej. C, Pascal, Cobol…
  4. Cuarta generación: lenguajes capaces de generar código por sí solos (Desarrollo de Aplicaciones Rápidas -RAD) y los lenguajes orientados a objetos
  5. Quinta generación: lenguajes orientados a la inteligencia artificial. Lenguaje Máquina El lenguaje máquina, el de más bajo nivel; Consiste en la combinación de 0's y 1's para formar las órdenes entendibles por el hardware. Son mucho más rápidos que un lenguaje de alto nivel pero su desventaja es que generan enormes códigos fuente donde encontrar un error es casi imposible además de requerir un conocimiento profundo de la arquitectura del equipo que se utilice. Lenguaje Ensamblador Es un derivado del lenguaje máquina y en lugar de usar ceros y unos, está formado por abreviaturas de letras y números llamadas mnemotécnicos. Para usar un lenguaje ensamblador se requiere un lenguaje traductor, es decir, un lenguaje que permita pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Los lenguajes ensambladores generan códigos fuentes más cortos que los generados en lenguaje máquina pero su desventaja es que la programación sigue siendo tediosa, repetitiva y propensa al error. (^3) Véase, José Miguel Marinez Albañil: “Características de los lenguajes”, 04/03/04, material electrónico disponible en: http://mx.geocities.com/michaelneo_matrix/CARACTERISTICAS.doc, recuperado el 04/05/09.

La gran ventaja que significaron estos lenguajes es que pueden ser utilizados por diferentes marcas de computadoras, lo cual reduce el costo de la reprogramación, los códigos son más rápidos, se pueden documentar con mayor facilidad y son menos propensos al error. Entre los lenguajes de esta generación se encuentran ADA, C, Basic, Pascal, COBOL, APL, entre otros. Lenguaje de muy alto nivel Son conocidos también como lenguajes de cuarta generación (4GL’s), o lenguajes declarativos. Se trata esencialmente de lenguajes de programación que no siguen órdenes procedimentales sino que definen qué queremos obtener, y el compilador se encarga de los detalles relativos a cómo obtenerlo de una manera eficiente. Un lenguaje de muy alto nivel es muy fácil de leer, comprender y programar pues contiene macroinstrucciones, además de que no se requiere de grandes conocimientos de computación ni de arquitectura computacional lo cual los hace altamente transportables. Lenguaje Natural 6 En la quinta generación se encuentran los llamados Lenguajes naturales, por su acercamiento a la lengua escrita. Su gran característica es que permiten la implementación de aplicaciones que simulan comportamientos inteligentes. En el siguiente tema, se verá con mayor detalle cada uno de los lenguajes de programación que corresponden a estas etapas. (^6) Ibid.

1.3 Intérpretes Un intérprete es un programa de software de sistema que traduce un programa de alto nivel a lenguaje máquina pero de forma distinta a un compilador; el intérprete no traduce un programa fuente en un solo paso sino que va traduciendo y ejecutando instrucción por instrucción; así, hasta que traduce y ejecuta una instrucción pasa a la siguiente. 1.4 Compiladores Un compilador es un programa que traduce las instrucciones de un lenguaje de alto nivel (lenguaje fuente), a instrucciones en lenguaje máquina (lenguaje destino) que la computadora puede leer, interpretar y ejecutar.^7 Una de las funciones más importantes que tienen los compiladores es la de reportar cualquier error en el programa fuente que se detecte durante el proceso de traducción. Generalmente los compiladores tienen dos grandes partes:

  1. Back end : es específico de la plataforma y es la parte que se encarga de generar el código máquina a partir de los resultados de la fase de análisis. Dicho código normalmente no se puede ejecutar de manera directa, para ello requiere de otro programa llamado enlazador.
  2. Front end : es independiente de la plataforma y es la parte encargada de analizar el código fuente, comprobar la validez, generar el árbol de derivación y rellenar la tabla de símbolos. (^7) Alfred B., Aho; Compiladores. Principios, técnicas y herramientas. México, Pearson Educación, México, 2008. p. 1.

1.5. Sistemas operativos La evolución de las computadoras va de la mano con su software, que son todos aquellos programas que no podemos ver físicamente, pero sí los podemos usar para redactar un texto, navegar por Internet, programar, etc. Un sistema de computación está formado por 6 elementos: software, hardware, bases de datos, documentación, procedimientos y usuarios. El Software son todos aquellos programas que vamos a emplear para llevar a cabo nuestro sistema; el Hardware son los dispositivos físicos; la Base de datos es una colección de datos que vamos a tener y a la cual se accede a través del software; la Documentación son todos aquellos manuales e información que describen cómo funciona el sistema; los Procedimientos son los pasos que definen el uso específico de cada elemento del sistema y finalmente, los Usuarios son todos aquellos Individuos que interactúan durante el desarrollo y funcionamiento del sistema. El software se divide en dos grandes grupos: programas de aplicación y programas de sistema. El principal programa de sistema es el llamado Sistema Operativo, que es el responsable del control de todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación. Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definición exacta, es decir una que sea estándar. Se podría decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario^9 , y que tiene dos funciones primordiales: (^9) Harvey Deitel_. Introducción a los Sistemas Operativos,_ México, Addison-Wesley Iberoamericana,

  1. pp. 10.

A. Gestionar el hardware.- Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina.  Facilitar el trabajo al usuario.- Permite una comunicación con los dispositivos de la máquina. El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado. Características de los Sistemas Operativos Las características deseables que debe poseer un Sistema Operativo son las siguientes: A. Permitir la ejecución de procesos simultáneos administrando el tiempo de entrada/salida (E/S), el de cálculo y la memoria. B. Efectiva gestión recursos. C. Efectiva gestión de tiempos de procesamientos. D. Fiabilidad respecto a errores y posibles situaciones. E. Ser de tamaño pequeño. F. Posibilitar y facilitar la intermediación entre computadora y usuario de la misma. G. Permitir a los usuarios compartir datos entre ellos, en caso necesario. H. Gestión eficaz de los dispositivos de E/S de la computadora.^10 (^10) Con base en http://entren.dgsca.unam.mx/introduccion/so_carac.html, consultado el 11/05/09.

A.1.3. Elabora en una diapositiva en PowerPoint, un cuadro sinóptico en donde resaltes las características de los sistemas operativos y sus principales componentes. Cuestionario de autoevaluación

  1. Define qué es un lenguaje de programación.
  2. ¿Qué es un intérprete?
  3. ¿Qué es un compilador?
  4. ¿Qué es el front end de un compilador?
  5. ¿Qué es el back end de un compilador?
  6. Menciona una ventaja del compilador.
  7. Menciona una ventaja del intérprete.
  8. ¿Cuáles son los componentes de un sistema operativo?
  9. ¿Cuáles son las funciones principales de un sistema operativo?
  10. Menciona 3 características que posee cualquier sistema operativo

Examen de autoevaluación Subraya el inciso con la respuesta correcta

  1. Programa capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. a) Intérprete b) Compilador c) Sistema operativo d) Lenguaje de programación
  2. Parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. a) Back End b) Analizador sintáctico c) Front End d) Analizador lexicográfico
  3. Forman parte de un intérprete y compilan partes del código según se necesita. a) Compiladores cruzados b) Compiladores de una sola pasada c) Compiladores de varias pasadas d) Compiladores JIT
  4. Son funciones básicas de un sistema operativo. a) Traducir e interpretar b) Gestionar recursos, brindar una interfaz de usuario c) Procesar y almacenar d) Presentar datos
  1. Tipo de compilador que produce el código máquina después de haber leído varias veces el código fuente a) Compiladores cruzados b) Compiladores de una sola pasada c) Compiladores de varias pasadas d) Compiladores JIT
  2. Parte de un compilador que es independiente de la plataforma que se esté operando. a) Back End b) Analizador sintáctico c) Front End d) Analizador lexicográfico

TEMA 2. LENGUAJES DE PROGRAMACIÓN

Objetivo particular El alumno reconocerá las diversas generalidades de los lenguajes de programación, su sintaxis y aplicación en los sistemas de información a través del tiempo. Temario detallado 2.1 Historia de los lenguajes de programación 2.2 Sintaxis de los lenguajes de programación 2.3 Etapas de traducción 2.4 Modelos formales de traducción 2.5 Tipos de datos 2.6 Tipos de datos abstractos 2.7. Gestión de almacenamiento 2.8 Control de secuencia Introducción La manera en que se realiza la interacción usuario-máquina es vital en el desarrollo de sistemas de información, por tal motivo es necesario comprender el desarrollo de los lenguajes de programación a través del tiempo, y su estructura gramática y funcionamiento lógico.

 ALGOL^15

Acrónimo de “Algorithmic Language” o Lenguaje algorítmico. Algol es uno de varios lenguajes de alto nivel, diseñado específicamente por un grupo de expertos europeos y americanos para la programación de los cálculos científicos. Apareció a finales de los años 50 y se formalizó en un reporte titulado ALGOL 58; luego avanzó a través de otros reportes ALGOL 60 y ALGOL 68. Fue diseñado por un comité internacional para ser un lenguaje universal. ALGOL nunca alcanzó el nivel de popularidad comercial de FORTRAN y COBOL, pero se consideró el lenguaje más importante de su era en términos de su influencia en el desarrollo de posteriores lenguajes de programación.  COBOL^16 Es el primer lenguaje para programación de negocios, fue desarrollado y presentado en 1959 por Grace Hooper; su nombre es acrónimo de “COmmon Business - Oriented Language”, o Lenguaje Común Orientado a Negocios. La intención original de quienes lo desarrollaron fue crear un lenguaje cuyas instrucciones se parecieran al inglés. Aún cuando COBOL es muy poderoso existen programadores que consideran que utiliza un número excesivo de palabras en su sintaxis. (^15) Con base en http://elvex.ugr.es/etexts/spanish/pl/algol.htm, consultado el 11/05/09. (^16) Véase, Larry Long, Introducción a las computadoras y al procesamiento de información ”, Prentice Hall, Nueva Jersey 1995, pp. 254; pero está disponible en: Wikipedia: “COBOL”, en línea: http://es.wikipedia.org/wiki/COBOL, consultado el 11/05/09.

 APL

Acrónimo de “A Programing Language” o Un lenguaje de programación. Es un lenguaje simbólico interactivo de programación presentado en 1968 por Kenneth Iverson y utilizado principalmente por ingenieros, matemáticos y científicos. En este lenguaje se requiere de una terminal especial de exhibición en video para escribir los programas. Su teclado cuenta con un conjunto especial de caracteres que incluye los símbolos para escribir las instrucciones APL. Estos símbolos proporcionan una escritura abreviada que acelera el proceso de codificar un programa. Se le conoce por su enorme potencia ya que entre otras cosas permite manipular a escala de bits y cuenta con procesadores auxiliares.^17  BASIC En 1965, BASIC acrónimo de “Beginners All-purpose Symbolic Code” (en español ‘código de instrucciones simbólicas de propósito general para principiantes’) se utilizó como herramienta para enseñar los principios fundamentales de la programación pero durante su desarrollo adquirió tal popularidad que dejó de ser considerado un lenguaje para principiantes y cubrió las demandas de programadores con mayores capacidades. Es considerado el lenguaje principal de las microcomputadoras y fue desarrollado por Thomas E. Kurtz. 18 (^17) Ibid, pp. 253. (^18) Ibid, pp. 258.