• No se han encontrado resultados

FUNDAMENTOS DE LENGUAJES DE PROGRAMACION

N/A
N/A
Protected

Academic year: 2019

Share "FUNDAMENTOS DE LENGUAJES DE PROGRAMACION"

Copied!
7
0
0

Texto completo

(1)

Ciclo Académico:

Año de la Carrera: Horas de Clases Semanales Régimen de Cursado

Teoría Práctica Otrosi (1) Anual 1er.Cuatr. 2do.Cuatr. Otros (2)

4TO. 2 2 2 x

(1) Observaciones: CLASES DE CONSULTA (2) Observaciones:

Docente/s

Teoríaii Práctica

R/I Apellido y Nombres Departamento/División R/I Apellido y Nombres Departamento/División

R CASAS SANDRA CS EXACTAS Y NATURALES I REINAGA HECTOR CS EXACTAS Y NATURALES

I VIDAL GRACIELA CS EXACTAS Y NATURALES

Observaciones:

Espacios Curriculares Correlativos Precedentes

Aprobada/s Cod. Asig. Cursada/s (1) Cod. Asig.

Estructura de Datos 1656 Fundamentos de Ciencias de la Computación 1662

Laboratorio de Programación 1660 Programación Lógica y Funcional 1670

Espacios Curriculares Correlativos Subsiguientes

Aprobada/s Cod. Asig. Cursada/s Cod. Asig.

Intérpretes y Compiladores 1678

1- FUNDAMENTACIÓN

El objetivo de la asignatura es introducir los conceptos teóricos relacionados con el diseño, especificación e implementación de lenguajes de programación, y reflejar dicho conocimiento en los lenguajes más representativos de los diferentes paradigmas de programación. Se asume que el alumno esta debidamente familiarizado con la

programación procedural (imperativa – OO) y declarativa. Desde este punto de partida se presentan los

conceptos de programas traductores, simulación y máquinas virtuales. Se ilustran los mecanismos utilizados para implementar un lenguaje procedimental (datos, operaciones, binding, ámbitos de referenciamiento, memoria, pasaje de parámetros, control y subprogramas). Estos mecanismos son presentados como elecciones particulares de situaciones más generales, en las cuales se adoptan otros criterios de especificación y diseñó de lenguajes.

La importancia del estudio de los fundamentos de los Lenguajes de Programación para la formación académica, profesional y personal del estudiante de LeS queda patente en las razones que relacionan T. W. Pratt y M. V.

Zelkowitz, en Programming Languages: Design and Implementation:

Mejorar la habilidad para desarrollar algoritmos eficaces: muchos LP incluyen características que, cuando se usan de forma apropiada, benefician al programador pero si se usan incorrectamente, pueden desperdiciar grandes cantidades de tiempo de cómputo o conducir al programador a errores lógicos que consumen mucho tiempo.

(2)

Unidad Académica Río Gallegos

Programa de:

FUNDAMENTOS DE LENGUAJES DE PROGRAMACION

Cod. EC.

1675

Carrera:

LICENCIATURA EN SISTEMAS

Cod. Carr. 072

Acrecentar el propio vocabulario con construcciones útiles sobre programación: el LP sirve a la vez como una ayuda y como una restricción para el pensamiento. Las personas usan el LP para expresar pensamientos, pero también sirve para estructurar la manera en que uno piensa, en la medida en que es difícil pensar en formas que no permiten una expresión directa en palabras.

Hacer posible una mejor elección del LP: cuando se presenta la situación, un conocimiento de diversos LP puede permitir la elección de un LP que sea precisamente el idóneo para un proyecto particular.

Facilitar el aprendizaje de un nuevo LP: un lingüista, a través de una comprensión profunda de la estructura subyacente de los lenguajes naturales, suele poder aprender un nuevo idioma con más rapidez y facilidad que el novato esforzado que entiende poco de la estructura incluso de su lengua nativa. De manera similar, un conocimiento concienzudo de diversas construcciones de LP y técnicas de ejecución permite al programador aprender un nuevo LP con más facilidad.

Facilitar el diseño de un nuevo LP: pocos programadores piensan alguna vez en sí mismos como diseñadores de LP; sin embargo, todo programa tiene una interfaz de usuario que es, de hecho, una forma de LP. La interfaz de usuario se compone de los comandos y formatos de datos que se suministran para que el usuario se comunique con el programa. El diseñador de la interfaz de usuario para un programa grande como un editor de texto, un sistema operativo o un paquete de gráficos debe ocuparse de muchas de las mismas cuestiones que están presentes en el diseño de un LP para usos generales. Este aspecto del diseño de programas se suele simplificar si

el programador está familiarizado con diversas construcciones y métodos de implementación de LP ordinarios.

2- OBJETIVOS GENERALES:

