2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

50
2º AÑO 2º AÑO Ing. JOSE MUGETTI Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE

Transcript of 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Page 1: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

2º AÑO2º AÑO

Ing. JOSE MUGETTIIng. JOSE MUGETTI

INGENIERIA EN SISTEMAS DE INFORMACION

SINTAXIS Y SEMANTICA DEL LENGUAJE

Page 2: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

1.Análisis y Especificación de Requerimientos.

2.Diseño y Especificación del Software.3.Implementación (Codificación).4.Prueba.5.Mantenimiento.

LENGUAJES DE PROGRAMACION EL PROCESO DE DESARROLLO DE SOFTWARE

Page 3: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

METODOLOGIAS DE DESARROLLO SOFTWARE Y LENGUAJES DE PROGRAMACION

• FORTRAN: NO FUE DISEÑADO PARA SOPORTAR CIERTAS • METODOLOGIAS DE DISEÑO.• Ausencia de estructuras de control de alto nivel en los primeros

Fortran.

• PASCAL: FUE DISEÑADO CON EL OBJETIVO DE SOPORTAR• DISEÑO `TOP DOWN` Y PROGRAMACION ESTRUCTURADA.

-EMPLEO DEL CONCEPTO DE “OCULTAMIENTO DE INFORMACION” (información Hiding).

-ABSTRACCION DE DATOS.

Page 4: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

-Lenguajes orientados a la abstracción de datos:

*SIMULA 67. “CLASS” *MESA.

“MODULE” *CLU. “CLUSTER” *ADA. “PACKAGE”

La elección del método de diseño del programapuede influir en el diseño de un lenguaje, asícomo en la elección del lenguaje a utilizar

Page 5: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ARQUITECTURAS DE COMPUTADORAS Y LENGUAJES DE PROGRAMACION

Los lenguajes de Programación han sido restringidos a la arquitectura de Von Newman,la cual se basa en:

-Una memoria que contiene datos.-Una unidad de Control (que toma una instrucción fuera de la

memoria a la vez).-Una unidad de procesamiento.

Arquitectura de Von Newman Lenguajes Convencionales.

