วันพุธที่ 24 มิถุนายน พ.ศ. 2558

ภาษาซี (C)


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

ภาษาซี
ในเมื่อเป็นภาษาก็ย่อมต้องมีความแตกต่าง เหมือนที่เรามีภาษาอังกฤษ ภาษาญี่ปุ่น ภาษาไทย ภาษาจีน
คอมพิวเตอร์ก็มีภาษาระดับสูงแยกย่อยออกไปอีกเช่นกันโดยที่จะสามารถแยกย่อยออกไปอีกมากมาย ภาษาที่นิยมใช้กันโดยมากจะเป็น Python,Java,C++,C#,Ruby [*ที่มา http://www.i-programmer.info/news/98-languages/8277-most-popular-computer-languages-2015.html] โดยจะยกภาษาทั้งหมดมากล่าวถึงในบล็อกอันน้ิยนิดของผมคงจะยากไปหน่อยเพราะฉะนั้นผมขออณุญาติกล่าวถึงภาษาที่คุ้นหูคนทั่วไปอย่างภาษา C (ซี) ในการเขียนบล็อกครั้งนี้ครับ

โดยภาษาซีนั้นพัฒนาขึ้นโดยอเมริกันนักวิทยาศาสตร์คอมพิวเตอร์ที่ชื่อว่า Dennis MacAlistair Ritchie ในช่วงปีค.ศ. 1969-1973 ที่ AT&T Bell Laboratory โดยกลายมาเป็นรากฐานสำคัญของการพัฒนาคอมพ์พิวเตอร์ในปัจจุบัน

ภาษาซีนั้นยังถูกพัฒนาต่อเป็นภาษา C++ C# อีกด้วย
Image result for Dennis MAcAlistair Ritchie


การออกแบบของภาษาซี
ออกแบบมาเพื่อเข้าถึงภาษาระดับล่าง สามารถรองรับภาษายุคก่อนๆได้ และสามารถทำงานได้หลายแพลตฟอร์มอีกด้วย

ลักษณะพิเศษฟ
-มีชุดคำสัญอยู่จำนวนหนึ่งเช่น for , if/else , while , switch , do/while
-มันการใช้สัญลักษณ์และก็มีการผสมสัญลักษณ์อีกด้วย +,+=,+-,~ บลาๆ
-สามารถข้ามฟังก์ชั่นตัวเลขได้เวลาที่ไม่ใช้
-ใช้วงเล็บปีกกา{...}แทน Start.....end
-คำที่สงวนไว้มีน้อย
-ตัวเท่ากับสองตัว == ใช้แสดงความเท่ากัน
-ตัวแปรอาจถูกซ่อนในบล็อกซ้อนใน
-etc.

คุณลักษณะที่ขาดไป 
ขออนุญาตินำมาจาก* https://th.wikipedia.org/wiki/ภาษาซี
-ไม่มีการนิยามฟังก์ชันซ้อนใน
-ไม่มีการกำหนดค่าแถวลำดับหรือสายอักขระโดยตรง (การคัดลอกข้อมูลจะกระทำผ่านฟังก์ชันมาตรฐาน แต่ก็รองรับการกำหนดค่าวัตถุที่มีชนิดเป็น struct หรือ union)
-ไม่มีการเก็บข้อมูลขยะโดยอัตโนมัติไม่มีข้อกำหนดเพื่อการตรวจสอบขอบเขตของแถวลำดับไม่มีการดำเนินการสำหรับแถวลำดับทั้งชุดในระดับตัวภาษา
-ไม่มีวากยสัมพันธ์สำหรับช่วงค่า (range) เช่น A..B ที่ใช้ในบางภาษาก่อนถึงภาษาซี99
-ไม่มีการแบ่งแยกชนิดข้อมูลแบบบูล (ค่าศูนย์หรือไม่ศูนย์ถูกนำมาใช้แทน)
-ไม่มีส่วนปิดคลุมแบบรูปนัย (closure) หรือฟังก์ชันในรูปแบบพารามิเตอร์ (มีเพียงตัวชี้ของฟังก์ชันและตัวแปร)
-ไม่มีตัวสร้างและโครูทีน การควบคุมกระแสการทำงานภายในเทร็ดมีเพียงการเรียกใช้ฟังก์ชันซ้อนลงไป เว้นแต่การใช้ฟังก์ชัน longjmp หรือ setcontext จากไลบรารี
-ไม่มีการจัดกระทำสิ่งผิดปรกติ (exception handling) ฟังก์ชันไลบรารีมาตรฐานจะแสดงเงื่อนไขข้อผิดพลาดด้วยตัวแปรส่วนกลาง errno และ/หรือค่ากลับคืนพิเศษ และฟังก์ชันไลบรารีได้เตรียม goto แบบไม่ใช่เฉพาะที่ไว้ด้วย

การใช้งาน
โปรแกรมภาษาซีใช้ได้หลากหลายสุดๆ แต่โดยทั่วไปภาษาอื่นๆมักจะใช้ฐานข้อมูลจากภาษาซีแล้วค่อยแปลงเป็นภาษานั้นๆ และภาษาซียังมักจะใช้เป็นโปรแกรมในการคำนวนอีกด้วย


ที่มา : https://th.wikipedia.org/wiki/ภาษาซี
และ
https://en.wikipedia.org/wiki/C_(programming_language

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

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