Autor |
Mensaje |
David
Nivel 3
Registrado: 25 Nov 2006
Mensajes: 31
Carrera: Sistemas
|
|
que lenguajes se ven en la materia Lenguajes de Programación que está como optativa en Lic. en Analisis de Sistemas?
|
|
|
|
|
|
|
|
|
Rada
Moderador
Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
|
|
Alguien tiene algo de info sobre la materia.
Dejo aca el programa a ver si alguien quiere opinar.
--------------------------------------------------------------------------------
OBJETIVOS:
Aprender el significado (semántica de las distintas componentes de un programa para la verificación y
corrección de los mismos.
Aprender objetivos y m‚todos para el diseño de programas y lenguajes de programación.
Aprender a traducir formalmente lenguajes de programación.
PROGRAMA SINTETICO:
Unidad I Semántica denotacional de Lenguajes de programación
Definición. Valor derecho y valor izquierdo. Ambiente y estado. Semántica de expresiones, comandos, de
declaraciones y de programa.
Unidad II Semántica operacional
Máquina abstracta. Configuración, relación de transición y estado. Configuración inicial y final. Run de la
máquina.
Unidad III Semántica axiomática de Lenguajes de programación
Semántica axiomática de Hoare, de Floyd y de Dijkstra. Comandos de Dijkstra. Precondición más d‚bil.
Axiomas. Invariante de un ciclo. Función Variante.
Unidad IV Compiladores
Analizador l‚xico. Analizador sintáctico. Recuperación de errores. Generación y optimización de código.
ANALÍTICO:
Unidad 1: Semántica denotacional de lenguajes de programación
Definición. Semántica de corrientes variables. Valor derecho y valor izquierdo. Diagrama de Stranchey..
Ambiente y Estado. Semántica de expresiones, comandos. Función cambio de Estado. Significado de
comandos, de declaraciones y de programas.
Unidad 2: Semántica operacional
.
Definición de las componenetes de un lenguaje de programación. Uso de la semántica formal:
inplementación, verificación y diseño de lenguajes de programación. Definición de un sistema de
transición. Máquina abstracta: configuración y su relación de transición. Estado. Configuración inicial y
final. Run de la máquina.
Unidad 3: Semántica Axiomática de Lenguajes de Programación
.
Semántica axiomática de Hoare con precondición y postcondición. Semánticas axiomáticas de Floyd con
aserciones para corrección de programa. Semántica axiomática de Dijkstra: Comandos de Dijkstra.
Precondición más d‚bil. Axiomas. Corrección parcial, global y total de programas. Invariantes de un ciclo.
Función Variante.
Unidad 4: Compiladores
.
Compiladores. Analizador l‚xico. Analizador sintáctico descendente recursivo. Códigos intermedios.
Traducción dirigida por la sintaxis. Manejo de errores en el análisis l‚xico y en el análisis sintáctico.
Errores semánticos. Recuperación de errores. Generación y optimización de código.
--------------------------------------------------------------------------------
Lo que me llama mas la atencion es lo que dan sobre compiladores, pero nose si alguien la hizo o no y queire opinar, bienvenido sea
|
|
|
|
_________________ [CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)
Gabba gabba we accept you we accept you one of us
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Suena a un bodrio total...
Yo haría Teoría de Lenguajes primero; y si te dan muchas pero muchas pero muchas ganas de aportar construyendo un lenguaje nuevo o desarrollar un nuevo compilador, entonces hacé esta. Muchos temas de estos se dan de manera práctica ahí, tipos de variables, pasajes de valor, lvalue-rvalue, modelos de stack, modelos de estado, descripción de lenguajes, etc..
Creo que es bastante más práctico conocer un panorama de lenguajes que tienen diferentes enfoques antes de hacer una materia pura de descripción matemática de lenguajes.
Lo de compilación se da porque, en base a la definición de tu lenguaje, vos podés programar al compilador del mismo. Más allá de los 10 años que llevó el primer compilador; hoy en día, hacer un compilador para un lenguaje no es mucho más que agarrar un compilador standard y desarrollar la descripción completa de tu lenguaje y la traducción de eso a otro lenguaje (sea uno de alto, medio o bajo nivel)... (igual, algo de eso viste en ¿lenguajes formales era?, creo).
|
|
|
|
_________________
|
|
|
|
|
Rada
Moderador
Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
|
|
|
|
|
Rada
Moderador
Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
|
|
Cito aca algo que me dijo un profesor via mail.
-----------------------------------------------
El programa teórico de la materia 75.16 efectivamente es el que
publicaste en http://www.foros-fiuba.com.ar/viewtopic.php?p=62677.
La cuarta unidad correcponde a las prácticas, que consisten en la
construcción de un compilador para un lenguaje de programación
elemental dado por la cátedra, y la compilación de algunos programas
muy cortos utilizándolo. El compilador se puede desarrollar en el
lenguaje que cada alumno prefiera, permitiéndose incluso la
utilización de C y de herramientas que automatizan la generación de
analizadores léxicos y sintácticos (por ejemplo Flex y Bison).
En los últimos años, los lenguajes elegidos para programar el
compilador fueron C/C++, Pascal/Delphi, Java, Visual Basic, e
incluso Perl. Otros lenguajes también son bienvenidos.
El desafío de partir del código fuente de un programa contenido en
un archivo de texto y convertirlo en un archivo ejecutable que
funcione correctamente, no me parece que también tenga que parecerle
un bodrio a alguien que haya elegido la carrera de informática.
Saludos
A propósito, les recomiendo la lectura del artículo "Good ideas,
through the looking glass" (2005) de Niklaus Wirth (una personalidad
del ámbito de los lenguajes de programación como ha habido pocas).
-------------------------------------------------------------------
|
|
|
|
_________________ [CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)
Gabba gabba we accept you we accept you one of us
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
(Perdón por no responderlo antes, no entro desde hace 4 días; pero era un pendiente que me había quedado.)
Rada escribió:
|
no me parece que también tenga que parecerle
un bodrio a alguien que haya elegido la carrera de informática.
|
Más allá de que parte del comentario debe apuntar a que soy Electrónico. De todo mi comentario anterior, lo de que es un bodrio, es putamente subjetivo. A mí, sinceramente, y por más que soy un muy buen amigo del bajo nivel, me aburre mucho tanto un proceso de compilación (más allá de que sí me resulta interesante el ver lo que hace un compilador, qué técnicas de optimización aplica, cómo se traduce en assembler lo que escribí... pero no de un compilador que tenga que escribir yo) como la descripción formal de un lenguaje. No podría negar que, si bien me apasiona ver como diferentes lenguajes resuelven distintas problemáticas, la descripción formal de cualquiera de ellos la dejo sólo si necesito bajar al punto de tener que entenderlo como si fuera a compilarlo yo.
Rada, y cualquiera que lea esto, es una persona absolutamente madura como para separar los tantos al respecto y saber que lo que pueda decir yo (que no la cursé) o cualquier otro (que la haya cursado, tal vez) debe filtrarlo a través de lo que él mismo sepa de como es él. Yo en mis años en FIUBA he aprendido que lo que te comentan de un curso, no necesariamente se ajusta a lo que vos ves de él y lo que le gusta a uno no tiene por qué gustarle a otro.
Sólo quería hacer la salvedad y aclaración; y te invito a perdernos el miedo y sumarte para participar de este espacio. Creo que es muchísimo más aporte para los posibles interesados en el curso el comentario de un docente del mismo que el comentario que pueda dejar yo mirando desde afuera. Y sería un error que me dieras la última palabra, siendo que podés aportar muchísimo más. Ya nos leés, bien podés colaborar por hacer del espacio que versa sobre tu materia, un lugar más completo en información; al igual que vos, muchos otros leen esto.
Saludos;
Sebastián Santisi.
|
|
|
|
|
|
|
|
|
juandiegoh
Nivel 2
Registrado: 13 Jul 2006
Mensajes: 5
|
|
alguien sabe los días y horarios de esta materia?
|
|
|
|
|
|
|
|
|
elsebas
Nivel 3
Registrado: 29 Oct 2008
Mensajes: 31
|
|
pregunta... alguien sabe si los prof. la dejan cursar debiendo el final de 75.14 Lenguajes Formales ?
Desde ya, muchas gracias!
|
|
|
|
|
|
|
|
|
cat27
Nivel 1
Registrado: 01 Mar 2010
Mensajes: 2
|
|
una pregunta.. alguien sabe si toman lista? al menos los lunes de 08:00 a 10:00 ?
graciass
|
|
|
|
|
|
|
|
|
gonzaloi
Nivel 7
Edad: 34
Registrado: 06 May 2008
Mensajes: 398
Carrera: No especificada
|
|
alguien que haya cursado esta materia últimamente podría describir su experiencia sobre la misma ?? Gracias !
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 34
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
Una pregunta: ¿se sigue dando esta materia? tiene codigo 75.31
Pero cuando la busque por el curso no la encontre, aparecen estas:
7529 TEORIA DE ALGORITMOS I
7533 REDES Y TELEPROCESAMIENTOS I
o sea, hay un salto de codigos
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 34
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
Perdon me exprese mal, esta materia pide como correlativas 75.14 (lenguajes formales) que es la que no encontre en los cursos. Hay este salto de codigos:
7512 ANALISIS NUMERICO I
7515 BASE DE DATOS
|
|
|
|
|
|
|
|
|
Tomoyo1990
Nivel 4
Edad: 34
Registrado: 20 Nov 2009
Mensajes: 61
Ubicación: Far far west
Carrera: Informática y Sistemas
|
|
Eso es porque 75.14 se dicta los primeros cuatrimestres solamente. La dan los mismos profesores que en el segundo dan 75.16.
|
|
|
|
_________________
|
|
|
|
|
Uciel
Nivel 6
Edad: 34
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
Eso explica todo! jaja
Muchas gracias!
|
|
|
|
|
|
|
|
|
|