วันจันทร์ที่ 4 มิถุนายน พ.ศ. 2555

Java and C# for MiniCompiler part 1

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

ผมจะใช้วีดีโอ youtube ของคุณ Narinthone สำหรับการเรียนรู้ภาษาจาวา จากนั้นจึงเพิ่มภาษาซีชาร์ปเข้าไปในตอนท้ายครับ เอาล่ะมาเริ่มกันเลย


โดยสรุปแล้วเขาพูดถึงเรื่อง
- การโหลดและติดตั้ง Eclipse เพื่อใช้เป็นเครื่องมือสำหรับเขียนและแปลผลภาษาจาวา
- การสร้าง Package สำหรับระบุคลาสไว้ภายใน (ถาม : ไม่สร้าง Package ได้ไหม ?)
- คลาส HelloWorld กับการทักทายว่า "Hello World!"

ทีนี้มาติดตั้งเครื่องมือที่จะใช้เขียนและแปลภาษาซีชาร์ปกันบ้าง ปุ่มด้านล่างจะลิงค์ไปที่ Microsoft Visual Studio 2010 Express for C# ให้เพื่อนๆโหลดและติดตั้งไว้ในเครื่อง หากมีอยู่แล้วก็ให้ข้ามขั้นตอนเหล่านี้ไปได้เลยครับ


- เปิด Microsoft Visual Studio 2010 Express ขึ้นมา
- โดยเลือกไปที่ File >> New >> Project

- ในช่อง Installed Templates เลือก Visual C# >> Console Application

- ในส่วนล่างตั้งชื่อโปรเจ็กต์ว่า HelloWorldProject
- ในที่นี้ผมบันทึกไว้ ณ S:/ (แล้วแต่เพื่อนๆว่าจะเก็บไว้ที่ไหน)
- ตั้งชื่อ Solution ด้วย ในที่นี้ผมตั้งชื่อว่า HelloWorldProject_Solution (ตั้งชื่อ Solution เพื่ออะไร ?)
- ดูเครื่องหมายเช็คถูกในช่อง Create directory for solution ด้วยนะครับ (เช็คทำไม ?) แล้วกดปุ่ม OK

เราจะเห็นสภาพแวดล้อมที่ Microsoft Visual Studio จัดรูปแบบไว้ให้ ตอนนี้ให้สนใจไฟล์ที่ชื่อ Program.cs ซึ่งอยู่ในหน้าต่าง Solution Explorer ด้านขวาสุด (ไหน ? ไม่เห็นมีเลย)

- จากภาพ ณ บรรทัดที่ 12 (หาหมายเลขบรรทัดได้อย่างไร ?) เพิ่มโค้ดเข้าไปว่า
Console.WriteLine("Hello World!");


- สุดท้ายทดสอบ run โปรแกรม ด้วยการเลือกที่เมนูชื่อ Debug >> Start Without Debugging

ผลการ run


อธิบายเปรียบเทียบโค้ด

เพื่อนๆจะเห็นว่าโค้ดของจาวาและซีชาร์ปไม่ต่างกันมากนัก อาจมีข้อสงสัยเพียงเล็กน้อยเกี่ยวกับแนวคิดและไวยากรณ์ (syntax) ของแต่ละภาษา ตัวอย่างเช่น

จาวาซีชาร์ป
public class HelloWorldclass Program

ให้พิจารณาโดยการตัด public ของภาษาจาวาออกไปก่อน ก็จะได้โค้ดลักษณะคล้ายกันมากขึ้น

จาวาซีชาร์ป
class HelloWorldclass Program

บางคนอาจสงสัยมากกว่าเดิมว่า เอ๋ แล้วแบบนี้ภาษาจาวาจะสามารถทำงาน (ต่อไปจะใช้คำว่า 'run' แทนคำว่า 'ทำงาน' นะครับ) ได้เป็นปกติหรือไม่ คำตอบก็คือได้เป็นปกติ อ่าวแล้วแบบนี้คำว่า 'public' มันใส่ไว้ทำไมกันล่ะ ? ตอบตรงนี้อย่างง่ายก่อนเลยว่า ภาษาจาวาใส่คำว่า 'public' เพื่อให้คลาสนั้นถูกนำไปใช้อย่างทั่วไป ทั่วไปยังไง ? ก็เปรียบดังว่าเราเป็นพ่อค้าแม่ค้าอยากขายของ ของของเราก็คือแตงโมผลหย่าย (ใหญ่) ทำไงให้ได้ขาย ก็เอาแตงโมไปวางไว้ในชั้นวางสินค้า หรือไม่ก็ปลอกเปลือกมันออกแล้วแบ่งขายเป็นซีก ใครก็สามารถซื้อแตงโมเราได้ ซื้อกี่ลูกก็ได้ ขายแหลก พฤติกรรมที่ต้องการให้ใครก็ได้มาซื้อไปแบบนี้คือ 'public' นั่นเอง (ไว้จะอธิบายอย่างเป็นรูปธรรมกึ่งทางการต่อไป)

เย้ย! แล้วไมภาษาซีชาร์ปไม่ใส่ 'public' ล่ะ ไม่ต้องการให้นำไปใช้อย่างทั่วไปหรอกเหรอ หากเพื่อนๆเข้าใจแบบนี้แสดงว่ามาถูกทางแล้ว ใช่ครับ! คุณ Microsoft ต้องการสื่ออะไรบางอย่างกับพวกเราแน่นอน มีอะไรบ้างของ Microsoft ที่ฟรีจริงๆ ตอบเลย ไม่มีหรอก! ดังนั้นแนวคิดแบบนี้จึงตกทอดมายังภาษาซีชาร์ปด้วย (แหม กล่าวแบบนี้ก็ใจร้ายกับ Microsoft มากไปนะ)

เอาล่ะคิดมากไปใยในเมื่อภาษาซีชาร์ปเป็น class เฉยๆแต่แรกเริ่ม เราก็ยังสามารถบันดาลให้เขาเป็น public class ได้เฉกภาษาจาวา ด้วยการเติ่มคำว่า 'public' ไว้หน้าคำว่า 'class' ดังโค้ดด้านล่าง แล้วลอง run ดูสิครับ ผลก็เหมือนเดิมใช่ปะล่ะ
public class Program

ขอข้ามส่วนอื่นๆของโค้ดไปก่อน กระทั่งตรงนี้ครับ

จาวาซีชาร์ป
System.out.println("Hello World!");Console.WriteLine("Hello World!");

คำสั่ง println และ WriteLine ต่างก็ใช้สำหรับแสดงผลออกทางจอภาพนั่นเอง ส่วนจะเรียกมันได้อย่างไร หากเป็นภาษาจาวาต้องอ้างออบเจ็กต์ out จากคลาส System เสียก่อน ต่างจากภาษาซีชาร์ปที่สามารถเรียกจากคลาส Console ได้เลย (ง่ายกว่าปะล่ะ) จดจำการแสดงผลตรงนี้ไว้เพราะเราใช้บ่อยมาก ไว้เจอกัน part ต่อไปครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น