SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Benjamín Joaquín Martínez Compiladores 2021B
2.10
Vuelva a escribir el pseudocódigo para la implementación del DFA para comentarios en C (sección
2.3.3) utilizando el carácter de entrada como prueba en case externo y el estado como prueba del
case interno. Compare su pseudocódigo con el del texto. ¿En qué circunstancias preferiría usted
utilizar esta organización para implementación de código de un DFA?
estado:= 1; {inicio]
while estado = 1,2,3 o 4 do
case estado of
1: case carácter de entrada of
“/” : avanza en la entrada;
estado:=2;
else estado:= … {error u otro};
end case;
2: case carácter de entrada of
“*”: avanza en la entrada;
estado:=3;
else estado := . . . {error u otro};
end case;
3: case carácter de entrada of
“*”: avanza en la entrada;
estado := 4;
else advance the input { y permanecer en el estado 3};
end case;
4: case carácter de entrada of
“/” avanza en la entrada;
estado := 5;
“*”: avanza en la entrada; { y permanecer en el estado 4 }
else avanza en la entrada;
estado := 3;
end case;
end case;
end while;
if estado = 5 then aceptar else error;
estado:= 1; {inicio]
while estado != 5 do
case carácter de entrada of
“/”: case estado of
1 : avanza en la entrada;
estado:=2;
2 : estado := . . . {error u otro};
3 : advance the input { y permanecer en el estado 3};
4 : avanza en la entrada;
estado := 5;
end case;
“*”: case estado of
1 : estado := . . . {error u otro};
2 : avanza en la entrada;
estado:=3;
3 : avanza en la entrada;
estado := 4;
4 : avanza en la entrada; { y permanecer en el estado 4 }
end case;
default: case estado of
1 : estado := . . . {error u otro};
2 : estado := . . . {error u otro};
3 : advance the input { y permanecer en el estado 3};
4 : avanza en la entrada;
estado := 3;
end case;
end case;
end while;
if estado = 5 then aceptar;
Preferiría usar esta organización donde específicos caracteres de entrada no me llevaran al
inmediato estado siguiente, o donde existiera un carácter de escape que me mueva de un estado
cualquiera al estado aceptable.
Benjamín Joaquín Martínez Compiladores 2021B
2.12 a) utilice la construcción de Thompson para convertir la expresión regular (a|b) * a (a|b|Ɛ)
en un NFA.
1
2
3
4
a
b
Ɛ
Ɛ
Ɛ
(a|b)*
5 6
7
8
9
a
a
b
Ɛ
a (a|b|Ɛ)
r
s
Ɛ
r
…
s
…
L(rs) = L(r) L(s)
Ɛ
1
2
3
4
a
b
Ɛ
Ɛ
Ɛ
5 6
7
8
9
a
a
b
Ɛ
Benjamín Joaquín Martínez Compiladores 2021B
b) Convierta el NFA del inciso a en un DFA utilizando la construcción de subconjuntos.
2.9
Dibuje un DFA que acepte las cuatro palabras reservadas case, char, const y continue del lenguaje
C
c
a
s e
h a r
o
n
s
s
t
t
i n u e
1,2,
4,5
1,2,4,5
,6,7,9
1,3,
4,5 1,3,4,
5,8
1,2,4,
5,6,9
1
a
b
b b
a
a
b
a
a
a
Benjamín Joaquín Martínez Compiladores 2021B
2.4
En la definición de las expresiones regulares describimos la precedencia de las operaciones pero
no su asociatividad. Por ejemplo, no especificamos si a|b|c significaba (a|b)|c o a|(b|c), y lo
mismo para la concatenación ¿A que debio esto?
Puede deberse a que esto equivaldría a la unión, es decir a|b|c y (a|b)|c tendría el mismo
diagrama de transición, y la concatenación al ser la unión de dos expresiones no existe un orden o
precedencias más que el que dicte quien lo haga, por lo que en la expresión regular no existe un
símbolo para esta más que unir las expresiones en una.

Más contenido relacionado

La actualidad más candente

Revit API & WPF Training Basic - 12 Lesson | Alpha BIM
Revit API & WPF Training Basic - 12 Lesson | Alpha BIMRevit API & WPF Training Basic - 12 Lesson | Alpha BIM
Revit API & WPF Training Basic - 12 Lesson | Alpha BIMDangLeQuan1
 
