sintaxis y semantica del...

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

Upload: donguyet

Post on 04-Feb-2018

238 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

INGENIERIA EN SISTEMAS DE INFORMACION

SINTAXIS Y SEMANTICA DEL LENGUAJE

2º AÑO2º AÑO

Ing. JOSE MUGETTIIng. JOSE MUGETTI

Page 2: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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

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

LENGUAJES DE PROGRAMACIONEL PROCESO DE DESARROLLO DE SOFTWARE

3.Implementación (Codificación).4.Prueba.5.Mantenimiento.

Page 3: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.• DISEÑO `TOP DOWN` Y PROGRAMACION ESTRUCTURADA.

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

-ABSTRACCION DE DATOS.

Page 4: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

-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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.-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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

Velocidad de ejecución.-Espacio requerido.-Fácil de escribir.-Mantenible.

LENGUAJE Y EFICIENCIA

-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.

Page 9: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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. GeneralPL/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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.*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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

-Jerarquica -Red

-Sin relaciones

Page 14: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

3-Dominio*opcional y describe la capacidadcapacidad

4-Descripción de las operaciones de la estructura.

Page 15: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

La variable comisionA puede verse como:

Nro_de_estudiante asistentes

10Pablo A Pedroni

Juan B Truco

……..

………………

Mario C Lopez……..

………

………

Page 18: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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 dosea I la identificación del estudiante y A el nombre del cursoInsertar I en la tabla del curso A en el orden apropiado

End_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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

-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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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 deprogramas(subprogramas).

*un subprograma soporta la distinción entre la definición de una acción abstracta (el cuerpo del subprograma) y el usode este (la llamada al subprograma).

Page 23: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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/I�1er lenguaje de alto nivel que provee caracteristicas para el manejo de excepciones.*otros: Mesa,CLU,ADA.

Page 24: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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ñoayuda a prevenir la aparición de errores.

Las abstracciones de datos y de control son poderosos mecanismos quepermiten 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)� Corrección de errores. (modificar un programa ya escrito)

� Prevención de errores ( desarrollar un programa correcto desde el primermomento)

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

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

Page 26: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.FORTRAN, COBOL, PASCAL, C, LISP, PROLOG, SMALLTALK, ..., etc.

LENGUAJE

VOCABULARIO DE SÍMBOLOS REGLAS PARA FORMAR FRASES

Page 27: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

SINTAXIS�

La oración "YO VEO UNA CASA VERDE" es una oración gramaticalmente correcta en el lenguaje castellano y la oración "I see the green house" es gramaticalmente correcta en el lenguaje ingles.

Las reglas de sintaxis definen cuales frases están bien formadas y cuales mal formadas.

La oración "VERDE CASA UNA VEO YO" está gramaticalmente mal formada en el lenguaje castellano.

Page 29: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

LENGUAJES DE PROGRAMACIÓN

SÍMBOLOS DE UN LENGUAJE DE PROGRAMACIÓN.

Palabras claves

Identificadores

Literales

Operadores

Signos de puntuaciónSignos de puntuación

etc.

Los símbolos permiten formar:

Frases

Expresiones

Declaraciones

Comandos

Programas.

Page 30: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

SEMÁNTICACASA

significa un tipo particular de construcciones

VERDE

significa un color particular

¿Cuál es el significado de "La casa verde" ?

SEMÁNTICA DE LOS LPSEMÁ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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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.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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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 (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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

- 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 stoelse sto

in

execute_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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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

CONJUNTO DE SÍMBOLOS

ALFABETO DEL LENGUAJE

SENTENCIA

STRING (CADENA)STRING (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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

GRAMÁTICAS LIBRES DE CONTEXTO

COMPONENTES FUNDAMENTALES

� SÍMBOLOS TERMINALES

� SÍMBOLOS NO TERMINALES� SÍMBOLOS NO TERMINALES

� SÍMBOLO DE COMIENZO

� REGLAS GRAMATICALES

Page 37: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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ón

Reglas de producción gramaticales.

Oración ::= Sujeto Verbo Objeto .

Sujeto::= I

Objeto::= the Sustantivo

Sustantivo::= cat

Verbo::= see

Page 38: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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

G = (T, N, S, P)

donde

T: es un conjunto finito de símbolos terminales.T: 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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

Si N :: = , N :: = , N::= usamos la notación

N :: = | |

donde la notación | es leída como "o".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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

- Reglas de Producción:

Comando ::= Expresión =

Expresión ::= Número

| 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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

Tiras y Lenguajes

Si 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 = abcdeacSi 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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

A . {λ} = {λ} . A = A

A0 = {λ} 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 UA2 U A3 UA4 … UAn (cierre transitivo)

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

Page 45: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

Descripción de un lenguaje

L1 = { 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 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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

GRAMÁTICAS DE CONTEXTO LIBRE

Derivación:

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

X = símbolos terminales o sentencias del lenguaje

T* = todas las tiras posibles, incluyendo la nula

S => *x = Derivaciones directa de S para llegar a xS => *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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

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: SINTAXIS Y SEMANTICA DEL LENGUAJEsintaxis-semantica.wikispaces.com/file/view/Sintaxis+y+Semántica... · ingenieria en sistemas de informacion sintaxis y semantica del lenguaje 2º

ÁRBOLES DE SINTAXIS

CONTINÚA EN MODULO 2