วันอังคารที่ 9 มิถุนายน พ.ศ. 2558

[NMR.BD WORK] WEEK 4 : โปรแกรมภาษาคอมพิวเตอร์ (C/C++/C#/Java) ; C#

[NMR.BD WORK] 
WEEK 4 : โปรแกรมภาษาคอมพิวเตอร์ (C/C++/C#/Java) ; C#


* บล็อกนี้เป็นส่วนหนึ่งของวิชาเทคโนโลยีสารสนเทศ ง33103


สวัสดีค่ะ พบกับบล็อกเกอร์อีกเช่นเคย 
สำหรับวันนี้บล็อกเกอร์มีความรู้เรื่องภาษาคอมพิวเตอร์
ที่น่าสนใจภาษาหนึ่งมานำเสนอ นั่นก็คือภาษาซีชาร์ป (C#) นั่นเอง แต่ซีชาร์ปนี้ไม่ใช่คอร์ดกีต้าร์นะ !
แล้วเจ้าภาษานี้คืออะไร มีความเป็นมาอย่างไร มีไว้ทำอะไร เราไปชมพร้อมกันเลยค่ะ
------------------------------------
ประวัติภาษา C#

ภาษาC# เป็นภาษาโปรแกรมเชิงวัตถุทำงานบน .Netframework พัฒนาโดยบริษัทไมโครซอฟท์และ
มี Anders Hejlsberg เป็นหัวหน้าโครงการ โดยมีรากฐานมาจากภาษา C++ และภาษาอื่นๆ 
(โดยเฉพาะภาษาเดลไฟและจาวา) 

โดยปัจจุบันภาษาC# เป็นภาษามาตรฐานรองรับโดย ECMA และ ISO
ซึ่งในปัจจุบันได้พัฒนาและปรับรูปแบบของ ภาษา C# อยู่ตลอดเวลาโดยทาง Microsoft 
ได้นำภาษา C# ไปอยู่ในชุดพัฒนา software อย่าง visual studio ซึ่งทำให้เป็นที่นิยมเพิ่มมากขึ้น


ไมโครซอฟท์ส่งมาตรฐานภาษาC# ให้กับ ECMA และได้รับการยอมรับเป็นมาตรฐาน ECMA 
ในเดือนธันวาคม ค.ศ.2001 ในชื่อว่า ECMA-334 C# Language Specification


ในค.ศ.2003 ภาษาC# ได้รับการยอมรับเป็นมาตรฐาน ISO (ISO/IEC 23270) 
มาตรฐาน ISO/IEC 23270:2003 ระบุรูปแบบ และกำหนดการแปล (ตีความ) 
โปรแกรมที่เขียนด้วยภาษา C# 

โดยตัวมาตรฐานได้ระบุ 
- รูปแบบการนำเสนอ
- ไวยากรณ์
- กฎการตีความสำหรับแปลโปรแกรมภาษา C#
- ข้อห้าม และข้อจำกัด ของเครื่องมือที่สร้างตามข้อกำหนดของ C#



ISO/IEC 23270:2003 
ไม่ได้ระบุ
- กลไกในการแปลงโปรแกรมภาษา C# เพื่อใช้ในระบบประมวลผลข้อมูล
- กลไกในการเรียกให้โปรแกรมภาษา C# ทำงาน เพื่อใช้ในระบบประมวลผลข้อมูล
- กลไกในการแปลงข้อมูลเข้า เพื่อใช้กับโปรแกรมภาษา C#
- กลไกในการแปลงข้อมูลออก หลังจากถูกประมวลผลโดยโปรแกรมภาษา C#


นอกจากนี้ตัวมาตรฐานไม่ได้กล่าวถึง โครงสร้างข้อมูล(Data Structure) และตัว Library กลางของ .NET Framework ซึ่งเป็นหัวใจสำคัญของการเขียนโปรแกรมด้วยภาษา C# เลย

------------------------------------

ผู้สร้างภาษา C#

ผู้สร้างภาษา C# คือบริษัทไมโครซอฟท์ แต่บิดาของภาษา C# คือ Anders Hejlsberg 
(แอนเดรส ฮาเยสเบิร์ก) ไมโครซอฟท์ต้องการให้ภาษา C# เป็น อะไรที่จะอยู่ไปอีกนาน” 
เหมือนบริษัทรถยนต์โฟลค์ที่จ้าง Ferdinand Porsche (เฟอร์ดินันด์ พอร์ช) 
นักออกแบบรถยนต์มือดีมาออกแบบรถโฟลคเต่า
(เป็นเหตุการณ์ที่เกิดขึ้นก่อนสงครามโลกครั้งที่สอง) 
ทำให้มันกลายเป็นรถยนต์คลาสสิกมาจนถึงปัจจุบัน 

ในทำนองเดียวกันเมื่อต้องการภาษาที่ต้องการให้กลายเป็นภาษา คลาสสิก” 
บริษัทไมโครซอฟท์ตัดสินใจมอบหมายให้ Hejlsberg บรมครูนักออกแบบภาษา 
ผู้เคยสร้างภาษาที่กลายเป็นตำนานมาแล้วเช่น Turbo Pascal 
และผู้นำในทีมสร้างภาษา Delphi
ใครๆ ก็สร้างภาษาใหม่ได้ไม่ยาก แต่ภาษาที่ดีจริงๆ นั้นเป็นอีกเรื่องหนึ่ง 
สำหรับภาษา C#  Hejlsberg ไม่เพียงสร้างภาษาที่ใช้งานได้ดีเท่านั้น 
เขายังเน้น ความมีรสนิยมและ ความสง่างาม” 
เพราะต้องการให้โปรแกรมเมอร์เขียนโปรแกรมภาษา C# ได้อย่างมีความสุข

------------------------------------

จุดเด่นของC#

เป็นรูปแบบของภาษาที่ทำงานเป็นลำดับ(Sequential)และต้องผ่านการแปลงไฟล์ให้อยู่ในรูปแบบ
พร้อมใช้งานหรือ EXE file (ที่เรียกว่าการ Compile) เช่นเดียวกับภาษา
โดย C# เป็นภาษาที่ถูกผลักดันโดยบริษัทไมโครซอฟท์ให้ออกมายิ่งใหญ่
โดยมีจุดเด่นดังนี้

เขียนคล่อง C#มีเครื่องมือในการช่วยเขียนอย่าง Visual Studio ที่มีฟีเจอร์ในการไฮไลท์โค้ด
และส่วนช่วยในการเขียนโปรแกรมที่สะดวกมาก

เขียนง่ายจุดเด่นของตัวแปรและอ๊อบเจ็กต์บน C# เด่นชัดในเรื่องของการจัดการ
คุณสมบัติ (Properties) และการตั้งค่าเริ่มต้นที่ช่วยให้สามารถพัฒนาระบบได้สะดวกรวดเร็วขึ้น 

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

เป็นอ็อบเจ็กต์ เนื่องจากภาษา C# นั้นมีแม่แบบมาจากภาษา Java
ซึ่งจุดเด่นคือการทำทุกสิ่งให้เป็นวัตถุ (Object) ทำให้สามารถเขียนและพัฒนาได้ง่าย

ประสิทธิภาพสูง C# เป็นภาษาที่พัฒนาขึ้นมาภายใต้ .NET Framework
ซึ่งสามารถดึงเอาความสามารถของเทคโนโลยีบน .NET ออกมาใช้ได้อย่างเต็มประสิทธิภาพ

สามารถทำงานระดับลึก ภาษา C# สามารถทำงานกับหน่วยความจำรวมถึงระบบคอมพิวเตอร์ใน
ระดับลึก โดยผ่าน พอยเตอร์ (Pointer) หรือทำงานกับโปรโตคอล TCP/IPที่ต่ำกว่าระดับ4ได้

เน้นที่ XML C# ออกแบบมาเพื่อใช้งานร่วมกับXMLได้อย่างราบรื่นที่สุดด้วยความช่วยเหลือของ .NETFramework

คุณสมบัติGeneric type ช่วยยืดหยุ่นในการประกาศตัวแปล

เทคโนโลยี LINQ ช่วยในการทำงานกับฐานข้อมูลได้อย่างมีประสิทธิภาพ
 ------------------------------------
เป้าหมายการใช้งาน

ภาษา C# เป็นภาษาที่มีต้นกำเนิดมาจากภาษา C เช่นเดียวกับ C++ 
และถูกพัฒนาขึ้นโดยเป็นส่วนหนึ่งในการพัฒนาโครงสร้างพื้นฐานของ .NET Framework 
ซึ่งเป็นการนำข้อดีของภาษาต่างๆ เช่น Delphi , C++ มาปรับปรุง
เพื่อให้มีความเป็น OOP อย่างถึงที่สุด ขณะเดียวกันก็พัฒนาให้มีความเรียบง่ายกว่าภาษา C++
นอกจากนี้ ภาษาC# ใช้การเขียนโปรแกรมที่ซับซ้อน 
เช่น โปรแกรมควบคุมฮาร์ดแวร์ และโปรแกรมเกมสามมิติ เพราะ .NET 
จะมีภาษาให้เลือกใช้หลายสิบภาษา แต่ภาษา C# เป็นพื้นเมืองของ .NET 
เมื่อค้นใน web จะพบข้อมูลและตัวอย่างโค้ดเป็นภาษา C# มากกว่าภาษาอื่น 

โครงสร้างโปรแกรมภาษา C#

โครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐานจะประกอบด้วยส่วนของโปรแกรมหลักแต่จะไม่มีส่วนของโปรแกรมย่อย (subroutine) โดยแสดงดังรูปที่ 1
รูปที่ 1 โครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน

จากรูปที่ 1 แสดงโครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน โดยมีรายละเอียดดังนี้
1. หมายเลข (1) เป็นการระบุชื่อของ namespace ซึ่งใช้ในการกำหนดขอบเขตให้กับคลาสต่างๆรวมถึงใช้ในการจัดโครงสร้างของโปรแกรมขนาดใหญ่ให้เป็นสัดส่วนอีกด้วย โดยเฉพาะอย่างยิ่งในการเขียนโปรแกรมคอมพิวเตอร์ที่ซับซ้อนโดยมีผู้เขียนโปรแกรมหลายคน นอกจากนี้ การกำหนด namespace ยังช่วยป้องกันปัญหาการตั้งชื่อคลาสหรือค่าคงที่อื่นๆ ซ้ากันได้
2. หมายเลข (2) เป็นการระบุชื่อของ class
3. หมายเลข (3) เป็นการะบุพื้นที่สาหรับคำสั่งต่างๆ ที่ผู้เขียนโปรแกรมต้องการให้คอมพิวเตอร์ปฏิบัติตาม

            นอกจากนี้ ในบางกรณี ผู้เขียนโปรแกรมสามารถที่จะไม่เขียนในส่วนของ namespace ได้ ถ้าโปรแกรมคอมพิวเตอร์นั้นมีขนาดเล็ก และ ไม่ซับซ้อนมากนัก ซึ่งการที่ไม่เขียนในส่วนของ namespace จะถือว่า class ที่ถูกสร้างขึ้นมาอยู่ใน namespace กลาง โดยแสดงดังรูปที่ 2

รูปที่ 2 โครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน กรณีไม่เขียนในส่วนของ namespace

ตัวอย่าง โครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน ซึ่งจะแสดงข้อความ Hello C# ออกทางจอภาพ 
และจากนั้นรอจนกว่าผู้ใช้งานจะกด Enter แล้วจบการทำงาน
กรณีที่ 1 เขียนในส่วนของ namespace โดยแสดงดังรูปที่ 3
รูปที่ 3 ตัวอย่างโครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน กรณีเขียนในส่วนของ namespace

กรณีที่ 2 ไม่เขียนในส่วนของ namespace โดยแสดงดังรูปที่ 4

รูปที่ 4 ตัวอย่างโครงสร้างโปรแกรมภาษา C# ขั้นพื้นฐาน กรณีไม่เขียนในส่วนของ namespace
 ------------------------------------
How to C#

 ------------------------------------
สำหรับวันนี้ ทุกท่านคงได้รับความรู้ไปไม่มากก็น้อย 
บล็อกเกอร์ขอตัวลาไปก่อน เอนทรี่หน้าจะเป็นเรื่องอะไรนั้น
ฝากติดตามกันต่อไปด้วยนะคะ

เครดิตเนื้อหา ขอบคุณค่ะ
https://sites.google.com/site/programmingm42/phasa-c
http://tonkung.ueuo.com/history.html









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

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