Please use this identifier to cite or link to this item: http://cmuir.cmu.ac.th/jspui/handle/6653943832/69090
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorผู้ช่วยศาสตราจารย์ ดร.วัชรี จำปามูล-
dc.contributor.authorปิยพงษ์ สุวรรณสินธุ์en_US
dc.date.accessioned2020-07-24T08:41:54Z-
dc.date.available2020-07-24T08:41:54Z-
dc.date.issued2015-12-
dc.identifier.urihttp://cmuir.cmu.ac.th/jspui/handle/6653943832/69090-
dc.description.abstractThis independent study presents a parser library (named ‘PX’) development by using component-based LR parsing technique together with using C# lambda to define language grammar and using technique that modify 'IL' code of the lambda so developer can follow the parser work directly from their integrated development environment (IDE). The library is intended to ease the process of creating component-based LR parser, the original one need many external parser generator tools. The library is developed with C# language on Windows operating system. The library is modified from existing ParserKit library. PX library structure contains two layers. The outer layer contains commands for defining language grammar with lambda and for controlling the parser. The grammar from outer layer is sent to the inner layer that was modified from the original LR parser to the component-based LR parser. The study creates a C# parser from using this library and tests speed of parsing compare with other C# parsers: Microsoft Roslyn (standard C# parser), Mono C#, ANTLR, Irony. Even the speed is on the second but when test size is less than 151.13 kilobytes; the study found that different time is less than 41 milliseconds. So at this speed the user should recognize the different between the two. By using this PX library, user can create a parser from C# code and benefits from familiar integrated development environment (IDE) and benefits from reducing work complexity. The speed results support that this library is possible and should be developed more in the future.en_US
dc.language.isothen_US
dc.publisherเชียงใหม่ : บัณฑิตวิทยาลัย มหาวิทยาลัยเชียงใหม่en_US
dc.titleการพัฒนาไลบรารีตัวแจงภาษาโดยใช้แลมบ์ดาในภาษา ซีชาร์ปและเทคนิคการแจงภาษาแบบแอลอาร์ตามองค์ประกอบen_US
dc.title.alternativeParser Library Development Using C# Lambda and Component-based LR Parsing Techniqueen_US
dc.typeIndependent Study (IS)
thesis.degreemasteren_US
thesis.description.thaiAbstractการค้นคว้าแบบอิสระนี้นำเสนอการพัฒนาไลบรารีสร้างตัวแจงภาษาชื่อพีเอ็กซ์ โดยใช้เทคนิคการแจงแบบแอลอาร์ตามองค์ประกอบและการใช้แลมบ์ดาในภาษาซีชาร์ปเพื่อนิยามไวยากรณ์และใช้เทคนิคการดัดแปลงไอแอลโค้ดของแลมบ์ดาเพื่อให้ผู้ใช้สามารถติดตามการทำงานของตัวแจงภาษาจากสภาพแวดล้อมการพัฒนาโดยตรง ทั้งนี้เพื่อลดความซับซ้อนของวิธีสร้างตัวแจงภาษาแบบแอลอาร์เดิมที่ต้องอาศัยเครื่องมือช่วยสร้างตัวแจงภาษาภายนอกหลายตัว ไลบรารีถูกพัฒนาด้วยภาษาซีชาร์ปบนระบบปฏิบัติการวินโดวส์ โดยดัดแปลงจากไลบรารีพาร์เซอร์คิตเดิม ไลบรารีพีเอ็กซ์มีโครงสร้างสองชั้น ชั้นนอกบรรจุชุดคำสั่งสำหรับนิยามไวยากรณ์ภาษาด้วยการใช้แลมบ์ดาและควบคุมการทำงานของตัวแจง ไวยากรณ์จากชั้นนอกจะถูกส่งให้โครงสร้างชั้นในที่ถูกดัดแปลงจากตัวแจงแอลอาร์แบบปกติให้เป็นการแจงแบบแอลอาร์ตามองค์ประกอบ งานค้นคว้าฯได้ตัวแจงภาษาซีชาร์ปขึ้นจากไลบรารีพีเอ็กซ์ จากนั้นนำไปทดสอบความเร็วในการแจงภาษาเปรียบเทียบกับตัวแจงภาษาซีชาร์ปมาตรฐาน(ไมโครซอฟต์รอสลิน) แม้จะได้ผลลัพธ์ความเร็วเป็นอันดับที่สอง รองจากตัวแจงมาตรฐาน แต่เมื่อดูจากผลต่างความเร็วในระดับการแจงไฟล์ที่มีขนาดน้อยกว่า 151.13 กิโลไบต์ พบว่าใช้เวลาต่างจากตัวแจงมาตรฐานไม่เกิน 41 มิลลิวินาที ด้วยระยะเวลาไม่เกินนี้ ผู้ใช้งานแทบไม่สังเกตเห็นความต่างของตัวแจงภาษาทั้งสอง การใช้ไลบรารีพีเอ็กซ์ ผู้ใช้งานจะได้รับประโยชน์จากสภาพแวดล้อมการพัฒนาที่คุ้นเคย สามารถสร้างตัวแจงภาษาได้โดยตรง ลดขั้นตอนการทำงาน และจากผลลัพธ์ความเร็วการทำงานสนับสนุนว่าไลบรารีนี้ใช้งานได้จริงและสมควรที่จะพัฒนาต่อยอดให้มีความสมบูรณ์มากยิ่งขึ้นต่อไปen_US
Appears in Collections:SCIENCE: Independent Study (IS)

Files in This Item:
File Description SizeFormat 
Full.pdf6.71 MBAdobe PDFView/Open    Request a copy


Items in CMUIR are protected by copyright, with all rights reserved, unless otherwise indicated.