Tiến độ xiên
Tiến độ xiênTiến độ xiên
Tiến độ xiênAct Vu
 
Bai giang ket cau btct version1
Bai giang ket cau btct version1Bai giang ket cau btct version1
Bai giang ket cau btct version1binhthuong94yb
 
Tcvn 8870 2011 thi công và nghiệm thu neo trong đất
Tcvn 8870 2011 thi công và nghiệm thu neo trong đấtTcvn 8870 2011 thi công và nghiệm thu neo trong đất
Tcvn 8870 2011 thi công và nghiệm thu neo trong đấtyeunuocuc10
 
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cống
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình CốngTính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cống
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cốngshare-connect Blog
 
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-coc
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-cocNghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-coc
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-cocĐức Nhiên Trần
 
Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Jia Yu Lin
 
Tạo khung in đẹp trong Ms project
Tạo khung in đẹp trong Ms projectTạo khung in đẹp trong Ms project
Tạo khung in đẹp trong Ms projectĐàm Tài Cap
 
Nhà cao tầng btct - Võ Bá Tầm
Nhà cao tầng btct - Võ Bá TầmNhà cao tầng btct - Võ Bá Tầm
Nhà cao tầng btct - Võ Bá TầmDung Bui
 
Real-time applications with sockets and websockets. Introduction to Smartfoxs...
Real-time applications with sockets and websockets. Introduction to Smartfoxs...Real-time applications with sockets and websockets. Introduction to Smartfoxs...
Real-time applications with sockets and websockets. Introduction to Smartfoxs...Pablo Monterde Perez
 
Giao trinh sap 2000 v14
Giao trinh sap 2000 v14Giao trinh sap 2000 v14
Giao trinh sap 2000 v14kietbecamex
 
Thong so vat lieu theo tcvn aci eurocode_bs
Thong so vat lieu theo tcvn aci eurocode_bsThong so vat lieu theo tcvn aci eurocode_bs
Thong so vat lieu theo tcvn aci eurocode_bsDzung Nguyen Van
 
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมNattapon
 
HTTP/2 standard for video streaming
HTTP/2 standard for video streamingHTTP/2 standard for video streaming
HTTP/2 standard for video streamingHung Thai Le
 
Revit Đồ Án Tốt Nghiệp Chung Cư 15 Tầng
Revit Đồ Án Tốt Nghiệp Chung Cư 15 TầngRevit Đồ Án Tốt Nghiệp Chung Cư 15 Tầng
Revit Đồ Án Tốt Nghiệp Chung Cư 15 TầngHuytraining
 

La actualidad más candente (19)

Revit API & WPF Training Basic - 12 Lesson | Alpha BIM
Revit API & WPF Training Basic - 12 Lesson | Alpha BIMRevit API & WPF Training Basic - 12 Lesson | Alpha BIM
Revit API & WPF Training Basic - 12 Lesson | Alpha BIM
 
Tiến độ xiên
Tiến độ xiênTiến độ xiên
Tiến độ xiên
 
Bai giang ket cau btct version1
Bai giang ket cau btct version1Bai giang ket cau btct version1
Bai giang ket cau btct version1
 
Tcvn 8870 2011 thi công và nghiệm thu neo trong đất
Tcvn 8870 2011 thi công và nghiệm thu neo trong đấtTcvn 8870 2011 thi công và nghiệm thu neo trong đất
Tcvn 8870 2011 thi công và nghiệm thu neo trong đất
 
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cống
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình CốngTính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cống
Tính toán tiết diện cột Bê tông cốt thép - Nguyễn Đình Cống
 
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-coc
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-cocNghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-coc
Nghien-cuu-ung-dung-phan-mem-fb-pier-trong-tinh-toan-mong-coc
 
Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527
 
Luận văn: Tính toán dầm chuyển bê tông cốt thép ứng lực trước
Luận văn: Tính toán dầm chuyển bê tông cốt thép ứng lực trướcLuận văn: Tính toán dầm chuyển bê tông cốt thép ứng lực trước
Luận văn: Tính toán dầm chuyển bê tông cốt thép ứng lực trước
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
Tạo khung in đẹp trong Ms project
Tạo khung in đẹp trong Ms projectTạo khung in đẹp trong Ms project
Tạo khung in đẹp trong Ms project
 