-Ejecución de instrucciones paso por paso.-Deposito modificable de datos (variables en el lenguaje, celda

de memoria en la maquina-fundamento matemático del Paradigma.-Gran poder expresivo.

Page 6: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Existen diferentes estilos de programación:

-Programación lógica.-Programación Funcional.-Programación Procedimental.-Programación Orientada a Objetos.

OBJETIVOS EN EL DISEÑO DE LENGUAJES IMPUESTOS POR EL PROCESO DE DESARROLLO DE SOFTWARE.

Las distintas metodologías de desarrollo de software tienen como objetivo generar sistemas con las siguientes caracteristicas: -Confiable. -Mantenible. -Ejecutable eficientemente.Confiabilidad: fuertemente vinculado con el requerimiento formal de corrección o exactitud.Mantenible: deberá ser sumamente sencillo introducir modificaciones al software.Ejecutable eficientemente: atributo vinculado tanto con el lenguaje empleado como con el algoritmo a ser usado para implementar la aplicación.

Page 7: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

LENGUAJE Y CONFIABILIDAD

-Gran poder expresivo: permite expresar el programa en una forma natural, de acuerdo a la naturaleza del problema.

-Legitibilidad: hace sencillo seguir la lógica del programa y descubrir errores mediante la inspección del mismo.

-Manejo de excepciones: Contribuye a la confiabilidad del software. El lenguaje debe poder manejar eventos no deseados, dando respuestas a cada uno de ellos.

LENGUAJE Y MANTENIMIENTO

La exigencia de mantenimiento impone al lenguaje requisitos de legitibilidad y modificabilidad.

La característica que hace a los programas más fácilmente modificables es la posibilidad de factoreo (en el programa, la descripción de un determinado hecho se realiza en un solo lugar).

Page 8: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Velocidad de ejecución.-Espacio requerido.-Fácil de escribir.-Mantenible.-Optimizable.La optimización implica la posibilidad de

optimización automática.La preocupación por la optimización deberá

eliminarse de las primeras etapas de la programación.

LENGUAJE Y EFICIENCIA

Page 9: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

GENEALOGIA DE LOS PRINCIPALES LENGUAJES DE PROGRAMACION.

LENGUAJE AÑO PROPOSITOFORTRAN 1954-57 Comp Numérica

ALGOL 60 1958-60 Comp Numérica

COBOL 1959-60 P.D.Comerciales

APL 1956-60 Proc.arrays

LISP 1956-62 Comp. Simbólica

SNOBOL4 1962-66 Proc. De Strings

PL/I 1963-64 Prop. General

SIMULA 67 1967 Simulacion Gral.

ALGOL 68 1963-68 Prop. General

Bliss 1971 Prog. De Sistemas

Pascal 1971 Gral y educacional.Prog estructurada

PROLOG 1972 Inteligencia artificial

C 1974 Prog. De Sistemas

Mesa 1974 Prog. De Sistemas

SETL 1974 Prog muy alto nivel

Concurrent Pascal 1975 Prog. Concurrente

CLU 1974-77 Met. Basada en la abstracción

Euclid 1977 Sist.Verificables

Gypsy 1977 Sist. Verificables

Módula2 1977 Prog sist., tpo real

Ada 1979 Prop.Gral.,tpo real

Smalltalk 1971-80 Ambiente personal

Page 10: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

EVOLUCION DE LOS AMBIENTES DE APLICACIÓN DE LOS LENGUAJES DE PROGRAMACION

*Solo fase de codificación.Primeras Etapas Un Programador *Aplicación Científica. *Aplicación bien comprendida. *No había mucha necesidad de Análisis, diseño y Mantenimiento.

*Ambiente sofisticado. *Enfoque mas normal.

Actualidad Equipo Programador *Necesidad de mantenimiento.(con comunicación) *Mayores requerimientos de

confiabilidad. *Usuarios sin formación computacional.

EVOLUCION ATADA AL COMPROMISO ENTRE :

NECESIDAD DE EXPRESION DEL PROGRAMADOR RESTRICCION DEL HADWARE.

Page 11: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

T.D.A(TIPO DE DATOS ABSTRACTOS)

-proceso mental que se extraen rasgos esenciales para ser representados.

-Técnica o metodología .

Una estructura de datos puede implementarse en cualquier lenguaje y aplicarse en cualquier concepto.

NIVELES DE LA ABSTRACCIÒN DE DATOS 1- Nivel lógico o abstracto.2- Nivel Físico o de Implementación.3- Nivel de aplicación o de uso.

Page 12: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ESPECIFICACION LOGICA DE UN T.D.A

1-Elementos que conforman la estructura de dato:

Ejs: números- caracteres,etc.

2-Organización de los elementos:-Lineal

Page 13: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

-Jerarquica -Red

-Sin relaciones

Page 14: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

3-Dominio*opcional y describe la

capacidad4-Descripción de las

operaciones de la estructura.

Page 15: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

EVOLUCION DE CONCEPTOS EN LOS LENGUAJES DE PROGRAMACION

*ABSTRACCION DE DATOS:

ABSTRACCION DE DATOS EN LOS LENGUAJESANTIGUOS. El primer caso es para introducir abstracciones con datos fue dadoen los lenguajes de programación tales como:-FORTRAN.-COBOL.-ALGOL 60.La información almacenada en memoria es vista no como una secuencia de bits sinocomo un valor entero, un booleano o cualquier otro tipo.

-Las abstracciones de datos dependían del tipo de máquina y de la naturalezade las aplicaciones.-Los lenguajes se tornaron no apropiados para todos los propósitos y el programadorqueda limitado por el poder expresivo del conjunto de abstracciones dadas por ellenguaje.

Page 16: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ABSTRACCION DE DATOS EN ALGOL 68, PASCAL Y SIMULA 67.

-Se permite al programador definir nuevas abstracciones, y como consecuencia los programas se tornaron más fáciles decomprender y modificar.-Los programas tienen mayor disponibilidad de ser correctos.

Algol 68 y Pascal brindan un conjunto de tipos ya definidos y constructores (arrays, records y otros) para definir nuevostipos.Ejemplo:Pascal

Type estudiante = Recordnombre: array[1..10]of char;inicial:char;apellido:array [1…20]of estudiante

end;

curso= Recordnro_de _estudiante:0…20;asistentes: array[1…20] of estudianteend;

Var comisionA,comisionB, comisionC : curso

Page 17: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

La variable comisionA puede verse como:

Nro_de_estudiante asistentes

10 Pablo A Pedroni

Juan B Truco

……..

………

Mario C Lopez……..

………

………

Page 18: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Una versión abstracta del programa que use tales estructuras de datos podría ser:

For cada conjunto de fichas con datos de los estudiantes do sea I la identificación del estudiante y A el nombre del curso Insertar I en la tabla del curso A en el orden apropiadoEnd_of_do;

Imprimir la tabla de la comisión A:Imprimir la tabla de la comisión B:Imprimir la tabla de la comisión C:

SIMULA 67: Proporciona una estructura (CLASS)que permite que la representación y las operaciones concretas puedan especificarse en una única unidad sintáctica.

EJEMPLO SIMULA 67

Class complex (x,y): real r,y;Begin real angle,radius:

radius:= sqrt(x**2 + y**2);if abs(x)<epsilon

end else angle:= arctan(y/x)end complex;

Una declaración de clase (class) tiene la forma general:<class_heading>; <class_body>

Page 19: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

-Las abstracciones de datos dependían del tipo de máquina y de la naturaleza de las aplicaciones.

-Los lenguajes se tornaron no apropiados para todos los propósitos y el programador queda limitado por el poder expresivo del conjunto de abstracciones dadas por el lenguaje.

FACILIDADES DE LOS TIPOS DE DATOS BSTRACTOS

* Tipo predefinido integer

* Tipo definido por el usuario curso

Integer y curso son abstracciones construidas sobre una representación interna, una cadena de bits para integer y un registro(record) para curso.

Integer y curso tienen asociado un conjunto de operaciones aritméticas, de comparación de unentero, inserción e impresión de un curso.

Los tipos predefinidos difieren de los definidos por el usuario:En los primeros la representación interna no pueda manipularse directamente y por otra parteprocedimientos tales como insertar e imprimir no son los únicos que pueden manipular un curso:Por ejemplo:comisionA.nro_de_estudiante:= 10

Page 20: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Características de un tipo de dato abstracto

a)La asociación de una representación con sus operaciones concretas en una unidad del lenguaje que implementa elnuevo tipo.b)El ocultamiento de la representación del nuevo tipo para las unidades que lo van a usar.

