View
1
Download
0
Category
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