วิวัฒนาการของภาษามีมาตั้งแต่โบราณ เริ่มตั้ังแต่ รูปภาพ มาเป็น อักษรลิ่ม และพัฒนาเรื่อยมาจนกลายมาเป็นภาษาที่มนุษย์เราใช้อยู่ในปัจจุบัน แตเราไม่ได้มาเล่าถึงประวัติของภาษาของมนุษย์ เราแค่จะดึงคุณเข้าสู่เรื่องราวประวัติของภาษาคอมพิวเตอร์ (ภาษา C/C++) มาดูกันว่ามีที่มาอย่างไร และ วิธีการเขียนภาษา C อย่างคร่าวๆ
Dr. Bjarne Stroustrup
ภาษา C++ พัฒนาขึ้นโดย Dr. Bjarne Stroustrup ซึ่งเป็นนักวิจัยอยู่ที่ห้องปฏิบัติการ Bell Labs ประเทศสหรัฐอเมริกาในระหว่างปี
พ.ศ. 2525-2528 ภาษา C++ เกิดจากแนวคิดในการเพิ่มประสิทธิ ภาพภาษา C ก่อนปี พ.ศ. 2526
Dr. Bjarne Stroustrup ได้เพิ่มคุณสมบัติให้กับภาษา C ซึ่งเขาเรียกภาษา
C ที่ปรับปรุงใหม่ว่า “C with classes” นอกจากนี้เขายังได้รวมเอาแนวคิดเกี่ยวกับ
classes ในภาษา Simula กับคุณสมบัติเชิงวัตถุผสมผสานกับจุดแข็งของภาษา C
เป็นภาษา
C++ ชื่อ C++ ใช้ครั้งแรกเมื่อปี พ.ศ. 2526
Dr. Bjarne Stroustrup ได้ศึกษาและวิจัยระดับปริญญาเอกที่ห้องปฏิบัติการ Computing Laboratory ที่มหาวิทยาลัย Cambridge ประเทศอังกฤษ ก่อนที่จะมาร่วมกับห้องปฏิบัติการ Bell Labs ในเวลานี้ห้องปฏิบัติการ Bell Labs ไม่ได้ใช้ชื่อนี้อีกต่อไปแล้ว เพราะส่วนหนึ่งของห้องปฏิบัติการได้เปลี่ยนไปเป็น AT&T Labs และอีกส่วนหนึ่งก็เปลี่ยนไปเป็นห้องปฏิบัติการ Lucent Bell Labs
ก่อนที่จะมีภาษา C++ ภาษา C เป็นภาษาคอมพิวเตอ ร์ ที่พัฒนาขึ้นจากห้องปฏิบัติการ Bell Labs ในช่วงปี พ.ศ. 2512-2516 ในช่วงเดียวกันนั้น ระบบปฏิบัติการ UNIX ก็ถูกพัฒนาขึ้นที่ห้องปฏิบัติการ Bell Labs ภาษา C เริ่มแรกพัฒนาขึ้นมาเพื่อทำงานกับระบบปฏิบัติการ UNIX บนเครื่องคอมพิวเตอร์ขนาดเล็กชื่อ PDP-11 โดยนักวิจัยของห้องปฏิบัติการ Bell Labs ชื่อ Dennis Ritchie ในตอนเริ่มต้น เขาได้ขยายความสามารถของภาษา B โดยการเพิ่ม “TYPE” เข้าไปในปี พ.ศ. 2514 และเรียกภาษาที่ปรับปรุงใหม่นี้ว่าภาษา NB (ย่อมาจาก New B) ที่เขาได้แนวคิดอย่างนี้ขึ้นมาเพราะ Dennis Ritchie ได้แรงบันดาลใจมาจากภาษา Algol68 เขาได้ปรับโครงสร้างภาษาและเขียนคอมไพเลอร์ใหม่และตั้งชื่อภาษาใหม่ของเขาว่าภาษา “C” ในปี พ.ศ. 2515 90% ของระบบปฏิบัติการ UNIX เขียนด้วยภาษา C
หลังจากกำเนิดภาษา C คนในวงการคอมพิวเตอร์ต่างก็ตื่นตัวและประทับใจในความสามารถของภาษา C กันมาก ทำให้เกิดการพัฒนาและปรับปรุงภาษา C ออกมาหลายต่อหลายเวอร์ชั่น องค์กร ANSI จึงได้จัดตั้งคณะกรรมการเพื่อกำหนดมาตรฐานภาษา C ขึ้นในปี พ.ศ. 2532 เพื่อทำการกำหนดมาตรฐานสำหรับภาษา C โดยเฉพาะ จนใช้กันถึงปัจจุบันนี้
ภาษา C เป็นภาษาที่ portable คือไม่ขึ้นอยู่กับฮาร์ดแวร์หรือระบบปฏิบัติการใดโดยเฉพาะ เป็นภาษาที่ผสมผสานส่วนสำคัญที่จำเป็นจากภาษาระดับสูง (high-level languages) กับฟังก์ชั่นระดับ low-level ของภาษาแอสเซมบลี (assembly language) จนบางครั้งมีคนจัดภาษา C ว่าเป็นภาษาคอมพิวเตอร์ในระดับ middle-level โปรแกรมที่เขียนด้วยภาษา C สามารถปรับการใช้จากคอมพิวเตอร์เครื่องหนึ่งไปใช้กับอีกเครื่องหนึ่งได้โดยง่าย
กล่าวโดยสรุป ภาษา C เป็นภาษาที่พัฒนาต่อเนื่องมาจากภาษา B ซึ่งพัฒนาโดย Ken Thompson เมื่อปี พ. ศ. 2513 เพื่อใช้กับระบบปฏิบัติการใหม่ตอนนั้นคือ UNIX ภาษา B ก็ได้รับการพัฒนาต่อมาจากภาษา BCPL ที่ออกแบบพัฒนาโดย Martin Richards ซึ่งเป็นนักศึกษาของมหาวิทยาลัย Cambridge ประเทศอังกฤษ เมื่อตอนไปเป็นนักศึกษาแลกเปลี่ยน (Exchange Student) ที่สถาบันเทคโนโลยีแห่งรัฐแมสซาจูเซท (MIT) ประเทศสหรัฐอเมริกา
คงพอจะมองเห็นใช่ไหมครับว่าสิ่งที่เราได้ใช้กันอย่างสะดวกสบาย และง่ายดายอยู่ในปัจจุบันนี้นั้น มันมีวิวัฒนาการอันยุ่งยากและต้องใช้ความพยายาม ความร่วมมือ และแรงบันดาลใจมากมายเพียงใด นอกจากนี้ยังต้องใช้เงินทุนและเวลาในการวิจัยและการทดลองอย่างมากมาย ด้วยเหตุนี้แหละที่ทำไมผู้ผลิตซอฟท์แวร์ทั้งหลายจึงต้องการให้มีการเคารพลิขสิทธิ์ซอฟท์แวร์ พูดตรงๆคือเขาไม่ต้องการให้มีการคัดลอกซอฟท์แวร์มาใช้นั่นเอง
ภาษา C++ ถูกออกแบบมาสำหรับการทำงานภายใต้สิ่งแวดล้อมระบบปฏิบัติการ
UNIX ด้วยภาษา C++ ผู้เขียนโปรแกรมสามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพมากขึ้น
นอกจากนี้การเขียนโปรแกรมเพื่อให้สามารถนำกลับมาใช้ได้ใหม่ (reusability) ก็สามารถทำได้ง่ายขึ้น
การเขียนภาษา C เบื้องต้น
ข้อดีของภาษา C
1.ภาษา C ใช้ได้ในไมโครคอมพิวเตอร์ ตั้งแต่ขนาด 8 บิต 16
บิต
32 บิต มินิคอมพิวเตอร์ หรือ คอมพิวเตอร์ระดับเมนเฟรม
มีการพัฒนาการใช้งาน เพื่อให้เป็นมาตรฐาน ไม่ขึ้นกับโปรแกรมจัดระบบงาน หรือ
อุปกรณ์ทางอิเล็กทรอนิกส์ (ฮาร์ดแวร์)
2.ภาษา C มีหลายรุ่น มีผู้ผลิตต่างบริษัท แต่มีโครงสร้างคล้ายกัน และสามารถใช้ร่วมกันได้
3.ภาษา C มีความอ่อนตัว สามารถเจาะลงระดับลึกให้เข้ากับฮาร์ดแวร์ ทำงานได้รวดเร็ว และที่สำคัญ ภาษา C เป็นคอมไพเลอร์
4.ภาษา C เป็นภาษาที่มีโครงสร้าง
ระดับภาษาของโปรแกรม
ภาษาระดับต่ำ เป็นภาษาที่มีความเร็วในการทำงาน แต่มีความยุ่งยากในการเขียน และ พัฒนาโปรแกรม
ภาษาระดับสูง มีความล่าช้าในการใช้งาน แต่เขียนโปรแกรมง่าย
ภาษา C มีโครงสร้างเป็นภาษาระดับสูง และสามารถทำงานได้เร็วในเวลาใช้งาน
โครงสร้างภาษา C
2.ภาษา C มีหลายรุ่น มีผู้ผลิตต่างบริษัท แต่มีโครงสร้างคล้ายกัน และสามารถใช้ร่วมกันได้
3.ภาษา C มีความอ่อนตัว สามารถเจาะลงระดับลึกให้เข้ากับฮาร์ดแวร์ ทำงานได้รวดเร็ว และที่สำคัญ ภาษา C เป็นคอมไพเลอร์
4.ภาษา C เป็นภาษาที่มีโครงสร้าง
ระดับภาษาของโปรแกรม
ภาษาระดับต่ำ เป็นภาษาที่มีความเร็วในการทำงาน แต่มีความยุ่งยากในการเขียน และ พัฒนาโปรแกรม
ภาษาระดับสูง มีความล่าช้าในการใช้งาน แต่เขียนโปรแกรมง่าย
ภาษา C มีโครงสร้างเป็นภาษาระดับสูง และสามารถทำงานได้เร็วในเวลาใช้งาน
โครงสร้างภาษา C
#header
main ( )
{
- กำหนดตัวแปร
- กำหนดค่าตัวแปร
- ฟังก์ชัน ในรูปสเตตเมนท์
- การควบคุม
- คอมเมนท์
}
function a( )
{
main ( )
{
- กำหนดตัวแปร
- กำหนดค่าตัวแปร
- ฟังก์ชัน ในรูปสเตตเมนท์
- การควบคุม
- คอมเมนท์
}
function a( )
{
....( มีส่วนประกอบเช่นเดียวกับ ฟังก์ชั่น main )
}
function b( )
.
.
.
}
function b( )
.
.
.
เริ่มต้นใช้ C
1.เขียนโปรแกรมบนอิดิเตอร์ ใด ๆ หรือ อิดิเตอร์ของภาษา C แล้วบันทึกข้อมูลให้มีนามสกุลเป็น .C
2.การคอมไพล์ จะได้ ข้อมูลนามสกุล OBJ ออปเจ็ค
3.การติดต่อกับไลบรารี จะได้ขัอมูลนามสกุล EXE เรียกว่า การเอ็กซีคิวต์
การเขียนโปรแกรมภาษา C แต่ละครั้ง จะใช้วิธีการ รัน (RUN) เพียงครั้งเดียว ก็จะได้ ข้อมูลนามสกุล OBJ และ EXE
1.เขียนโปรแกรมบนอิดิเตอร์ ใด ๆ หรือ อิดิเตอร์ของภาษา C แล้วบันทึกข้อมูลให้มีนามสกุลเป็น .C
2.การคอมไพล์ จะได้ ข้อมูลนามสกุล OBJ ออปเจ็ค
3.การติดต่อกับไลบรารี จะได้ขัอมูลนามสกุล EXE เรียกว่า การเอ็กซีคิวต์
การเขียนโปรแกรมภาษา C แต่ละครั้ง จะใช้วิธีการ รัน (RUN) เพียงครั้งเดียว ก็จะได้ ข้อมูลนามสกุล OBJ และ EXE
การ RUN โปรแกรมภาษา C
1.RUN ใน Memory คือ การ RUN ในสภาวะแวดล้อมของ C คอมไพเลอร์
ใช้ในการพัฒนาโปรแกรม
2.RUN นอก Memory คือ การเรียกใช้ ข้อมูลนามสกุล EXE ที่ผ่านการเอ็กซีคิวต์ นอก C คอมไพเลอร์ เช่น DOS Windows หรือ บนระบบปฏิบัติการอื่น ๆ
ตัวอย่างการเขียนโปรแกรม
#include <stdio.h> (1)
2.RUN นอก Memory คือ การเรียกใช้ ข้อมูลนามสกุล EXE ที่ผ่านการเอ็กซีคิวต์ นอก C คอมไพเลอร์ เช่น DOS Windows หรือ บนระบบปฏิบัติการอื่น ๆ
ตัวอย่างการเขียนโปรแกรม
#include <stdio.h> (1)
main ( )
(2)
{
int A; (3)
A = 20; (4)
printf ("Turbo C \n"); (5)
printf ("Easy Program"); /* function printf */ (6)
}
1. header เป็นการบอกให้ C คอมไพเลอร์ นำไฟล์อินพุท เอาทํพุท มาตรฐานมารวมกับไฟล์
2. การผ่านค่า อาร์คิวเมนท์
3. กำหนดตัวแปร
4. กำหนดค่าตัวแปร
5. ฟังก์ชันภายใน
6. คอมเมนท์ หรือ คำอธิบาย
{
int A; (3)
A = 20; (4)
printf ("Turbo C \n"); (5)
printf ("Easy Program"); /* function printf */ (6)
}
1. header เป็นการบอกให้ C คอมไพเลอร์ นำไฟล์อินพุท เอาทํพุท มาตรฐานมารวมกับไฟล์
2. การผ่านค่า อาร์คิวเมนท์
3. กำหนดตัวแปร
4. กำหนดค่าตัวแปร
5. ฟังก์ชันภายใน
6. คอมเมนท์ หรือ คำอธิบาย
บล็อก { }
คือ การกำหนด บล็อก ของ ฟังก์ชัน ถ้าโปรแกรมมีขนาดมากน้อยเพียงใดก็ได้ สามารถกำหนดบล็อกซ้อนกันได้ และ บล็อกเปิด ต้องเท่ากับ บล็อก ปิด
{......{......{......}......}....}
การกำหนดตัวอักษรในการพิมพ์
ใช้ตัวอักษรพิมพ์เล็กในการเขียนโปรแกรม ได้แก่ คำสั่ง หรือ ฟังก์ชันต่าง ๆ
ตัวอักษร พิมพ์เล็ก และ พิมพ์ใหญ่ ให้ความหมายต่างกัน ใช้ในการกำหนดตัวแปร และชุดข้อความ (สตริง)
คือ การกำหนด บล็อก ของ ฟังก์ชัน ถ้าโปรแกรมมีขนาดมากน้อยเพียงใดก็ได้ สามารถกำหนดบล็อกซ้อนกันได้ และ บล็อกเปิด ต้องเท่ากับ บล็อก ปิด
{......{......{......}......}....}
การกำหนดตัวอักษรในการพิมพ์
ใช้ตัวอักษรพิมพ์เล็กในการเขียนโปรแกรม ได้แก่ คำสั่ง หรือ ฟังก์ชันต่าง ๆ
ตัวอักษร พิมพ์เล็ก และ พิมพ์ใหญ่ ให้ความหมายต่างกัน ใช้ในการกำหนดตัวแปร และชุดข้อความ (สตริง)
Credit
https://jassadaphon123.wordpress.com/2012/09/10/%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%A7%E0%B8%B1%E0%B8%95%E0%B8%B4%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%8B%E0%B8%B5/
http://my.dek-d.com/pgnexio/blog/?blog_id=10184515
http://www.scimath.org/computerarticle/item/367-ioi
http://members.tripod.com/meteor_hun/page-a.htm