La propiedad a) hace que la versión final del programa refleje las abstracciones identificadas durante la etapa del diseño.

La propiedad b) refuerza la distinción entre niveles de abstracción y favorece la modificabilidad.

LOS TIPOS DEFINIDOS POR EL USUARIO QUE SATIFACEN LAS PROPIEDADES A) Y B) SE DENOMINANTIPOS DE DATOS ABSTRACTOS.

Lenguajes como CLU y ADA proveer facilidades para definir TDA que satisfacen las propiedades a) y b)

Los tipos de datos abstractos esconden los detalles de la representación y orientan los accesos a los objetos abstractos a través de procedimientos.

Page 21: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ABSTRACCION DE CONTROL

EVOLUCION DE LAS ESTRUCTURAS DE CONTROL

Las estructuras de control describen el orden en el cual las sentencias o grupos de sentencias sonejecutadas.

Clasificacion:*Estructuras de Control a Nivel de Sentencia. *Estructuras de Control a Nivel de Unidad.

Las primeras ordenan la activación de sentencias individuales.Las segundas ordenan la activación de unidades de programa.

ESTRUCTURAS DE CONTROL A NIVEL DE SENTENCIAMecanismos para gobernar el flujo de control de las instrucciones individuales del hardware convencional:• “sequencing” (secuenciacion).• “branching”(salto).

Secuencia: almacen en posiciones consecutivas de memoria las instrucciones a ser ejecutadas una después de otra.Ejemplo: trozo programa Pascal:……………..Writeln(‘Listado ejemplo archivo Personas’);Writeln(‘----------------’);Cont:=;Assing(personas,’c:\personas’);Reset(personas);……………….

