ดีบักเกอร์กับคอมไพเลอร์
โดยทั่วไป คอมไพเลอร์คือโปรแกรมคอมพิวเตอร์ที่อ่านโปรแกรมที่เขียนด้วยภาษาหนึ่งซึ่งเรียกว่าภาษาต้นทางและแปลเป็นภาษาอื่นซึ่งเรียกว่าภาษาเป้าหมาย ตามเนื้อผ้า ภาษาต้นฉบับเป็นภาษาระดับสูง เช่น C++ และภาษาเป้าหมายเป็นภาษาระดับต่ำ เช่น ภาษาแอสเซมบลี Debugger เป็นโปรแกรมคอมพิวเตอร์ที่ใช้ค้นหาจุดบกพร่อง/ข้อผิดพลาดในโปรแกรมอื่น Debugger อนุญาตให้โปรแกรมเมอร์หยุดการทำงานของโปรแกรม ณ จุดหนึ่ง และตรวจสอบคุณลักษณะต่างๆ เช่น ค่าตัวแปร ณ จุดนั้น
ดีบักเกอร์คืออะไร
Debugger เป็นโปรแกรมคอมพิวเตอร์ที่ใช้ค้นหาจุดบกพร่อง/ข้อผิดพลาดในโปรแกรมอื่น ดีบักเกอร์อนุญาตให้รันโปรแกรมและตรวจสอบแต่ละขั้นตอนในการทำงานของโปรแกรม นอกจากนี้ยังอนุญาตให้หยุดการทำงานของโปรแกรมในบางจุดและเปลี่ยนค่าตัวแปรบางค่าแล้วดำเนินการต่อไป ความสามารถทั้งหมดนี้มีไว้เพื่อช่วยโปรแกรมเมอร์เพื่อให้แน่ใจว่าโปรแกรมของเธอทำงานอย่างถูกต้องและช่วยในการระบุจุดบกพร่องในโค้ด ดีบักเกอร์ส่วนใหญ่มีความสามารถในการรันโปรแกรมทีละขั้นตอน (เรียกอีกอย่างว่า single stepping) หยุดชั่วคราวเพื่อตรวจสอบสถานะปัจจุบันของโปรแกรมโดยระบุจุดพักและติดตามค่าตัวแปร ดีบักเกอร์ขั้นสูงบางตัวอนุญาตให้โปรแกรมเมอร์ข้ามตำแหน่งที่ทำให้เกิดการแครชหรือข้อผิดพลาดทางตรรกะในโค้ดและดำเนินการจากตำแหน่งอื่นต่อไป ดีบักเกอร์ยอดนิยมบางตัว ได้แก่ GNU Debugger (GDB), Microsoft Visual Studio Debugger เป็นต้น
คอมไพเลอร์คืออะไร
คอมไพเลอร์เป็นโปรแกรมคอมพิวเตอร์ที่อ่านโปรแกรมที่เขียนในภาษาหนึ่งซึ่งเรียกว่าภาษาต้นทางและแปลเป็นภาษาอื่นซึ่งเรียกว่าภาษาเป้าหมาย ส่วนใหญ่แล้ว ภาษาต้นฉบับเป็นภาษาระดับสูง และภาษาเป้าหมายเป็นภาษาระดับต่ำ ดังนั้นโดยทั่วไปแล้วคอมไพเลอร์สามารถเห็นได้ว่าเป็นนักแปลที่แปลจากภาษาหนึ่งเป็นอีกภาษาหนึ่ง นอกจากนี้ คอมไพเลอร์ยังทำการเพิ่มประสิทธิภาพบางอย่างให้กับโค้ดอีกด้วย คอมไพเลอร์ทั่วไปประกอบด้วยองค์ประกอบหลักหลายประการ องค์ประกอบแรกคือเครื่องสแกน (หรือที่เรียกว่าเครื่องวิเคราะห์คำศัพท์) Scanner อ่านโปรแกรมและแปลงเป็นสตริงของโทเค็น องค์ประกอบที่สองคือ parser มันแปลงสตริงของโทเค็นเป็นแผนผังการแยกวิเคราะห์ (หรือแผนผังไวยากรณ์นามธรรม) ซึ่งรวบรวมโครงสร้างวากยสัมพันธ์ของโปรแกรม องค์ประกอบถัดไปคือรูทีนเชิงความหมายที่ตีความความหมายของโครงสร้างวากยสัมพันธ์ ตามมาด้วยการเพิ่มประสิทธิภาพโค้ดและการสร้างโค้ดขั้นสุดท้าย
ดีบักเกอร์และคอมไพเลอร์ต่างกันอย่างไร
Debugger เป็นโปรแกรมคอมพิวเตอร์ที่ใช้ค้นหาจุดบกพร่อง/ข้อผิดพลาดในโปรแกรมอื่น ในขณะที่คอมไพเลอร์เป็นโปรแกรมคอมพิวเตอร์ที่อ่านโปรแกรมที่เขียนในภาษาหนึ่งและแปลเป็นภาษาอื่น คอมไพเลอร์ยังมีความสามารถในการตรวจจับข้อผิดพลาดทางไวยากรณ์และข้อผิดพลาดของเวลาคอมไพล์อื่นๆ แต่ตัวดีบั๊กจะมีความสามารถมากขึ้น (เช่น การตรวจสอบหน่วยความจำ) เพื่อตรวจหาจุดบกพร่องในโปรแกรม สองโปรแกรมนี้เป็นสองโปรแกรมที่แตกต่างกัน แต่โดยส่วนใหญ่แล้ว ดีบักเกอร์และคอมไพเลอร์จะรวมอยู่ในแพ็คเกจเดียว