Você está na página 1de 7

LENGUAJES Y

AUTOMATAS II
UNIDAD 1.- ANALISIS SEMANTICO

PROYECTO:
LENGUAJE DE PROGRAMACION
INTEGRANTES:
BASURTO PEALOZA MIERVA
No. CONTROL: 11560463
GLVEZ ESPINOSA LUIS DAVID
No. CONTROL: 11560112

CD. LAZARO CARDENAS MICHOACAN A 30 DE SEPTIEMBRE DE


2014

INTRODUCCION

Los lenguajes de programacin estn especificados por reglas para


formar instrucciones correctas, organizndolas en mdulos, someterlas
hacia un compilador, el cual traduce el cdigo en un lenguaje
comprensible para una mquina en particular, y finalmente ejecutar el
programa, es decir, someter la entrada hacia la computadora, la cual
transforma en una salida de acuerdo con las instrucciones en el
programa. El fin de este curso es Construir un lenguaje de programacin
que permita realizar alguna tarea en especfica con el fin de ahorrar
esfuerzo y facilitar alguna tarea o proceso.

NOMBRE DEL LENGUAJE


LCC: Lenguaje para Contar Caracteres de un texto.

OBJETIVO
Crear un lenguaje que sea sencillo y de fcil utilizacin, que cuente con una
sintaxis simple y que pueda ser especificada de una manera clara y entendible,
adems de una estructura abstracta para una mayor comprensin textual.

PROPOSITO DEL LENGUAJE


Se encontr la necesidad de crear un lenguaje que sea capaz de contar los
caracteres de una palabra o cadena para determinar la longitud que se le
puede asignar al tipo de dato de una base de datos.
Ejemplo:
CREATE TABLE lista_alumnos
(
No_Control character varying(10),
Nombre character varying(200),
Carrera character varying (100),
Semestre character varying (100)
)

FUNCIONAMIENTO DEL LENGUAJE


El funcionamiento del lenguaje est bsicamente definido por los siguientes
smbolos y palabras reservadas:

INICIO: Palabra reservada para iniciar la estructura del cdigo.

ConL (); Palabra reservada contar las letras de una cadena despus de
la palabra reservada usaremos el carcter (); la cual se establece
abriendo parntesis seguida de la entrada de la cadena de texto, dada
la entrada de la cadena cerramos parntesis y agregamos los caracteres
; para terminar la entrada y continuar ejemplo (David); .

ConP(); Palabra reservada para contar las palabras de una cadena de


texto.

(): Los parntesis estn definidos para la entrada de la cadena de texto.

; Punto y coma estn definidos para indicar el cierre dela entrada de la


cadena y continuar.

ESTRUCTURA GENERAL DEL LENGUAJE DE PROGRAMACION DEFINIDO


INICIO

INICIO

ConL (David);

ConP (Hola me llamo Minerva Basurto


Pealoza);

}
}

ESTRUCTURA GENERAL DEL LENGUAJE DE PROGRAMACION DEFINIDO


CORRIDA
INICIO

RESULTADO DE CONTAR LETRAS

{
5
ConL (David);
}

CORRIDA
INICIO

RESULTADO DE CONTAR PALABRAS

{
6
ConP (Hola me llamo Minerva Basurto
Pealoza);
}

Entrada valida
Inicio
{
ConL (David);
}

Entrada invalida
inicio
{{
ConL (David+<);
}};

UNIDADES DEL LEXICO


PALABRAS RESERVADAS
INICIO
ConL
ConP
ca[a-zA-Z]
d[0-9]

TOKENS
LLI
LLF
PC
PI
PF
CONP
CONL

ANALIZADOR LEXICO
%option noyywrap
%option yylineno

L1[{]
L2[}]
I[I]
N[N]
C[C]
O[O]
P[P]
L[L]
PAIN[(]
PAFI[)]
PYC[;]
ca[a-zA-Z]
d[0-9]
%%

{C}{O}{N}{P} {return CONP;}


{C}{O}{N}{L} {return CONL;}
{L1} {return LLI;}
{L2} {return LLF;}
{PAIN} {return PAI;}
{PAFI} {return PAF;}
{PYC} {return PC;}
{d} {return dgitos;}
{S}*{}
. { printf("Caracter no valido: %s en la linea %d\n",yytext,yylineno);}
%%
main()
{
yylex();
}

ANALIZADOR SINTACTICO
%{
extern int yylineno;
%}
%token CONP CONL LLI LLF PC PI PF
%start PROG
PROG: INICIO LLI SEN LLF
SEN EXP SEN
| EXP;
SEN: EXP1 SEN
| EXP2 SEN
| EXP 1
| EXP 2
EXP1: CONL PI CADENA PF PC
EXP2: CONP PI CADENA PF PC
%%
main()
{
yyparse();
}
yyerror(char *s)
{
printf("Error de Sintaxis en linea %d: %s\n",yylineno,s);
}

Você também pode gostar