Page 22: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Salto: permite realizar la transferencia de control a una posición especifica distinta de la siguiente en secuencia.El uso de estas estructuras produce programas difíciles de leer y de mantener.

ejemplo: trozo de programa Cobol:………..Perform proceso until (fin=‘s’) or(contador>100)if fin=‘s’ go to finalElse go to sigo.Proceso. ………Sigo. ……..Final. Stop run.

EVOLUCION DE LAS ESTRUCTURAS DE CONTROL A NIVEL DE UNIDADES SUBPROGRAMAS Y BLOQUES

*poderosas herramientas para la programación estructurada.*permite agrupar sentencias que representen una acción abstracta en una adecuada unidad de programas(subprogramas).*un subprograma soporta la distinción entre la definición de una acción abstracta (el cuerpo del subprograma) y el uso de este (la llamada al subprograma).

Page 23: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Ejemplo:Declaración del subprograma: Llamada al subprograma :

Subprograma S(P1,P2……Pn) call S(R1,R2……Rn) .………End s

MANEJO DE EXCEPCIONES *eventos usuales o excepcionales.*Excepcionales:

*division por cero. *un puntero sale de rango. *error de protocolo durante una transmision.

*dividir el programa en multiples unidades para manejar los eventos normales y poderr detectar las anomalias oexcepciones.*PL/I1er lenguaje de alto nivel que provee caracteristicas para el manejo de excepciones.*otros: Mesa,CLU,ADA.

Page 24: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

CORRUTINAS

Los subprogramas convencionales están subordinados a sus llamadores y cuando terminan retornan al llamador.Los subprogramas convencionales son pueden describirse como unidades que proceden concurrentemente (simulacióndiscreta).Las corrutinas son unidades simétricas que activan explícitamente unas a otras y no devuelven el control sino que cadauna reanuda a la siguiente.

UNIDADES CONCURRENTESLas corrutinas son adecuadas para modelar actividades que van ocurriendo en forma intercalada.En muchas aplicaciones es necesario un conjunto de unidades, llamadas unidades concurrentes, cuyo flujo avanza enparalelo.La descripción de unidades concurrentes permite la abstracción del equipo en el cual se correrá el sistema, el cual puedeser un multiprocesador ejecutando las unidades independientemente o un monoprocesador con multiprogramación.

Ejemplo de corrutina:Corrutina del jugador i

Page 25: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

PROGRAMA CORRECTO

UN PROGRAMA ES C ORRECTO SI CUMPLE SUS ESPECIFICACIONES

La adopción de herramientas adecuadas y sistemáticas en la etapa del diseño ayuda a prevenir la aparición de errores.

Las abstracciones de datos y de control son poderosos mecanismos que permiten dominar la complejidad del diseño de un programa.

Existen dos enfoques distintos para la producción de programas correctos: Corrección de errores. (modificar un programa ya escrito) Prevención de errores ( desarrollar un programa correcto desde el primer

momento)

Los primeros lenguajes no reconocen la necesidad de características que soporten la corrección de los programas.

Los lenguajes mas recientes han sido diseñados con el objetivo de soportarm comprobaciones exhaustivas.

Page 26: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

LENGUAJE, SINTAXIS Y SEMÁNTICA

LENGUAJE: Medio de comunicación entre los seres humanos.Español, Inglés, Chino, etc. Los lenguajes que usamos para instruir a los COMPUTADORES se denominan:LENGUAJES DE PROGRAMACIÓN  FORTRAN, COBOL, PASCAL, C, LISP, PROLOG, SMALLTALK, ..., etc. 

LENGUAJE

VOCABULARIO DE SÍMBOLOS REGLAS PARA FORMAR FRASES

Page 27: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Todos los Lenguajes tienen su SINTAXIS y su SEMÁNTICA.    SINTAXIS: Se refiere a la FORMA del Lenguaje.    SEMÁNTICA: se refiere al SIGNIFICADO de las oraciones (o sentencias) del

lenguaje. 

Page 28: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

SINTAXIS

Page 29: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

LENGUAJES DE PROGRAMACIÓN

SÍMBOLOS DE UN LENGUAJE DE PROGRAMACIÓN.

Palabras claves Identificadores Literales Operadores Signos de puntuación etc.

  Los símbolos permiten formar: 

