ประวัติ ความเป็นมา ภาษา C, C#, C++
ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL
ซึ่ง ในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้
ต่อ มาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute) สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C"
ภาษา ซีนั้นจัดเป็นภาษาที่ใช้ในการเขียน โปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทำงาน กับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิมครับ
จาก C สู่ C++
ถูก พัฒนาโดย Bjarne Stroustrup แห่ง Bell Labs โดยได้นำเอาภาษา C มาพัฒนาและใส่แนวคิดการเขียนโปรแกรมเชิงวัตถุ หรือ OOP (Object Oriented Programming) เข้าไปด้วย ซึ่งเป็นที่มาของ C++ ก็คือ นำภาษา C มาพัฒนาปรับปรุงให้มีประสิทธิภาพมากขึ้น
ลักษณะโปรแกรมแบบโครงสร้าง
การ เขียนโปรแกรมแบบโครงสร้าง (Structured Programming) ก็คือ การนำโครงสร้างของคำสั่งหลายๆ รูปแบบ นำมาใช้ในโปรแกรม โดยจะมีการใช้คำสั่้งลักษณะ goto ให้น้อยที่สุด ตัวอย่างการเขียนโปรแกรมแบบโครงสร้าง ก็มี ภาษา C, Pascal และ Cobol เป็นต้น
ภาษา ซี (C programming language)
เป็น ภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพัฒนาขึ้นในช่วงทศวรรษ 1970 โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่ เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงาน เนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพัฒนาระบบปฏิบัติการ,ซอฟต์แวร์ ระบบ , ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิวเตอร์
ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL
ซึ่ง ในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้
ต่อ มาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute) สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C"
ภาษา ซีนั้นจัดเป็นภาษาที่ใช้ในการเขียน โปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทำงาน กับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิมครับ
จาก C สู่ C++
ถูก พัฒนาโดย Bjarne Stroustrup แห่ง Bell Labs โดยได้นำเอาภาษา C มาพัฒนาและใส่แนวคิดการเขียนโปรแกรมเชิงวัตถุ หรือ OOP (Object Oriented Programming) เข้าไปด้วย ซึ่งเป็นที่มาของ C++ ก็คือ นำภาษา C มาพัฒนาปรับปรุงให้มีประสิทธิภาพมากขึ้น
ลักษณะโปรแกรมแบบโครงสร้าง
การ เขียนโปรแกรมแบบโครงสร้าง (Structured Programming) ก็คือ การนำโครงสร้างของคำสั่งหลายๆ รูปแบบ นำมาใช้ในโปรแกรม โดยจะมีการใช้คำสั่้งลักษณะ goto ให้น้อยที่สุด ตัวอย่างการเขียนโปรแกรมแบบโครงสร้าง ก็มี ภาษา C, Pascal และ Cobol เป็นต้น
ภาษา ซี (C programming language)
เป็น ภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพัฒนาขึ้นในช่วงทศวรรษ 1970 โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่ เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงาน เนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพัฒนาระบบปฏิบัติการ,ซอฟต์แวร์ ระบบ , ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิวเตอร์
ประวัติ ความเป็นมา ภาษา C++
ภาษา ซีพลัสพลัส (C++ programming language) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรมแบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ ช่วงทศวรรษ 1990
Bjarne
Stroustrup จากห้องวิจัยเบลล์ (Bell Labs) เป็นผู้พัฒนาภาษา C++ ขึ้น
(เดิมใช้ชื่อ "C with classes") ในปีค.ศ. 1983 เพื่อพัฒนาภาษาซีดั้งเดิม
สิ่งที่พัฒนาขึ้นเพิ่มเติมนั้นเริ่มจากการเพิ่มเติมการสร้างคลาสจากนั้นก็
เพิ่มคุณสมบัติต่างๆ ตามมา ได้แก่ เวอร์ชวลฟังก์ชัน
การโอเวอร์โหลดโอเปอเรเตอร์ การสืบทอดหลายสาย เท็มเพลต
และการจัดการเอ็กเซ็พชัน มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปีค.ศ.
1998 เป็นมาตรฐาน ISO/IEC 14882:1998 เวอร์ชันล่าสุดคือเวอร์ชันในปีค.ศ.
2003 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2003
ในปัจจุบันมาตรฐานของภาษาในเวอร์ชันใหม่ (รู้จักกันในชื่อ C++0x)
กำลังอยู่ในขั้นพัฒนา
ขั้นตอนการพัฒนาโปรแกรมภาษาซี
ขั้นตอนที่ 1 เขียนโปรแกรม (source code)
ใช้ editor เขียนโปรแกรมภาษาซีและทำการบันทึกไฟล์ต้นฉบับให้มีนามสกุลเป็น .C จากนั้นให้คอมไพล์โปรแกรมก็จะได้ไฟล์ออบเจ็กต์โค้ดที่มีนามสกุลเป็น .OBJ เมื่อทำการเชื่อมโยงไฟล์เข้ากับไลบรารีคำสั่งด้วย Link ก็จะได้ไฟล์ที่มีนามสกุลเป็น .EXE ที่พร้อมทำงานได้บนเครื่องคอมพิวเตอร์
editor คือ โปรแกรมที่ใช้สำหรับการเขียนโปรแกรม โดยตัวอย่างของ editor ที่นิยมนำมาใช้ในการเขียนโปรแกรมได้แก่ Notepad, Edit ของ Dos ,Text Pad และ Edit Plus เป็นต้น ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดในการเรียนโปรแกรมก็ได้ แล้วแต่ความถนัดของแต่ละบุคคล
ขั้นตอนที่ 2 คอมไพล์โปรแกรม (compile)
นำ source code จากขั้นตอนที่ 1 มาทำการคอมไพล์ เพื่อแปลจากภาษาซีที่มนุษย์เข้าใจไปเป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจได้ ในขั้นตอนนี้คอมไพเลอร์จะทำการตรวจสอบ source code ว่าเกิดข้อผิดพลาดหรือไม่
• หากเกิดข้อผิดพลาด จะแจ้งให้ผู้เขียนโปรแกรมทราบ ผู้เขียนโปรแกรมจะต้องกลับไปแก้ไขโปรแกรม และทำการคอมไพล์โปรแกรมใหม่อีกครั้ง
• หากไม่พบข้อผิดพลาด คอมไพเลอร์จะแปลไฟล์ source code จากภาษาซีไปเป็นภาษาเครื่อง ( ไฟล์นามสกุล .obj) เช่นถ้าไฟล์ source code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์ work.obj ซึ่งเก็บภาษาเครื่องไว้เป็นต้น
compile เป็นตัวแปลภาษารูปแบบหนึ่ง มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็นภาษาเครื่อง โดยคอมไพเลอร์ของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอร์ใช้ เรียกว่า คอมไพล์ (compile) โดยจะทำการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ แล้วทำการ แปลผลทีเดียว
นอก จากคอมไพเลอร์แล้ว ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกว่า อินเตอร์พรีเตอร์ การอ่านและ แปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทำงานตามคำสั่งในบรรทัดนั้น แล้วจึงทำการแปลผลตามคำสั่งในบรรทัดถัดไปโดยหลักการที่อินเตอร์พรีเตอร์ใช้ เรียกว่า อินเตอร์เพรต (interpret )
ใช้ editor เขียนโปรแกรมภาษาซีและทำการบันทึกไฟล์ต้นฉบับให้มีนามสกุลเป็น .C จากนั้นให้คอมไพล์โปรแกรมก็จะได้ไฟล์ออบเจ็กต์โค้ดที่มีนามสกุลเป็น .OBJ เมื่อทำการเชื่อมโยงไฟล์เข้ากับไลบรารีคำสั่งด้วย Link ก็จะได้ไฟล์ที่มีนามสกุลเป็น .EXE ที่พร้อมทำงานได้บนเครื่องคอมพิวเตอร์
editor คือ โปรแกรมที่ใช้สำหรับการเขียนโปรแกรม โดยตัวอย่างของ editor ที่นิยมนำมาใช้ในการเขียนโปรแกรมได้แก่ Notepad, Edit ของ Dos ,Text Pad และ Edit Plus เป็นต้น ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดในการเรียนโปรแกรมก็ได้ แล้วแต่ความถนัดของแต่ละบุคคล
ขั้นตอนที่ 2 คอมไพล์โปรแกรม (compile)
นำ source code จากขั้นตอนที่ 1 มาทำการคอมไพล์ เพื่อแปลจากภาษาซีที่มนุษย์เข้าใจไปเป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจได้ ในขั้นตอนนี้คอมไพเลอร์จะทำการตรวจสอบ source code ว่าเกิดข้อผิดพลาดหรือไม่
• หากเกิดข้อผิดพลาด จะแจ้งให้ผู้เขียนโปรแกรมทราบ ผู้เขียนโปรแกรมจะต้องกลับไปแก้ไขโปรแกรม และทำการคอมไพล์โปรแกรมใหม่อีกครั้ง
• หากไม่พบข้อผิดพลาด คอมไพเลอร์จะแปลไฟล์ source code จากภาษาซีไปเป็นภาษาเครื่อง ( ไฟล์นามสกุล .obj) เช่นถ้าไฟล์ source code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์ work.obj ซึ่งเก็บภาษาเครื่องไว้เป็นต้น
compile เป็นตัวแปลภาษารูปแบบหนึ่ง มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็นภาษาเครื่อง โดยคอมไพเลอร์ของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอร์ใช้ เรียกว่า คอมไพล์ (compile) โดยจะทำการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ แล้วทำการ แปลผลทีเดียว
นอก จากคอมไพเลอร์แล้ว ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกว่า อินเตอร์พรีเตอร์ การอ่านและ แปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทำงานตามคำสั่งในบรรทัดนั้น แล้วจึงทำการแปลผลตามคำสั่งในบรรทัดถัดไปโดยหลักการที่อินเตอร์พรีเตอร์ใช้ เรียกว่า อินเตอร์เพรต (interpret )
ข้อดีและข้อเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้
ข้อดี |
ข้อเสีย
| |
คอมไพเลอร์
|
• ทำงานได้เร็ว เนื่องจากทำการแปลผลทีเดียว แล้วจึงทำงานตามคำสั่งของโปรแกรมในภายหลัง
• เมื่อ
ทำการแปลผลแล้ว ในครั้งต่อไปไม่จำเป็นต้องทำการแปลผลใหม่อีก
เนื่องจากภาษาเครื่องที่แปลได้จะถูกเก็บไว้ที่หน่วยความจำ
สามารถเรียกใช้งานได้ทันที
|
• เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะตรวจสอบหาข้อผิดพลาดได้ยาก เพราะทำการแปลผลทีเดียวทั้งโปรแกรม
|
อินเตอร์พรีเตอร์
|
• หาข้อผิดพลาดของโปรแกรมได้ง่าย เนื่องจากทำการแปลผลทีละบรรทัด
• เนื่องจากทำงานทีละบรรทัดดังนั้นจึงสั่งให้โปรแกรมทำงานตามคำสั่งเฉพาะจุดที่ต้องการได้
• ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน
|
• ช้า เนื่องจากที่ทำงานทีละบรรทัด
|
ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link)
การ เขียนโปรแกรมภาษาซีนั้นผู้เขียนโปรแกรมไม่จำเป็นต้องเขียนคำสั่งต่าง ๆ ขึ้นใช้งานเอง เนื่องจากภาษาซีมีฟังก์ชั่นมาตรฐานให้ผู้เขียนโปรแกรมสามารถเรียกใช้งานได้ เช่น การเขียนโปรแกรมแสดงข้อความ “Lampangkanlayanee” ออกทางหน้าจอ ผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชั่น printf() ซึ่งเป็นฟังก์ชั่นมาตรฐานของภาษาซีมาใช้งานได้ โดยส่วนการประกาศ (declaration) ของฟังก์ชั่นมาตรฐานต่าง ๆ จะถูกจัดเก็บอยู่ในเฮดเดอร์ไฟล์แต่ละตัว แตกต่างกันไปตามลักษณะการใช้งาน
ด้วย เหตุนี้ภาษาเครื่องที่ได้จากขั้นตอนที่ 2 จึงยังไม่สามารถนำไปใช้งานได้ แต่ต้องนำมาเชื่อมโยงเข้ากับ library ก่อน ซึ่งผลจากการเชื่อมโยงจะทำให้ได้ executable program ( ไฟล์นามสกุล .exe เช่น work.exe) ที่สามารถนำไปใช้งานได้
ขั้นตอนที่ 4 ประมวลผล (run)
เมื่อนำ executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะได้ผลลัพธ์ (output) ของโปรแกรมออกมา