ระดับสูงกับระดับต่ำไม่ใช่สิ่งขาวดำ แต่เป็นระดับต่อเนื่อง ข้อกำหนดนี้ใช้เพื่ออธิบายว่าภาษาการเขียนโปรแกรมใกล้เคียงกับฮาร์ดแวร์อย่างไร ยิ่งระดับสูงขึ้นเท่าไหร่มันก็จะทำให้ฮาร์ดแวร์หลุดออกไป
เห็นได้ชัดว่าระดับต่ำสุดคือรหัสเครื่องไบนารี่ - เป็นตัวแทนที่แน่นอนของระบบปฏิบัติการโหลดและฟีดไปยัง CPU การชุมนุมเป็นระดับแรกของสิ่งที่เป็นนามธรรมซึ่งอยู่ด้านบนของมัน: แทนที่จะเป็นรหัสไบนารี่, หนึ่งเขียนความจำ, รหัสสัญลักษณ์ที่มนุษย์อ่านได้ซึ่งเป็นตัวแทนของคำสั่งเครื่องไบนารี่ นี่คือสิ่งที่ผู้คนใช้สำหรับการเขียนโปรแกรมระบบก่อนหน้า UNIX
C เป็นขั้นตอนต่อไปในห่วงโซ่นามธรรมรวมรูปแบบทั่วไปเข้าในโครงสร้างการควบคุมการไหลและคำแนะนำเฉพาะเครื่องที่เป็นนามธรรมในรูปแบบของแพลตฟอร์มที่ไม่เชื่อเรื่องพระเจ้าผู้ไม่เชื่อเรื่องพระเจ้าและสุดท้าย abstractions นี้เป็นหนึ่งในปัจจัยสำคัญที่ทำให้ UNIX ปฏิวัติและประสบความสำเร็จอย่างสูง หมายความว่าสามารถรวบรวมรหัสเดียวกันสำหรับแพลตฟอร์มใด ๆ โดยไม่มีการเปลี่ยนแปลงที่สำคัญ
C ++ เพิ่ม abstractions อีกเลเยอร์: เพิ่มคลาส (การสรุป vtables และบริบทที่ส่งผ่านไปยังไวยากรณ์ OOP) new
และdelete
(การจัดสรรหน่วยความจำบันเดิลและการกำหนดค่าเริ่มต้นตัวแปรให้เป็นโครงสร้างเดียว) การตรวจสอบชนิดเวลาคอมไพล์ metaprogramming) และสิ่งอำนวยความสะดวกด้านไวยากรณ์เวลาคอมไพล์เช่นเนมสเปซ, ฟังก์ชั่นและการโอเวอร์โหลดของผู้ปฏิบัติงานเป็นต้น
Python ก้าวไปอีกขั้นจากฮาร์ดแวร์ C ++ ยังให้โปรแกรมเมอร์ควบคุมการจัดสรรหน่วยความจำเต็มรูปแบบและช่วยให้การจัดการ RAM โดยตรง; Python ดูแลการจัดการหน่วยความจำให้คุณ นอกจากนี้แทนที่จะรวบรวมรหัสของคุณเป็นคำสั่งเครื่องที่ใช้ภาษาท้องถิ่นทั้งหมดจะรันรหัสดังกล่าวกับเครื่องเสมือน (ซึ่งบางครั้งอาจหนักหนาสาหัส แต่มักจะไม่ใช่สิ่งที่ต้องกังวล) แต่มันยังช่วยให้สิ่งที่เรียบร้อยซึ่งจะยุ่งยากใน C ++ และยากมากใน C เช่นการจัดการกับฟังก์ชันและคลาสที่ทำงาน เวลารับชื่อของออบเจกต์ตามอำเภอใจในเวลาใช้งานอินสแตนซ์คลาสโดยใช้ชื่อ ณ รันไทม์การปะแก้ลิง ฯลฯ เป็นต้น
ดังนั้นเมื่อผู้คนแบ่งภาษาออกเป็น "ระดับสูง" และ "ระดับต่ำ" พวกเขาจะวาดเส้นที่กำหนดไว้ที่ใดที่หนึ่งและบรรทัดนั้นจะไม่เหมือนกันเสมอไป ในปี 1970 เส้นแบ่งระหว่างแอสเซมบลีและ C (สรุปคำสั่งเครื่องเฉพาะแพลตฟอร์มเป็นปัจจัยชี้ขาด); ในปี 1987 มันอาจจะอยู่ระหว่าง C และ C ++; วันนี้อาจอยู่ระหว่าง C ++ และ Java (ด้วยการจัดการหน่วยความจำอัตโนมัติเป็นปัจจัยชี้ขาด)
เรื่องสั้นสั้น: ระดับสูงเป็นสเกลเลื่อนและสำหรับสามภาษาที่คุณพูดถึงคือ C <C ++ <Python