Octubre 3, Lunes 2016 K2051 Cla… · Apóstrofos y comillas, secuencias de escape ... Dos...

Preview:

Citation preview

Octubre3,Lunes

Agendaparaestaclase�  Analizadorsintácticosimple�  SintaxisdelassentenciasdeC�  AmbigüeddelasintaxisdeC

Prof. Esp. Ing. José María Sola 391

Prof. Esp. Ing. José María Sola 392

�  Basadoenejercicio[K&R1-24]�  EscribaunprogramaqueverifiquesiunprogramaCposeeerroressintácticossimples.Esteprogramaesdificultososiselodiseñarealmentegenérico.Reglasavalidar:�  Paréntesis,corchetesyllaves

desbalanceados�  Apóstrofosycomillas,

secuenciasdeescape�  Comentarios

�  Restricciones�  Resolverconmáquinade

estados�  ¿EsutilizableelmóduloStack

vistoenlacalculadoradenotaciónpolacainversa?

�  Utilizarelsímbolo$paralapilavacío

�  Implementarconswitchygoto�  LeerAutómatadePilade

[MUHC2012V2c2]�  Entrega

�  Definiciónformaldelautómatadepila

�  Diagramadetransciones�  Parser.c�  Stack.h�  Stack.c

AnalizadorSintác3coSimple

Prof. Esp. Ing. José María Sola 393

sentencia sentencia-expresión sentencia-compuesta sentencia-de-selección sentencia-de-iteración sentencia-etiquetada sentencia-de-salto

sentencia-expresión

expresión? ;

Sentencia

sentencia-compuesta { lista-de-declaraciones? lista-de-sentencias? }

lista-de-declaraciones

declaración lista-de-declaraciones declaración

lista-de-sentencias

sentencia lista-de-sentencias sentencia

Sentenciacompuesta(¿C11?)

sentencia-de-selección if ( expresión ) sentencia if ( expresión ) sentencia else sentencia switch ( expresión ) sentencia

Sentenciadeselección

sentencia-de-iteración while ( expresión ) sentencia do sentencia while ( expresión ) ; for ( expresión? ; expresión? ; expresión? ) sentencia

Sentenciadeiteración(¿C11?)

sentencia-etiquetada case expresión-constante : sentencia default : sentencia identificador : sentencia sentencia-de-salto continue ; break ; return expresión? ; goto identificador ;

Sentenciae3quetadaydesalto

EjerciciodeS&S:Sentenciaif

Prof. Esp. Ing. José María Sola 401

if ( a ) f(); if ( b ); g(); else h();

�  S&S�  Sintaxis�  Restriccionesparaquetengasemántica

�  Semántica� Dosejemplos

EjerciciodeS&S:Sentenciaif(cont.)

if ( a ) if( b ) g(); else h();

�  Sintaxisconcreta�  EspecíficadeunLP�  Tokens�  Forma�  DerivaciónsegúnBNF

�  Sintaxisabstracta�  General�  Conceptual�  Necesariaparaelanálisissemántico

�  Árbolesdesintaxisconcretayabstractadelsiguientecódigo

SintaxisConcretayAbstracta

if ( a ) if( b ) g(); else h(); if ( a ) { if( b ) g(); } else h();

� Dosderivacionesposibles

� Dossemánticasposibles

� Ambigüedad�  ¿Solución?� CorreccióndelaS&Sdelasentenciaif

� Pragmática

¿Conclusión?

EjerciciodeS&S:Sentenciaif–Resoluciónfinal

Prof. Esp. Ing. José María Sola 405

Términosdelaclase#DefinircadatérminoconlabibliograNa

� ParteI�  Alfabetodepila

� ParteII�  Sentencia�  Sentenciacompuesta

� ParteIII�  Ambigüedad

21

Prof. Esp. Ing. José María Sola 406

Tareasparalapróximaclase1.  Leerde[K&R1988]Sentencias.

Prof. Esp. Ing. José María Sola 407

Octubre17,Lunes

Agendaparaestaclase�  ExamenDiagnóstico�  CasoRealdeExpresiones

Prof. Esp. Ing. José María Sola 411

�  Analizarinvocación�  Analizardefinición

�  Analizarexpresióndelprimerreturn�  Precedencia�  OrdendeEvaluación�  Efectodelado�  Árboldeexpresiones.

�  Proponerporlomenosdosresoluciones�  Identificarlacausaraízdelproblema.

CasoReal:AnalizarError

Prof. Esp. Ing. José María Sola 413

asignarStringFix(str, leng); //invocación

private static String asignarString(String stringComp, int longitud){try{

if (stringComp != null )return stringComp.trim().substring(0, Math.min(stringComp.length(), longitud)).toUpperCase();

elsereturn "";

}catch(Exception e){LoggerUtils.logOpMsg(log, Level.ERROR, e.getMessage());

}return "";

}

Términosdelaclase#DefinircadatérminoconlabibliograNa

� ParteII�  Java�  Funciónmiembro�  Paquete�  Try�  Catch

22

Prof. Esp. Ing. José María Sola 414

Octubre24,Lunes

Prof. Esp. Ing. José María Sola 420

Recommended