Frases Expresiones Declaraciones Comandos Programas.

Page 30: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

SEMÁNTICACASAsignifica un tipo particular de construccionesVERDEsignifica un color particular¿Cuál es el significado de "La casa verde" ?  SEMÁNTICA DE LOS LP El significado de una frase en un programa es el cómputo que ésta describe. El significado de una expresión es el cómputo que produce un valor. El significado de un comando es el computo que modifica variables. El significado de una declaración es el cómputo que produce vinculación. Ejemplos:

n+1 produce un valor m := n+1 modifica la variable const n = 5 produce vinculación

Page 31: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ESPECIFICACIÓN DE LOS LP La especificación define el conjunto de programas expresados en el lenguaje y el

significado de cada programa.  Existen métodos de especificación formales e informales de los Lenguajes de

Programación.   Especificación informal: expresadas en palabras, en lenguaje natural.   Especificación formal: expresada en una notación especial cuyo significado se

conoce de manera precisa, completa y sin ambigüedad.

 

Page 32: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ESPECIFICACIÓN DE LA SINTAXIS:BACKUS-NAUR FORM (BNF)

 El lenguaje de programación ALGOL 60 fue definido con una gramática libre de

contexto desarrollada por John Backus.  Este método conocido como BNF o LA FORMA BACKUS NAUR permite definir la

sintaxis de un lenguaje de manera clara y compacta.

Ejemplos  While_Command::= While Expression do Command Identifier ::= Letter | Identifier Letter

| Identifier _ Letter Operator ::= + | - | * | /

Page 33: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ESPECIFICACIÓN DE LA SEMÁNTICA

Semántica Operacional del comando while en el Lenguaje Pascal:  "While E do C "  (1) Evalúa la expresión E, produciendo un valor de verdad. (2) si el valor de verdad es verdadero ejecuta el comando C; y luego repite desde (1). (3) si el valor de verdad es falso, termina.

 

Page 34: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

- Semántica Denotacional del comando While en Pascal:

 execute [while E do C] =let execute_while env sto =

if evaluate E env sto = Truth_value true then execute_while env (execute C env sto)else sto

inexecute_while

  La detonación del comando while es la función execute_while, la cual está definida

recursivamente de la siguiente manera: - E es evaluado en sto, dando un valor de verdad. - si el valor de verdad es verdadero, C es ejecutado en sto, y execute_while es

aplicado en el almacenamiento resultante. - si el valor de verdad es falso, execute_while da sto como resultado.

Page 35: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

•SINTAXIS - GRAMÁTICA FORMALGRAMÁTICAS LIBRES DE CONTEXTO

  CONJUNTO DE SÍMBOLOSALFABETO DEL LENGUAJE  SENTENCIASTRING (CADENA)(Secuencia de símbolos) Una gramática satisfactorio para un Lenguaje de Programación debe permitirnos

discernir por un procedimiento mecánico si una secuencia arbitraria de símbolos es un programa "bien conformado".

  

Page 36: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

GRAMÁTICAS LIBRES DE CONTEXTO

COMPONENTES FUNDAMENTALES  SÍMBOLOS TERMINALES SÍMBOLOS NO TERMINALES SÍMBOLO DE COMIENZO REGLAS GRAMATICALES

Page 37: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Un ejemplo del lenguaje Inglés: una regla especifica como construir una oración de la siguiente manera:

 "I see the cat." Esta oración consiste de un sujeto, un verbo, un objeto y un punto. Símbolos terminales: cat I see the .Símbolos no terminales: Oración, Sujeto, Verbo, Objeto, Sustantivo.símbolo de comienzo: OraciónReglas de producción gramaticales. Oración ::= Sujeto Verbo Objeto . Sujeto::= IObjeto::= the SustantivoSustantivo::= catVerbo::= see

 

Page 38: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

La notación ::= se lee: "está definida como"  Por lo tanto: Una oración está definida como un sujeto, seguido por un verbo, un objeto y un .

(punto). 

"I see the cat."

