Learning Objectives:
- Students will be able to explain the origins of the Python programming language.
- Students will be able to write and run a simple Python program to print a message
สวัสดีครับ นี่คือสัปดาห์แรกของการเรียนเขียนโปรแกรมด้วยภาษา Python กัน หลาย ๆ คนก็อยากที่จะศึกษาอยู่แล้ว แต่ก็อาจมีบางคนตั้งคำถามว่าทำไมต้องใช้ภาษานี้ในการเขียนโปรแกรม ??? คำตอบคือบอกไม่ได้หรอกครับ
แต่เราต้องดูเหตุผลกันดีกว่าครับ ว่าทำไมเราควรจะเลือกภาษาตัวนี้ในการพัฒนาโปรแกรมจนกลายไปสู่ซอฟต์แวร์ได้ เหตุผลหลัก ๆ ที่เราควรจะเรียนภาษา Python คือ เขียนน้อย เข้าใจได้ง่าย มีประสิทธิภาพมาก เหมาะแก่มือใหม่ทุกคนครับ
ภาษาไพทอน (Python Programming Language)
เป็นภาษาระดับสูง (High-level Programming Language) ออกแบบมาให้ใกล้เคียงภาษามนุษย์เพื่อให้มนุษย์สามารถอ่านเข้าใจได้ง่าย ใกล้เคียงกับภาษาธรรมชาติ เพื่อที่มนุษย์จะสามารถเขียนลำดับขั้นตอนการแก้ปัญหา (Algorithm) ให้อยู่ในรูปแบบของชุดคำสั่งทำให้ programmer ไม่ต้องไปรู้จักกับวงจรหรือสัญญาณไฟฟ้าภายในเครื่อง (Source code) แตกต่างจากภาษาเครื่อง (Machine Language) จะใกล้เคียงกับการทำงานของเครื่องมากกว่า ภาษาคอมพิวเตอร์ (machine language) เป็นภาษาที่เครื่องเข้าใจได้โดยตรง แต่สำหรับคนจะอ่านและเขียนได้ยาก ตัวอย่างเช่น Assembly language
คุณสมบัติ | High-level programming | Low-level programming |
ใช้งานง่าย | ง่าย (Easy) | ยาก (Difficult) |
อ่านออกเขียนได้สะดวก | สะดวก (Readable) | ยาก (Difficult) |
ใกล้เคียงภาษาธรรมชาติ | ใกล้เคียง (Similar) | ไม่ใกล้เคียง (Different) |
Abstraction | สูง (High) | ต่ำ (Low) |
รู้จักวงจรภายในเครื่อง | ไม่จำเป็น (Not required) | จำเป็น (Required) |
ตัวอย่างภาษา | Python, Java, C# | Assembly language |
จากรูปตัวอย่างข้างต้นเป็นการสั่งงานให้คอมพิวเตอร์ทำงานโปรแกรมที่เราได้เขียนขึ้น โดยกำหนดการทำงานให้แสดงผลว่า “Hello, World” นั่นเอง ลองดูรูปทางด้านซ้ายมือ นั่นคือการเขียนโปรแกรมโดยใช้ภาษา Assembly ซึ่งเป็นการเขียนโปรแกรมโดยใช้ภาษาระดับ Low-level ลองเปรียบเทียบกับด้านขวาซึ่งใช้ภาษา C ซึ่งเป็นการเขียนโปรแกรมโดยใช้ภาษาระดับ High-level
แต่อย่าลืมนะครับว่าภาษา ภาษาเครื่อง (Machine Language) หรือ Low-level Language นั้นแม้จะดูแล้ววุ่นวายกว่าในการเขียนโปรแกรม แต่คอมพิวเตอร์เข้าใจได้ ส่วน . . . High-level Language นั้นมนุษย์เข้าใจได้ง่ายแต่คอมพิวเตอร์ไม่เข้าใจครับ เรามีทางออกโดยการใช้วุ้นแปลภาษาครับ . . . ? ? ?
จะบอกว่าจริง ๆ แล้วมันต้องอาศัยการแปลภาษาครับ ใช้ Translate ต่าง ๆ นั่นแหละครับ แต่ในการเขียนโปรแกรมคอมพิวเตอร์เราใช้ คอมไพเลอร์ (Compiler) หรือ อินเทอร์พรีเตอร์ (Interpreter) ครับ
คอมไพเลอร์ (Compiler) กับ อินเทอร์พรีเตอร์ (Interpreter)
การที่จะให้คอมพิวเตอร์แปลโปรแกรมที่มนุษย์เขียนโดยใช้ High-level ต้องทำการแปลโปรแกรมเป็นชุดคำสั่งภาษาคอมพิวเตอร์หนึ่ง ไปเป็นชุดคำสั่งที่มีความหมายเดียวกันในภาษาคอมพิวเตอร์ที่เข้าใจได้ เปรียบเสมือนล่ามที่แปลภาษาหนึ่ง ไปเป็นอีกภาษาหนึ่ง
สมมติว่าเราเขียนโปรแกรมภาษา Python ไว้ชุดหนึ่ง ต้องการรันโปรแกรมนี้บนเครื่องคอมพิวเตอร์ คอมไพเลอร์จะทำหน้าที่แปลงโค้ด Python ของเรา ไปเป็นภาษาเครื่อง (Machine language) ซึ่งเป็นภาษาที่ CPU เข้าใจและสามารถรันได้โดยตรง
ซึ่งสามารถแบ่งย่อยเป็นคอมไพเลอร์ กับ อินเทอร์พรีเตอร์
สมมุติว่าเราได้รับคำสั่งให้เราไปทำงานซึ่งเราไม่สามารถอ่านภาษาที่เขียนมานั้นเราจะต้องแปลภาษาใช่ไหมครับ เราจะลองเปรียบเทียบดังนี้ครับ
คอมไพเลอร์ (Compiler) จะทำงานโดยแปลภาษาทั้งหมดให้เสร็จสิ้นแล้วจากนั้นค่อยดำเนินการทำงาน
อินเทอร์พรีเตอร์ (Interpreter) มีขั้นตอนการแปลภาษาครั้งละประโยค แล้วจึงทำงานจนเสร็จสิ้นประโยคนั้นจึงจะไปแปลประโยคถัดไป
กานดีมากครับ