valhallacคอมไพเลอร์ Valhalla

นี่คือตัวแยกวิเคราะห์และคอมไพเลอร์สำหรับ Valhalla ซึ่งไม่รวมเครื่องเสมือนจริงที่ Bytecode ที่คอมไพล์แล้วทำงานซึ่งก็คือ Brokkr VM
[!!] การวางแผนการเขียนใหม่อย่างสมบูรณ์และสร้างความสมดุลให้กับงาน
สิ่งที่เคยทำมาจนถึงส่วนหน้า:
VM คือแบ็กเอนด์สำหรับภาษากำลังได้รับการพัฒนาแยกต่างหากและจะดำเนินการกึ่งอิสระ
ในเชลล์ของคุณในรากของที่เก็บนี้คุณอาจเขียน:
cargo run [source-file-to-compile.vh] [-o out-file] [-v] หรือให้คอมไพเลอร์พิมพ์ข้อมูลการดีบักเช่นสตรีมโทเค็น, ต้นไม้ไวยากรณ์, ตารางสัญลักษณ์, คำแนะนำไบต์, & ct., ใช้ --features=debug :
cargo run --features=debug [source-file.vh]ตัวอย่างเช่นคุณสามารถเรียกใช้
cargo run test_source.vh -v # For verbose output. เพื่อแสดงให้เห็นถึงการรวบรวมด้วยไฟล์ทดสอบที่รวม ( test_source.vh ) การโต้แย้งของไฟล์แหล่งที่มาเพื่อรวบรวมเป็นสิ่งจำเป็น
current_compiler_test.md
ที่เก็บนี้มีส่วนหน้า (การรวบรวมตัวแยกวิเคราะห์และไบต์) ซึ่งประมวลผลไวยากรณ์และความหมายของซอร์สโค้ด AST ที่สร้างขึ้นจะถูกรวบรวมเป็น Brokkr VM bytecode การดำเนินการของ bytecode ที่ตามมาได้รับการจัดการโดย VM ของภาษา (เครื่องเสมือน) ที่เรียกว่า Brokkr ซึ่งมีอยู่แยกต่างหากจากที่เก็บนี้
Valhalla เป็นภาษาการเขียนโปรแกรมแบบตั้งทฤษฎี นั่นคือการบอกว่ามันขึ้นอยู่กับหลักการจากทฤษฎีที่ตั้งไว้ในแบบที่ทุกประเภทเป็นเพียงแค่ตั้งค่าและด้วยเหตุนี้ทุกอย่างเป็นเพียงองค์ประกอบของชุด ภาษามีวัตถุประสงค์เพื่อให้วิธีใหม่ในการโต้ตอบกับประเภทและให้วิธีที่ใช้งานง่ายในการคิดเกี่ยวกับพวกเขา เป้าหมายคือมันอาจถูกใช้เพื่อตรวจสอบการพิสูจน์และในทฤษฎีที่ตั้งไว้และรอบ ๆ
ภาษาเป็นจุดประสงค์ทั่วไป แต่แทนที่จะเป็นวัตถุที่มุ่งเน้นหรือใช้งานได้ทั้งหมดเป็นเพียงการกำหนดทฤษฎี จากสิ่งที่ฉันรวบรวมมามันไม่ใช่กระบวนทัศน์ที่ได้รับความนิยมมาก ... น่าจะเป็นเหตุผลที่ดี แต่เดี๋ยวก่อนมันอาจจะน่าสนใจ
จะลดลงอย่างมีนัยสำคัญ