Conocer los mecanismos y aspectos relacionados al diseño e implementación de los lenguajes de programación referentes a datos, operaciones y control.

3- CONTENIDOS MÍNIMOS:

Introducción e historia de los lenguajes de programación. Entidades y Ligaduras. Sistema de Tipos. Niveles de Polimorfismo. Datos y Tipos de datos elementales. Variables. Tipos de Datos estructurados. Tipos de datos abstractos. Operaciones. Expresiones. Control de secuencia entre sentencias. Control de secuencia de subprogramas. Control de datos. Unidades de Programas.

4- ORGANIZACIÓN DE LOS CONTENIDOS – PROGRAMA ANALÍTICO

Unidad 1: Conceptos introductorios.

Lenguaje máquina, lenguaje humano, lenguaje de programación. Compiladores, interpretes y maquinas virtuales. Historia de los lenguajes de programación. Aspectos de evolución de los lenguajes de programación. Importancia, desafíos y objetivos de los lenguajes de alto nivel.

Unidad 2: Sintaxis y Semántica

Métodos formales para describir la sintaxis de los lenguajes de programación. Gramáticas con atributos. Métodos formales para la descripción de la semántica de los lenguajes de programación.

Unidad 3: Nombres, Ligaduras, Chequeo de Tipos y Alcance

Nombres. Variables. Concepto de ligazón. Cheque de tipos. Compatibilidad de tipos. Alcance. Alcance y duración de vida. Ambientes de referencia. Constantes con nombre. Inicialización de variables

Unidad 4: Tipos de datos

Tipos de datos primitivos. Cadenas de caracteres. Tipos de datos ordinales definidos por el usuario. Arreglos. Registros. Uniones. Conjuntos. Punteros. Casos de estudio.

Unidad 5: Expresiones y sentencias de asignación

Expresiones aritméticas. Operadores sobrecargados. Conversiones de tipos. Expresiones lógicas y relacionales. Evaluación de corto circuito. Sentencias de asignación. Asignaciones mixtas Casos de estudio.

Unidad 6: Estructuras de control a nivel de sentencias

(3)

4- ORGANIZACIÓN DE LOS CONTENIDOS – PROGRAMA ANALÍTICO

Unidad 7: Subprogramas

Generalidades. Aspectos del diseño de subprogramas. Ambiente local de referencia. Métodos de pasaje de parámetros. Parámetros que son nombres de subprogramas. Subprogramas sobrecargados. Subprogramas genéricos. Registros de Activación. Compilación separada y compilación independiente. Aspectos del diseño de funciones. Acceso al ambiente no local. Operadores sobrecargados diseñados por el usuario. Excepciones - Corutinas. Casos de estudio.

Unidad 8: Implementación de Subprogramas

Semántica general de CALL y RETURN. Implementación de subprogramas en distintos lenguajes. Reglas de alcance estáticas. Bloques. Implementación de las reglas de alcance dinámicas. Implementación de pasaje de parámetros. Casos de estudio.

Unidad 9: Tipos Abstractos de Datos

Concepto de abstracción. Encapsulación. Introducción a la abstracción de datos. Aspecto de diseño. Tipos de datos abstractos parametrizados Casos de estudio.

5- CRITERIOS DE EVALUACIÓN

La evaluación se plantea como un proceso natural por ello se planifica y diseña como una continuidad de las actividades realizadas. Cada unidad temática se evalúa por las aplicaciones desarrolladas en forma grupal y/o individual.

6- METODOLOGÍA DE TRABAJO PARA LA MODALIDAD PRESENCIAL:

A cada módulo del programa le corresponden un conjunto de aplicaciones a desarrollar. La práctica se intercala con la teoría buscando una rápida adquisición y fijación de los conceptos. El alumno puede desarrollarlos en forma grupal y/o individual. El desarrollo del código debe efectuarse en computadora.

7- ACREDITACIÓN : Alumnos Presenciales.

Regularización

Se logra aprobando mediante la presentación y aprobación de todos los casos a desarrollar y el 75% de asistencia a los teóricos y prácticos.

Aprobación Final

Los temas de examen final se asignan previamente a este, dado que deben ser preparados por el alumno. El examen final consiste en el desarrollo de un proyecto en el cual el alumno debe resolver una situación problemática mediante la aplicación de los conceptos, técnicas y herramientas de programación vistas en el curso mas otras (fuertemente relacionadas) en un problema de mediana complejidad. Durante el examen el alumno entrega un escrito y expone el trabajo realizado.

8- METODOLOGÍA DE TRABAJO PARA ALUMNOS EN EL SISTEMA DE ASISTENCIA TÉCNICA PEDAGÓGICA (SATEP)

