ต้นไม้ไวยากรณ์นามธรรม (AST) เป็นโครงสร้างประโยคที่ทำขึ้นเพื่อเป็นตัวแทนของฟังก์ชั่นที่เกิดขึ้นภายในโปรแกรม มันขึ้นอยู่กับซอร์สโค้ดของการเขียนโปรแกรม โดยทั่วไปแล้วในการออกแบบลำดับชั้นต้นไม้ไวยากรณ์นามธรรมเริ่มต้นจากฟังก์ชั่นพื้นฐานและลำธารลงเพื่อแสดงฟังก์ชั่นที่เกี่ยวข้องมากขึ้นและรหัสในแต่ละฟังก์ชั่นพื้นฐาน การใช้ทรีนี้ทำให้โปรแกรมเมอร์เขียนโค้ดได้ง่ายขึ้นโดยไม่ต้องมองผ่านซอร์สโค้ดเองซึ่งยาวกว่ามากและอาจเปิดเผยข้อบกพร่องหรือจุดอ่อนในโค้ด ต้นไม้เรียกว่านามธรรมไม่ใช่เพราะมันยากที่จะเข้าใจหรือมีรูปร่างที่เป็นนามธรรม แต่เนื่องจากมันไม่ได้รวมไวยากรณ์ของการเข้ารหัสเช่นเครื่องหมายวงเล็บและสัญลักษณ์อื่น ๆ ที่ปรากฏในรหัสอย่างหลีกเลี่ยงไม่ได้
เมื่อโปรแกรมเมอร์สร้างโปรแกรมเขาหรือเธอจะต้องสร้างฟังก์ชั่นจากสิ่งต่าง ๆ เช่นคำสั่ง "if-then" และคำสั่ง "หรืออื่น ๆ " เมื่อมองไปที่ซอร์สโค้ดมันอาจเป็นเรื่องยากที่จะดูว่าทุกคำสั่งและเงื่อนไขได้รับการตอบสนองอย่างสมบูรณ์และถ้าฟังก์ชั่นทั้งหมดได้ถูกสร้างขึ้นอย่างถูกต้อง แผนผังไวยากรณ์แบบนามธรรมช่วยให้โปรแกรมเมอร์สามารถตรวจสอบการเขียนโปรแกรมเพื่อดูแต่ละเงื่อนไขและวิธีการใช้กับโปรแกรมโดยรวม
ต้นไม้ถูกสร้างขึ้นตามลำดับชั้น ที่ด้านบนเป็นหนึ่งในข้อความหลักและจากคำสั่งนั้นสาขาไหลลงเพื่อแสดงสิ่งที่เป็นไปตามเงื่อนไข สิ่งนี้จะดำเนินต่อไปโดยแสดงฟังก์ชั่นและเงื่อนไขอื่น ๆ สำหรับโปรแกรมทั้งหมด ตัวแปรในการเขียนโปรแกรมมักจะแสดงเช่นกัน ภาษาโปรแกรมส่วนใหญ่มีความสามารถในการสร้างทรีไวยากรณ์ที่เป็นนามธรรม
บทคัดย่อมักจะหมายถึงรูปแบบที่ไม่ดีเข้าใจยากหรือไม่มีรูปร่าง นี่ไม่ใช่กรณีที่มีแผนผังไวยากรณ์ที่เป็นนามธรรม เหตุผลที่ใช้คำว่า "abstract" เป็นเพราะ tree ไม่แสดงไวยากรณ์และการเขียนโปรแกรมตามที่เป็นอยู่ ค่อนข้างจะลบสัญลักษณ์โดยนัยที่ไม่สำคัญสำหรับการแสดงผล ตัวอย่างเช่นวงเล็บมักใช้อย่างอิสระในการเขียนโปรแกรม แต่จะไม่แสดงบนต้นไม้ เนื่องจากการแสดงไวยากรณ์นี้ใช้พื้นที่มากขึ้นทำให้มองต้นไม้ได้ยากขึ้นและโปรแกรมเมอร์จะรู้เกี่ยวกับสัญลักษณ์เหล่านี้ในซอร์สโค้ด
หากโปรแกรมเมอร์ต้องการเห็นสัญลักษณ์เสริมเหล่านี้มักจะใช้แผนผังไวยากรณ์ที่เป็นรูปธรรม ต้นไม้เหล่านี้มีความคล้ายคลึงกับความหลากหลายที่เป็นนามธรรมเพียง แต่พวกเขามีรายละเอียดมากขึ้นด้วยสัญลักษณ์ ต้นไม้นี้ดีกว่าถ้ามองดูสัญลักษณ์หรือรหัสที่หายไปในขณะที่ต้นไม้นามธรรมดีกว่าสำหรับการตรวจสอบฟังก์ชันและตัวแปรของโปรแกรม


