มีภาษาโปรแกรมมากมายที่มีลักษณะเฉพาะของตัวเอง แต่เพื่อให้โปรแกรมที่เขียนในนั้นใช้งานได้คุณต้องออกอากาศ บางครั้งภาษาโปรแกรมได้รับการพัฒนาตามความต้องการของตนเอง (เช่น รองรับการทำงานอัตโนมัติในแอปพลิเคชันขนาดใหญ่) จากนั้นจึงจำเป็นต้องเขียนนักแปล
จำเป็น
- - ไวยากรณ์ธรรมชาติหรือ BNF ของภาษาต้นทาง
- - เครื่องมือในการพัฒนา
คำแนะนำ
ขั้นตอนที่ 1
เตรียมข้อมูลสำหรับการวิเคราะห์คำศัพท์ของข้อความในภาษาต้นฉบับ แสดงรายการโทเค็นทั้งหมดในภาษา แบ่งออกเป็นหมวดหมู่ (คำหลัก ตัวเลขและตัวอักษรสตริง ตัวระบุ ช่องว่าง เครื่องหมายวรรคตอน ฯลฯ)
ขั้นตอนที่ 2
ใช้โมดูลหรือ lexer ที่อินพุตควรได้รับสตรีมข้อมูล "ดิบ" และที่เอาต์พุตจะมีรายการองค์ประกอบที่มีโทเค็นและตัวระบุประเภทตามลำดับที่เกิดขึ้นในข้อความต้นฉบับ โปรแกรม parsing สามารถค่อนข้างง่าย " สแกนเนอร์ระดับเดียว" การใช้การกู้คืนข้อผิดพลาดไม่สมเหตุสมผล อักขระที่ไม่ถูกต้องควรถือเป็นข้อผิดพลาด
ขั้นตอนที่ 3
เตรียมข้อมูลสำหรับการแยกวิเคราะห์ ตามไวยากรณ์ธรรมชาติหรือ BNF ของภาษาต้นฉบับ ให้เขียนไวยากรณ์ LL1 ตามไวยากรณ์ประเภทนี้ ให้จัดทำรูปแบบการแยกวิเคราะห์ในแง่ของประเภทของโทเค็นที่ถูกต้องและโครงสร้างทางความหมายของภาษา
ขั้นตอนที่ 4
ใช้โมดูลหรือ parser ที่อินพุต ควรได้รับรายการโทเค็นที่เตรียมไว้ในขั้นตอนการแยกวิเคราะห์คำศัพท์ พัฒนาอัลกอริทึมการตรวจสอบไวยากรณ์แบบเรียกซ้ำโดยใช้สคีมาที่คุณสร้างขึ้นในขั้นตอนที่สาม หากจำเป็น ให้ใช้กลไกการกู้คืนข้อผิดพลาด เพิ่มฟังก์ชันการทำงานให้กับอัลกอริธึมการแยกวิเคราะห์เพื่อสร้างแผนผังสำหรับการคำนวณฟังก์ชัน เมธอดของคลาส ด้วยโครงสร้างที่ถูกต้องของอัลกอริธึมการแยกวิเคราะห์ ฟังก์ชันนี้สามารถใช้งานได้โดยไม่มีปัญหาใดๆ เพื่อหลีกเลี่ยงความจำเป็นในการนำไปใช้เป็นโมดูลแยกต่างหาก โครงสร้างข้อมูลที่สร้างขึ้นควรมีรายการคำสั่งในรูปแบบลำดับ "แบบเรียบ" (นิพจน์เลขคณิตขยายเป็นรูปแบบ postfix ที่เหมาะสมสำหรับการคำนวณบนเครื่องสแต็ก ลูปที่แปลงเป็นชุดของลำดับคำสั่งคำนวณและการข้ามแบบมีเงื่อนไขหรือแบบไม่มีเงื่อนไข เป็นต้น).
ขั้นตอนที่ 5
สร้างโมดูลการเพิ่มประสิทธิภาพหากจำเป็น ควรประมวลผลและแปลงโครงสร้างข้อมูลที่เตรียมไว้ในขั้นตอนก่อนหน้า อัลกอริธึมและวิธีการเพิ่มประสิทธิภาพมีความหลากหลายมาก
ขั้นตอนที่ 6
พัฒนาตัวสร้างรหัส เมื่อประมวลผลโครงสร้างที่เตรียมไว้ในขั้นตอนที่สี่หรือห้า ก็ควรเปลี่ยนลำดับของคำสั่งที่เป็นนามธรรมเป็นคำสั่งสำหรับการดำเนินการบนแพลตฟอร์มเฉพาะ
ขั้นตอนที่ 7
สร้างโปรแกรมผูก (ตัวเชื่อมโยง) หากจำเป็น ควรสร้างโมดูลปฏิบัติการที่ได้ผลลัพธ์โดยเลือกตำแหน่งของส่วนโค้ด คำนวณที่อยู่ของป้ายกำกับ ฯลฯ