Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ประวัติภาษา C++


ภาษาการเขียนโปรแกรม C ++ มีประวัติย้อนหลังไปถึงปี 1979 เมื่อ Bjarne Stroustrup ทำงานให้กับปริญญาเอกของเขา วิทยานิพนธ์. เขาเริ่มทำงานใน "C with Classes" ซึ่งตามชื่อก็มีความหมายว่าเป็น superset ของภาษา C เป้าหมายของเขาคือการเพิ่มการเขียนโปรแกรมเชิงวัตถุลงในภาษา C ซึ่งเป็นภาษาที่ได้รับการยอมรับอย่างดีสำหรับการพกพาโดยไม่ลดความเร็วหรือการทำงานในระดับต่ำ

ภาษาของเขารวมถึงคลาส การสืบทอดพื้นฐาน อินไลน์ อาร์กิวเมนต์ของฟังก์ชันเริ่มต้น และการตรวจสอบประเภทที่รัดกุม นอกเหนือจากคุณลักษณะทั้งหมดของภาษา C คอมไพเลอร์ C ตัวแรกที่มี Classes เรียกว่า Cfront ซึ่งได้มาจากคอมไพเลอร์ C ที่เรียกว่า CPre เป็นโปรแกรมที่ออกแบบมาเพื่อแปล C ด้วยรหัส Classes เป็น C ธรรมดา

ในปี 1983 ชื่อของภาษาถูกเปลี่ยนจาก C ด้วย Classes เป็น C++ ตัวดำเนินการ ++ ในภาษา C เป็นโอเปอเรเตอร์สำหรับการเพิ่มตัวแปร ซึ่งให้ข้อมูลเชิงลึกว่า Stroustrup พิจารณาภาษาอย่างไร มีการเพิ่มฟีเจอร์ใหม่ๆ จำนวนมากในช่วงเวลานี้ สิ่งที่น่าสังเกตมากที่สุดคือ ฟังก์ชันเสมือน ฟังก์ชันโอเวอร์โหลด การอ้างอิงด้วยสัญลักษณ์ &คีย์เวิร์ด const และความคิดเห็นบรรทัดเดียวโดยใช้เครื่องหมายทับสองอัน

ในปี 1985 C++ ถูกนำมาใช้เป็นผลิตภัณฑ์เชิงพาณิชย์ ภาษายังไม่ได้มาตรฐานอย่างเป็นทางการ ภาษาได้รับการปรับปรุงอีกครั้งในปี 1989 เพื่อรวมสมาชิกที่ได้รับการคุ้มครองและคงที่ตลอดจนมรดกจากหลายชั้นเรียน

ในปี 1990 Turbo C++ เปิดตัวเป็นผลิตภัณฑ์เชิงพาณิชย์ Turbo C++ เพิ่มไลบรารีเพิ่มเติมจำนวนมากซึ่งมีผลกระทบอย่างมากต่อการพัฒนาของ C++

ในปี 1998 คณะกรรมการมาตรฐาน C++ ได้เผยแพร่มาตรฐานสากลฉบับแรกสำหรับ C++ ISO/IEC 14882:1998 ซึ่งเรียกอย่างไม่เป็นทางการว่า C++98 ไลบรารีเทมเพลตมาตรฐานซึ่งเริ่มพัฒนาแนวคิดในปี 2522 รวมอยู่ด้วย ในปี พ.ศ. 2546 คณะกรรมการได้ตอบสนองต่อปัญหาหลายประการที่มีการรายงานตามมาตรฐานปี 2541 และแก้ไขตามนั้น ภาษาที่เปลี่ยนไปมีชื่อว่า C++03

ในช่วงกลางปี ​​2011 มาตรฐาน C++ ใหม่ (C++11) ได้เสร็จสิ้นลงแล้ว คุณลักษณะใหม่นี้รวมการรองรับ Regex, ไลบรารีการสุ่ม, ไลบรารีเวลา C++ ใหม่, การสนับสนุนอะตอมมิก, ไลบรารีเธรดมาตรฐาน, ไวยากรณ์ for loop ใหม่ที่มีฟังก์ชันคล้ายกับสำหรับแต่ละลูปในภาษาอื่นบางคำ, คีย์เวิร์ดอัตโนมัติ, คลาสคอนเทนเนอร์ใหม่, การสนับสนุนที่ดีขึ้นสำหรับสหภาพแรงงานและรายการการกำหนดค่าเริ่มต้นอาร์เรย์และเทมเพลตแบบแปรผัน