Académique Documents
Professionnel Documents
Culture Documents
Isc. Jos Rebrindanard Rubalcava Lpez Haga clic para modificar el estilo de subttulo
del patrn
4/29/12
LOGO LOGO
AGENDA
v v v v v v
2.1 Visin del problema 2.2 Consideraciones preliminares 2.3 Objetivos y filosofas del diseo de los lenguajes de programacin 2.4 Diseo detallado 2.5 Caso de estudio
4/29/12
LOGO
Los lenguajes de computacin pueden ser de propsito general o especficos. C, C++, Java, Pascal, etc. Son lenguajes de programacin de propsito general SQL, PROMELA, Actionscripts son lenguajes especficos
4/29/12
LOGO
Los lenguajes de programacin son como los carros, existen para todos los gustos y/o usos. Quin cargara una tonelada de papas en un auto deportivo? Los lenguajes de propsito general son como los autos sedn, sirven para casi todo.
4/29/12
LOGO
Se debe identificar que es lo que se piensa hacer con el lenguaje, ya que puede ser slo la estructuracin de contenido Web, visualizar informacin o bien realizar la conversin de un documento.
HTML es lenguaje de representacin visual OWL es lenguaje de descripcin de elementos C es un lenguaje programacin
LOGO
4/29/12
Debemos tomar en cuenta las palabras reservadas del lenguaje, los operadores, los tipos de datos. Debemos considerar el objetivo del lenguaje, si es un lenguaje de enseanza, si es un lenguaje para profesionales, si el cdigo desarrollado va a ser mejor.
4/29/12
LOGO
4/29/12
LOGO
Filosofas
v
Se debe lograr una correcta comunicacin entre emisor y receptor Es ms importante que un programa sea leble que escribible, ya que un programa generalmente se escribe una vez y se lee muchas veces (documentacin, mantenimiento, etc.) La tendencia actual es separa la interfaz de la implementacin
LOGO
4/29/12
Filosofas
v
v v v
Tratar de hacer lenguajes para mltiples arquitecturas de computadoras (mquinas virtuales) Control de apuntadores Control de tipo de datos robustos Simplicidad por eficiencia
4/29/12
LOGO
Patrones de diseo Paquetes (bibliotecas, APIs, componentes) Excepciones Validaciones Marco de trabajo Utileras auxiliares (preprocesador, enlazador) Inclusin de otros lenguajes
4/29/12
LOGO
Especificacin de C0
En esta unidad vamos a describir el lenguaje del que vamos a crear el compilador. Como el objetivo de esta prctica es introducirnos al diseo e implementacin de compiladores, vamos a crear un compilador de un lenguaje extremadamente sencillo. Lo llamaremos C-0.
4/29/12
LOGO
C0
4/29/12
LOGO
Tokens
v
Tambin podemos llamarlos lexemas. Un programa es una secuencia de tokens de varios tipos: operadores, delimitadores, identificadores, palabras reservadas, constantes, etc. Por ejemplo, la secuencia de caracteres abcl23 representa un nico token. Dos tokens se pueden separar mediante un espacio en blanco, un operador o un delimitador.
4/29/12
LOGO
constantes
v
En C-0 utilizaremos slo un tipo de constantes, las constantes de cadena. Una constante de cadena es cualquier ristra de caracteres tipo ASCII entre comillas dobles. El carcter sirve para destacar caracteres espaciales, como puede ser \n que representa un salto de lnea.
4/29/12
LOGO
Operadores y delimitadores
v
Delimitadores : " (); {} Operadores aritmticos : + ( suma ) - ( resta ) * (producto) / (divisin) Operadores relacinales : < ( menor ) > ( mayor) == (igual) = (distinto) Operadores lgicos : II ( or ) && ( and ) Operador de asignacin : = La precedencia de los operadores es la siguiente de mayor a menor prioridad:
4/29/12
Un identificador consiste en una secuencia de caracteres, dgitos o caracteres de subrayado que comienzan por una letra o por un carcter de subrayado. Los identificadores son utilizados para nombrar las entidades del programa como las variables. Dos identificadores con los mismos caracteres slo que unos estn en maysculas y otros estn en minsculas son considerados diferentes.
4/29/12
LOGO
Las palabras reservadas son identificadores que tienen un significado especial. Las palabras reservadas de C-0 son:
4/29/12
Tipos de datos
v
Slo vamos a considerar un tipo de dato, el tipo ente representa con la palabra reservada int.
4/29/12
LOGO
La parte del else no siempre aparece, por lo que se puede omitir Si aparece un break dentro de un bloque while, se deber salir inmediatamente de dicho bloque.
4/29/12
LOGO
Instrucciones de entrada-salida Slo se consideran funciones de salida por pantalla: puts para cadenas de caracteres y putiv para salida de expresiones enteras.
4/29/12
LOGO
Declaracin de variables La declaracin de variables se debe hacer al principio de las se del programa. Las variables slo pueden ser de tipo entero y se declaran de una en una. Se pone delante del identificador de la variable el tipo. En nuestro caso, slo int. Las variables no se inicializan al ser declaradas, por lo que s damos valor a lo largo del programa, su valor ser impredecible.
LOGO
4/29/12
Programa principal
v
En C-0 no se admiten subprogramas, slo el programa principal comienza con main() { y termina con }.
4/29/12
LOGO
Sentencia if else
v
Esta sentencia consta de la palabra reservada if seguida de la condicion entre parentesis, luego una llave abierta, las sentencias y llave cerrada.
4/29/12
LOGO