Nhà cao tầng btct - Võ Bá Tầm
Nhà cao tầng btct - Võ Bá TầmNhà cao tầng btct - Võ Bá Tầm
Nhà cao tầng btct - Võ Bá Tầm
 
Real-time applications with sockets and websockets. Introduction to Smartfoxs...
Real-time applications with sockets and websockets. Introduction to Smartfoxs...Real-time applications with sockets and websockets. Introduction to Smartfoxs...
Real-time applications with sockets and websockets. Introduction to Smartfoxs...
 
Đề tài: Ứng dụng công nghệ tường trong đất có neo vào xây dựng
Đề tài: Ứng dụng công nghệ tường trong đất có neo vào xây dựngĐề tài: Ứng dụng công nghệ tường trong đất có neo vào xây dựng
Đề tài: Ứng dụng công nghệ tường trong đất có neo vào xây dựng
 
Giao trinh sap 2000 v14
Giao trinh sap 2000 v14Giao trinh sap 2000 v14
Giao trinh sap 2000 v14
 
JsSIP: SIP + WebRTC
JsSIP: SIP + WebRTCJsSIP: SIP + WebRTC
JsSIP: SIP + WebRTC
 
Thong so vat lieu theo tcvn aci eurocode_bs
Thong so vat lieu theo tcvn aci eurocode_bsThong so vat lieu theo tcvn aci eurocode_bs
Thong so vat lieu theo tcvn aci eurocode_bs
 
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
 
HTTP/2 standard for video streaming
HTTP/2 standard for video streamingHTTP/2 standard for video streaming
HTTP/2 standard for video streaming
 
Revit Đồ Án Tốt Nghiệp Chung Cư 15 Tầng
Revit Đồ Án Tốt Nghiệp Chung Cư 15 TầngRevit Đồ Án Tốt Nghiệp Chung Cư 15 Tầng
Revit Đồ Án Tốt Nghiệp Chung Cư 15 Tầng
 

Más de Benjamín Joaquín Martínez

Más de Benjamín Joaquín Martínez (20)

Sistemas de detección de intrusiones.pdf
Sistemas de detección de intrusiones.pdfSistemas de detección de intrusiones.pdf
Sistemas de detección de intrusiones.pdf
 
Portafolio ingles.pdf
Portafolio ingles.pdfPortafolio ingles.pdf
Portafolio ingles.pdf
 
Tabla de llamadas para linux x86_64 bits.pdf
Tabla de llamadas para linux x86_64 bits.pdfTabla de llamadas para linux x86_64 bits.pdf
Tabla de llamadas para linux x86_64 bits.pdf
 
Sistema de registro con php
Sistema de registro con phpSistema de registro con php
Sistema de registro con php
 
compiladores6Benjamin133467.pdf
compiladores6Benjamin133467.pdfcompiladores6Benjamin133467.pdf
compiladores6Benjamin133467.pdf
 
Compiladores5_Benjamin133467.pdf
Compiladores5_Benjamin133467.pdfCompiladores5_Benjamin133467.pdf
Compiladores5_Benjamin133467.pdf
 
133467 compiladores 4.pdf
133467 compiladores 4.pdf133467 compiladores 4.pdf
133467 compiladores 4.pdf
 
133467_COMPILADORES3.pdf
133467_COMPILADORES3.pdf133467_COMPILADORES3.pdf
133467_COMPILADORES3.pdf
 
COMPILADORES1.pdf
COMPILADORES1.pdfCOMPILADORES1.pdf
COMPILADORES1.pdf
 
Algoritmos de búsqueda.pdf
Algoritmos de búsqueda.pdfAlgoritmos de búsqueda.pdf
Algoritmos de búsqueda.pdf
 
Logica proposicional
Logica proposicionalLogica proposicional
Logica proposicional
 
Lenguajes para dispositivos moviles 133467
Lenguajes para dispositivos moviles 133467Lenguajes para dispositivos moviles 133467
Lenguajes para dispositivos moviles 133467
 
Bd distribuidas
Bd distribuidasBd distribuidas
Bd distribuidas
 
diseño de bases de datos distribuidas
diseño de bases de datos distribuidas   diseño de bases de datos distribuidas
diseño de bases de datos distribuidas
 
procesamiento de consultas distribuidas
procesamiento de consultas distribuidasprocesamiento de consultas distribuidas
procesamiento de consultas distribuidas
 