En la página de la asignatura http://sites.google.com/site/profeprog/ se establecen los horarios de consulta del equipo de cátedra, los alumnos pueden acudir por asistencia en dichos días y horarios. También pueden comunicarse al correo electrónico: [email protected].

(4)

Unidad Académica Río Gallegos

Programa de:

FUNDAMENTOS DE LENGUAJES DE PROGRAMACION

Cod. EC.

1675

Carrera:

LICENCIATURA EN SISTEMAS

Cod. Carr. 072

9- ACREDITACIÓN : Alumnos No Presenciales (SATEP)

Regularización

Entrega de los trabajos prácticos resueltos.

Aprobación Final

Los temas de examen final se asignan previamente a este, dado que deben ser preparados por el alumno. El examen final consiste en la aplicación de las herramientas de programación vistas en el curso mas otras (fuertemente relacionadas) en un problema sencillo pero real. Durante el examen el alumno entrega un escrito y expone el trabajo realizado.

10- METODOLOGÍA DE TRABAJO SUGERIDA PARA EL APRENDIZAJE AUTOASISTIDO (Alumnos Libres)

En la página de la asignatura http://sites.google.com/site/profeprog/ se establecen los horarios de consulta del equipo de cátedra, los alumnos pueden acudir por asistencia en dichos días y horarios. También pueden comunicarse al correo electrónico: [email protected].

Todo el material (apunte, trabajos prácticos y software) está disponible en

https://sites.google.com/site/profeprog/fundamentoslenguajeprogramacion.

11- ACREDITACIÓN : Alumnos Libres

Aprobación Final

Entrega de los trabajos prácticos resueltos, 15 días antes del examen.

(5)

VIGENCIA AÑOS 2015 2016 2017

Refer. Apellido/s Año

Edición Título de la Obra Capítulo/ Lugar de Edición Editorial Unidad Bibliotec UA SIUNPA Otro

0-13-678012-1 Pratt T. Y Zelkowitz M. 1998 Lenguajes de Programación, diseño

e implementación. 3ra.ed.

Todos Mexico Prentice Hall UACO

0-201-51858-9 Sethi R. 1992 Lenguajes de Programación:

conceptos y constructores

Todos USA

Addison-Wesley

UACO

0-8053-7133-8 Sabesta R. 1999 Concepts of Programming Languajes.

4ra. Ed.

Todos USA

Addison-Wesley

X

Ghezzi Carlo, Jazayeri Mehdi

1998 Programming Languages Concepts John Wiley

and Sons

X 3ra edicion

COMPLEMENTARIA

Refer. Apellido/s Año

Edición Título de la Obra Capítulo/ Lugar de Edición Editorial Unidad Bibliotec UA SIUNPA Otro

Watt David, 1990 Programming Languages:

Concepts and Paradigms.

Prentice Hall.

Watt David 1991 Programming Languages: Sintaxis

and Semantic.

Prentice Hall

Mitchell, John, 2000 Foundations for Programming

Languages

The MIT Press

X

84-8322-040-7 Meyer B. 1990 Construcción de Software orientada

a Objetos. 2da. Ed.

New York Prentice Hall UACO

968-444-333-1 Aho A., Sethi R,

Ullman J.

1998 Compiladores. Principios, técnicas

y Herramientas

Todos Mexico Addison-

Wesley

X

968-880-205-0 Kerninghan B. Y

Ritchie D.

1991 El lenguaje de programación C,

2da. Ed.

Mexico Prentice Hall UACO

Sánchez Dueñas y Valverde Andreu

Compiladores e Interpretes: un enfoque pragmático

Todos España Ediciones

(6)

Unidad Académica Río Gallegos

Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675

Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

VIGENCIA AÑOS 2015 2016 2017

· Recursos en Internet

Autor/es Apellido/s Autor/es Nombre/s Título Datos adicionales Disponibilidad / Dirección electrónica

Alexander Winzer, Site de SIMLESEM Technical University of

Vienna, Institute of Information Systems

(7)

VISADO

División Departamento Secretaría Académica

Fecha: Fecha: Fecha:

Pag 7

-AÑO Firma Profesor Responsable Aclaración Firma

2015

2016

2017

14- Observaciones

El presente programa se considera un documento que, a modo de "contrato pedagógico", relaciona a los protagonistas del proceso de enseñanza-aprendizaje y constituye un acuerdo entre la Universidad y el Alumno.

Los cuatrimestres tienen como mínimo una duración de 15 semanas.

i

Si el espacio curricular está implementado en una modalidad diferente de teóricos y prácticos, tildar en Otros y consignar esta característica en observaciones

ii

Referencias

Documento similar

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

De acuerdo con Harold Bloom en The Anxiety of Influence (1973), el Libro de buen amor reescribe (y modifica) el Pamphihis, pero el Pamphilus era también una reescritura y

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la