วิธีการเขียนนักแปล

สารบัญ:

วิธีการเขียนนักแปล
วิธีการเขียนนักแปล

วีดีโอ: วิธีการเขียนนักแปล

วีดีโอ: วิธีการเขียนนักแปล
วีดีโอ: นักแปลอิสระ อาชีพนี้ทำอะไร | We Mahidol 2024, อาจ
Anonim

มีภาษาโปรแกรมมากมายที่มีลักษณะเฉพาะของตัวเอง แต่เพื่อให้โปรแกรมที่เขียนในนั้นใช้งานได้คุณต้องออกอากาศ บางครั้งภาษาโปรแกรมได้รับการพัฒนาตามความต้องการของตนเอง (เช่น รองรับการทำงานอัตโนมัติในแอปพลิเคชันขนาดใหญ่) จากนั้นจึงจำเป็นต้องเขียนนักแปล

วิธีการเขียนนักแปล
วิธีการเขียนนักแปล

จำเป็น

  • - ไวยากรณ์ธรรมชาติหรือ BNF ของภาษาต้นทาง
  • - เครื่องมือในการพัฒนา

คำแนะนำ

ขั้นตอนที่ 1

เตรียมข้อมูลสำหรับการวิเคราะห์คำศัพท์ของข้อความในภาษาต้นฉบับ แสดงรายการโทเค็นทั้งหมดในภาษา แบ่งออกเป็นหมวดหมู่ (คำหลัก ตัวเลขและตัวอักษรสตริง ตัวระบุ ช่องว่าง เครื่องหมายวรรคตอน ฯลฯ)

ขั้นตอนที่ 2

ใช้โมดูลหรือ lexer ที่อินพุตควรได้รับสตรีมข้อมูล "ดิบ" และที่เอาต์พุตจะมีรายการองค์ประกอบที่มีโทเค็นและตัวระบุประเภทตามลำดับที่เกิดขึ้นในข้อความต้นฉบับ โปรแกรม parsing สามารถค่อนข้างง่าย " สแกนเนอร์ระดับเดียว" การใช้การกู้คืนข้อผิดพลาดไม่สมเหตุสมผล อักขระที่ไม่ถูกต้องควรถือเป็นข้อผิดพลาด

ขั้นตอนที่ 3

เตรียมข้อมูลสำหรับการแยกวิเคราะห์ ตามไวยากรณ์ธรรมชาติหรือ BNF ของภาษาต้นฉบับ ให้เขียนไวยากรณ์ LL1 ตามไวยากรณ์ประเภทนี้ ให้จัดทำรูปแบบการแยกวิเคราะห์ในแง่ของประเภทของโทเค็นที่ถูกต้องและโครงสร้างทางความหมายของภาษา

ขั้นตอนที่ 4

ใช้โมดูลหรือ parser ที่อินพุต ควรได้รับรายการโทเค็นที่เตรียมไว้ในขั้นตอนการแยกวิเคราะห์คำศัพท์ พัฒนาอัลกอริทึมการตรวจสอบไวยากรณ์แบบเรียกซ้ำโดยใช้สคีมาที่คุณสร้างขึ้นในขั้นตอนที่สาม หากจำเป็น ให้ใช้กลไกการกู้คืนข้อผิดพลาด เพิ่มฟังก์ชันการทำงานให้กับอัลกอริธึมการแยกวิเคราะห์เพื่อสร้างแผนผังสำหรับการคำนวณฟังก์ชัน เมธอดของคลาส ด้วยโครงสร้างที่ถูกต้องของอัลกอริธึมการแยกวิเคราะห์ ฟังก์ชันนี้สามารถใช้งานได้โดยไม่มีปัญหาใดๆ เพื่อหลีกเลี่ยงความจำเป็นในการนำไปใช้เป็นโมดูลแยกต่างหาก โครงสร้างข้อมูลที่สร้างขึ้นควรมีรายการคำสั่งในรูปแบบลำดับ "แบบเรียบ" (นิพจน์เลขคณิตขยายเป็นรูปแบบ postfix ที่เหมาะสมสำหรับการคำนวณบนเครื่องสแต็ก ลูปที่แปลงเป็นชุดของลำดับคำสั่งคำนวณและการข้ามแบบมีเงื่อนไขหรือแบบไม่มีเงื่อนไข เป็นต้น).

ขั้นตอนที่ 5

สร้างโมดูลการเพิ่มประสิทธิภาพหากจำเป็น ควรประมวลผลและแปลงโครงสร้างข้อมูลที่เตรียมไว้ในขั้นตอนก่อนหน้า อัลกอริธึมและวิธีการเพิ่มประสิทธิภาพมีความหลากหลายมาก

ขั้นตอนที่ 6

พัฒนาตัวสร้างรหัส เมื่อประมวลผลโครงสร้างที่เตรียมไว้ในขั้นตอนที่สี่หรือห้า ก็ควรเปลี่ยนลำดับของคำสั่งที่เป็นนามธรรมเป็นคำสั่งสำหรับการดำเนินการบนแพลตฟอร์มเฉพาะ

ขั้นตอนที่ 7

สร้างโปรแกรมผูก (ตัวเชื่อมโยง) หากจำเป็น ควรสร้างโมดูลปฏิบัติการที่ได้ผลลัพธ์โดยเลือกตำแหน่งของส่วนโค้ด คำนวณที่อยู่ของป้ายกำกับ ฯลฯ