Algoritmo de INGRES
Algoritmo de INGRES Algoritmo de INGRES
Algoritmo de INGRES
 
Fragmentación
FragmentaciónFragmentación
Fragmentación
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 
Arquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidasArquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidas
 
Bases de datos distribuidas heterogeneas
Bases de datos distribuidas heterogeneasBases de datos distribuidas heterogeneas
Bases de datos distribuidas heterogeneas
 

133467_COMPILADORES2

  • 1. Benjamín Joaquín Martínez Compiladores 2021B 2.10 Vuelva a escribir el pseudocódigo para la implementación del DFA para comentarios en C (sección 2.3.3) utilizando el carácter de entrada como prueba en case externo y el estado como prueba del case interno. Compare su pseudocódigo con el del texto. ¿En qué circunstancias preferiría usted utilizar esta organización para implementación de código de un DFA? estado:= 1; {inicio] while estado = 1,2,3 o 4 do case estado of 1: case carácter de entrada of “/” : avanza en la entrada; estado:=2; else estado:= … {error u otro}; end case; 2: case carácter de entrada of “*”: avanza en la entrada; estado:=3; else estado := . . . {error u otro}; end case; 3: case carácter de entrada of “*”: avanza en la entrada; estado := 4; else advance the input { y permanecer en el estado 3}; end case; 4: case carácter de entrada of “/” avanza en la entrada; estado := 5; “*”: avanza en la entrada; { y permanecer en el estado 4 } else avanza en la entrada; estado := 3; end case; end case; end while; if estado = 5 then aceptar else error; estado:= 1; {inicio] while estado != 5 do case carácter de entrada of “/”: case estado of 1 : avanza en la entrada; estado:=2; 2 : estado := . . . {error u otro}; 3 : advance the input { y permanecer en el estado 3}; 4 : avanza en la entrada; estado := 5; end case; “*”: case estado of 1 : estado := . . . {error u otro}; 2 : avanza en la entrada; estado:=3; 3 : avanza en la entrada; estado := 4; 4 : avanza en la entrada; { y permanecer en el estado 4 } end case; default: case estado of 1 : estado := . . . {error u otro}; 2 : estado := . . . {error u otro}; 3 : advance the input { y permanecer en el estado 3}; 4 : avanza en la entrada; estado := 3; end case; end case; end while; if estado = 5 then aceptar; Preferiría usar esta organización donde específicos caracteres de entrada no me llevaran al inmediato estado siguiente, o donde existiera un carácter de escape que me mueva de un estado cualquiera al estado aceptable.
  • 2. Benjamín Joaquín Martínez Compiladores 2021B 2.12 a) utilice la construcción de Thompson para convertir la expresión regular (a|b) * a (a|b|Ɛ) en un NFA. 1 2 3 4 a b Ɛ Ɛ Ɛ (a|b)* 5 6 7 8 9 a a b Ɛ a (a|b|Ɛ) r s Ɛ r … s … L(rs) = L(r) L(s) Ɛ 1 2 3 4 a b Ɛ Ɛ Ɛ 5 6 7 8 9 a a b Ɛ
  • 3. Benjamín Joaquín Martínez Compiladores 2021B b) Convierta el NFA del inciso a en un DFA utilizando la construcción de subconjuntos. 2.9 Dibuje un DFA que acepte las cuatro palabras reservadas case, char, const y continue del lenguaje C c a s e h a r o n s s t t i n u e 1,2, 4,5 1,2,4,5 ,6,7,9 1,3, 4,5 1,3,4, 5,8 1,2,4, 5,6,9 1 a b b b a a b a a a
  • 4. Benjamín Joaquín Martínez Compiladores 2021B 2.4 En la definición de las expresiones regulares describimos la precedencia de las operaciones pero no su asociatividad. Por ejemplo, no especificamos si a|b|c significaba (a|b)|c o a|(b|c), y lo mismo para la concatenación ¿A que debio esto? Puede deberse a que esto equivaldría a la unión, es decir a|b|c y (a|b)|c tendría el mismo diagrama de transición, y la concatenación al ser la unión de dos expresiones no existe un orden o precedencias más que el que dicte quien lo haga, por lo que en la expresión regular no existe un símbolo para esta más que unir las expresiones en una.