Page 39: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Para formalizar la noción de gramática decimos que una gramática libre de contexto es una cuaterna

 G = (T, N, S, P) dondeT: es un conjunto finito de símbolos terminales.N: es un conjunto finito de símbolos no terminales.S: es un símbolo de comienzo.P: es un conjunto finito de reglas de producción. Se requiere que: TN = y S N. Cada regla de producción en P es escrita en la forma N :: = , donde N N es un símbolo no

terminal y (T N)* es una cadena de símbolos terminales y no terminales.    

Page 40: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Si N :: = , N :: = , N::= usamos la notación   N :: = | |   donde la notación | es leída como "o".   La gramática de un Lenguaje consiste en un conjunto de reglas tales que todo símbolo

no terminal esté definido con otras reglas BNF, y todos los símbolos terminales sean símbolos validos del lenguaje.

Page 41: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Ejemplo: Calculadora de mano        - comandos: ‘3 * 9 =’ , ‘40 - 3 * 9 =’ - expresiones: ‘3 * 9’, ‘40 - 3’, ‘40 -3 * 9’

 - números: ‘3’, ‘40’ - dígitos simples: ‘0’, ‘1’, ....., ‘9’. 

Page 42: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

- Reglas de Producción:  Comando ::= Expresión = Expresión ::= Número

| Expresión + Número | Expresión - Número | Expresión * Número

 Número ::= Dígito

| Número Dígito Dígito ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Page 43: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Tiras y LenguajesSi tenemos un alfabeto de vocabularios (a,b), algunas tiras son:

λ, a, b, ab, aaa, aab, aba, abb

λ = tira nula

Si x= abc y z= deac la concatenación xz = abcdeacλ x = x λ = x = abc

Longitud de una tira | λ| = 0 | a| = 1 |abcd| = 4 Potencia de una tira x0 = λ x1 = abc x2 = abcabc

Producto cartesiano AB = {xy / (x € A) and (y € B)}

Si A = { a, b, ca} , B= { d, e}AB = { ad, ae, bd, be, cad, cae}

Page 44: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

A . {λ} = {λ} . A = AA0 = {λ} A1 = A A2 = A . A

Si A = { a, b} entonces:

A0 = {λ}

A1 = A = { a, b}

A2 = A . A = {aa, ab, ba, bb}

A3 = A . A . A = { aaa, aab, aba, abb, baa, bab, bba, bbb}

A+ = A0 U A1 U A2 U A3 U A4 … UAn (cierre transitivo)

A* = A+ U A0 = A+ U {λ} (cierre transitivo y reflexivo)

Page 45: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

Descripción de un lenguajeL1 = { ab, ac, ba, ca} = enumeración

L1 = { an | n € N} = Derivación algebraica

L2 = { an bn | n € N+}

Conjunto con una propiedad (Para decidir si una tira pertenece o no pertenece al lenguaje ejs V = { a, b, c, d}

L1 { x | (|x| = 3) and ( x € V*)} Lenguaje definido con vocabulario “V” de tiras que tengan tres caracteres – algunas de ellas tiras son: aaa, aab, aba, abb, etc…

Page 46: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

GRAMÁTICAS

(N, T, P, S)

G1 = ( { S} , { a, b} , P , S ) N T

Reglas de derivación para lenguajes y algunas de ellas son:

S -> ab S -> aSb

Page 47: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

GRAMÁTICAS DE CONTEXTO LIBREDerivación:

L (G) = {x | ( S => * x ) and ( x € T*)}

X = símbolos terminales o sentencias del lenguajeT* = todas las tiras posibles, incluyendo la nulaS => *x = Derivaciones directa de S para llegar a x

Ejs: G1 S => aSb -> aaSbb -> aaabbb

Cumple axiomaS -> * xFormas sentenciales

Solo esta cumpleX incluida T*

Page 48: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

D (G) = α | (S => * α ) and € (N U T)* } -> formas sentenciales

Al desaparfecer N en el “cierre transitivo reflexivo”

T* = T + U λ solo quedan las cadenas de terminales

Árboles de derivación

derivación izquierda derivación derecha

Page 49: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.

ÁRBOLES DE SINTAXISCONTINÚA EN MODULO 2

Page 50: 2º AÑO Ing. JOSE MUGETTI INGENIERIA EN SISTEMAS DE INFORMACION SINTAXIS Y SEMANTICA DEL LENGUAJE.