Please use this identifier to cite or link to this item: https://cuir.car.chula.ac.th/handle/123456789/49063
Title: การพัฒนาตัวแปลภาษาสำหรับภาษาที่ประมวลผลพร้อมกัน
Other Titles: Development of a concurrent processing language translator
Authors: สมศักดิ์ รวมมหทรัพย์
Advisors: ประภาส จงสถิตย์วัฒนา
Other author: จุฬาลงกรณ์มหาวิทยาลัย. บัณฑิตวิทยาลัย
Advisor's Email: Prabhas.C@chula.ac.th
Subjects: การประมวลผลภาษาธรรมชาติ (วิทยาการคอมพิวเตอร์)
ตัวแปลภาษา (โปรแกรมคอมพิวเตอร์)
คอมไพเลอร์ (โปรแกรมคอมพิวเตอร์)
อินเตอร์พรีเตอร์ (โปรแกรมคอมพิวเตอร์)
Issue Date: 2539
Publisher: จุฬาลงกรณ์มหาวิทยาลัย
Abstract: จุดมุ่งหมายของวิทยานิพนธ์ฉบับนี้คือการพัฒนาตัวแปลภาษาที่ประมวลผลพร้อมกัน โดยจะแบ่งขั้นตอนการพัฒนาเป็นสองส่วนคือ ขั้นตอนแรกจะเป็นการพัฒนาคอมไพเลอร์เพื่อแปลภาษาต้นแบบไปเป็นรหัสกลางที่ไม่ผูกพันกับฮาร์ดแวร์ โดยเทคนิคที่ใช้ในการแปลคือการแปลแบบเรียกซ้ำตามลำดับขั้น ในส่วนที่สองจะเป็นการพัฒนาอินเตอร์พรีเตอร์ที่จะนำรหัสกลางที่ได้จากคอมไพเลอร์มาประมวลผลลแบบพร้อมกัน อินเตอร์พรีเตอร์นี้จะใช้เทคนิคการจัดกำหนดการแบบวนรอบ ใช้ในเซมาฟอร์ในการป้องกันทรัพยากรร่วม และใช้การส่งข่าวสารในการติดต่อระหว่างกระบวนการ คอมไพเลอร์สามารถแปลได้ 115 บรรทัดต่อวินาที ส่วนอินเตอร์พรีเตอร์สามารถทำงานได้ 26,747 คำสั่งต่อวินาที ใช้เวลาในการจัดลำดับงานร้อยละ 5.5 ของเวลาซีพียู ได้ยกตัวอย่างการใช้ภาษานี้เพื่อแก้ปัญหาการขนส่ง โดยให้มีการทำงาน 4 กระบวนการพร้อมกัน นอกจากนี้ยังได้เปรียบเทียบตัวอินเตอร์พรีเตอร์กับการแปลไปเป็นภาษาปาลกาลโดยตรง มีผลคืออินเตอร์พรีเตอร์ทำงานได้ช้ากว่าประมาณ 3 เท่า
Other Abstract: The aim of this work is to develop translator for a concurrent processing language. The system composed of 2 parts. The first part is a compiler which translates a source language to intermediate codes which are independent of the hardware. The compiler uses a recursive descent technique. The second part is an interpreter which executes the intermediate codes in a concurrent fashion. The scheduler employs a Round Robin Policy. Semaphores are used to protect share resources. Message passing is method for inter-process communication. The speed of compiler is 115 lines per second. The interpreter can execute 26,747 codes per second. The overhead of process switching is 5.5% of CPU time. An example is shown for solving the transportation problem in which there are 4 concurrent processes. Moreover, the interpreter is compared with the direct translation to Pascal method. The interpreter is approximately 3 times slower.
Description: วิทยานิพนธ์ (วท.ม.)--จุฬาลงกรณ์มหาวิทยาลัย, 2539
Degree Name: วิทยาศาสตรมหาบัณฑิต
Degree Level: ปริญญาโท
Degree Discipline: วิศวกรรมคอมพิวเตอร์
URI: http://cuir.car.chula.ac.th/handle/123456789/49063
ISBN: 9745605821
Type: Thesis
Appears in Collections:Grad - Theses

Files in This Item:
File Description SizeFormat 
Somsak_ru_front.pdf5.83 MBAdobe PDFView/Open
Somsak_ru_ch1.pdf2.34 MBAdobe PDFView/Open
Somsak_ru_ch2.pdf10.58 MBAdobe PDFView/Open
Somsak_ru_ch3.pdf7.08 MBAdobe PDFView/Open
Somsak_ru_ch4.pdf8.24 MBAdobe PDFView/Open
Somsak_ru_ch5.pdf7.27 MBAdobe PDFView/Open
Somsak_ru_ch6.pdf5.11 MBAdobe PDFView/Open
Somsak_ru_ch7.pdf2.38 MBAdobe PDFView/Open
Somsak_ru_back.pdf13.35 MBAdobe PDFView/Open


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