ภาษาคอมพิวเตอร์เริ่มต้นมาจากอะไรหรอคะ??

เคยสงสัยมานานแล้ว ถามใครก็ไม่ได้คำตอบที่ทำให้เข้าใจเลย
ถ้าถามว่าทำไมไม่หาอ่านในหนังสือ ก็ไม่รู้จะหาอ่านจากเล่มไหนอีก
>
คือสงสัยว่า ภาษาคอมพิวเตอร์พัฒนามาจากเลขฐานสอง?
อันนี้ไม่แน่ใจว่าเข้าใจถูกมั้ย
แล้วทำไมไอเครื่องนี้มันถึงเข้าใจหละ มันก็แค่เครื่องจักร?
<
ถ้าไม่เป็นการรบกวน ขอความกรุณาผู้รู้ช่วยตอบด้วยนะคะ
ปล. ถ้าเข้าใจอะไรผิดไปก็ขอให้ชี้แนะด้วย T-T
(นี่สมัคร+ตั้งกระทู้เพื่อถามเลยจริงๆ)

ร้องไห้ร้องไห้ร้องไห้ร้องไห้
สุดยอดความคิดเห็น
ความคิดเห็นที่ 9
คอมพิวเตอร์ คือ เครื่องคำนวณ

เริ่มจากการอยากบวกเลขง่ายๆ เช่น 9 + 6 = 15

แปลงให้อยู่ในรูปเลขฐาน 2 ก็จะได้หน้าตาประมาณนี้ 1001 + 0110 = 1111

ถ้าสังเกตดูจะพบว่าผลลัพธ์การบวกเลขชุดดังกล่าว คือ การนำแต่ละบิทมา XOR กัน

ด้วยหลักการนี้มันก็เลยเกิดเป็นวงจร Gate สำหรับการคำนวณทางคณิตศาสตร์ พอวงจร Gate ใหญ่ขึ้น มีความซับซ้อนมากขึ้น สามารถทำอะไรได้มากกว่าการบวก มันก็กลายเป็นส่วนคำนวณใน CPU เรียกว่า ALU (Arithmetic Logic Unit)

ไม่จบแค่นั้น คิดได้แต่เก็บผลลัพธ์ไว้ไม่ได้ก็ยังไม่มีประโยชน์ เราต้องหาวิธีให้เครื่องจักรมันจำค่าเอาไว้ให้ได้ด้วย ก็เลยเกิดเป็นส่วนที่เรียกว่าหน่วยความจำขึ้นมา (Register)

และจากตัวอย่างข้างต้น เวลาคอมพิวเตอร์คิด ขั้นตอนการคิดมันจะเป็นประมาณนี้

- ให้หน่วยความจำตำแหน่งที่ 1 เก็บค่า 1001

- ให้หน่วยความจำตำแหน่งที่ 2 เก็บค่า 0110

- ให้หน่วยความจำตำแหน่งที่ 3 เก็บค่าหน่วยความจำตำแหน่งที่ 1 บวกด้วยหน่วยความจำตำแหน่งที่ 2

สุดท้ายผลลัพธ์ของ 1001 + 0110 ก็จะถูกเก็บอยู่ในหน่วยความจำช่องที่ 3 เราก็สามารถเอามันไปทำอย่างอื่นต่อได้ละ

ทั้งหมดนี้ล้วนถูกควบคุมด้วย CPU

ส่วนเราเองคือผู้อยู่เบื้องหลัง มีหน้าที่เขียน "คำสั่ง" ไปควบคุม CPU ให้มันทำงานตามโฟลว คำสั่งเหล่านั้นเรียกว่า Opcode ซึ่งเป็นเลขฐาน 2 ธรรมดาๆ นี่แหละครับ ตัวอย่างดูได้จากที่นี่ http://alumni.cs.ucr.edu/~vladimir/cs161/mips.html ( แต่ละสถาปัตยกรรมก็จะแตกต่างกันไป )

แต่การจะเขียน Opcode ด้วยเลขฐาน มันก็คงยุ่งยากเกิน คนสร้าง CPU เค้าก็เลยทำ Instruction ที่เป็นภาษามนุษย์เพื่อความสะดวกมาให้อีก เช่น ถ้าจะบวกเลข จากที่ต้องเขียน "00000000" ก็เขียนแทนด้วยคำว่า "add" มันก็คือ Assembly Language ละ และนี่คือจุดเริ่มต้นของภาษาโปรแกรมคอมพิวเตอร์

ในขณะเดียวกัน CPU ก็มีวงจรอิเล็กทรอนิกส์ที่แปลง Instruction พวกนั้น ให้กลายเป็นคำสั่งที่สามารถควบคุมการทำงานแต่ละส่วนได้ เรียกว่า "Instruction Decoder"

ภาษาโปรแกรมอย่าง C, Python, Java ต่อให้เป็นภาษาระดับสูงใกล้เคียงภาษามนุษย์แค่ไหน สุดท้ายแล้วมันก็จะถูกแปลงกลับลงมาเรื่อยๆ กลายเป็น Opcode หรือ Machine Language ที่ CPU รู้จักนี่ล่ะครับ

จุดเริ่มต้นคร่าวๆ ก็ประมาณนี้  ส่วนรายละเอียดถ้าจะเจาะไปแต่ละส่วนมันเยอะมาก หากสนใจก็ลองเสิร์ชหาอ่านต่อดูตามคีย์เวิร์ดเลยครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่