സി++
![]() | |
രൂപകൽപ്പന ചെയ്തത്: | Bjarne Stroustrup |
---|---|
വികസിപ്പിച്ചത്: | ISO/IEC JTC1 (Joint Technical Committee 1) / SC22 (Subcommittee 22) / WG21 (Working Group 21) |
ഡാറ്റാടൈപ്പ് ചിട്ട: | Static, nominative, partially inferred |
പ്രധാന രൂപങ്ങൾ: | GCC, LLVM Clang, Microsoft Visual C++, Embarcadero C++Builder, Intel C++ Compiler, IBM XL C++, EDG |
സ്വാധീനിച്ചത്: | Ada 95, C#,[1] C99, Chapel,[2] Clojure,[3] D, Java,[4] JS++,[5] Lua, Nim,[6] Objective-C++, Perl, PHP, Python,[7] Rust, Seed7 |
സി++(/ˌsiːˌplʌsˈplʌs/) എന്നത് സി പ്രോഗ്രാമിംഗ് ഭാഷയുടെ അല്ലെങ്കിൽ "സി വിത്ത് ക്ലാസെസ്സ്" എന്നതിന്റെ ഒരു വിപുലീകരണമായി ബ്യാൻ സ്ട്രൗസ്ട്രെപ് സൃഷ്ടിച്ച ഒരു പൊതു-ഉദ്ദേശ്യ പ്രോഗ്രാമിംഗ് ഭാഷയാണ്. കാലക്രമേണ ഭാഷ ഗണ്യമായി വികസിച്ചു, ആധുനിക സി++ന് ഇപ്പോൾ ഒബ്ജക്റ്റ്-ഓറിയന്റഡ്, ജെനറിക്, ഫങ്ഷണൽ ഫീച്ചറുകൾ ഉണ്ട്, കൂടാതെ ലോ-ലെവൽ മെമ്മറി മാനിപ്പുലേഷനുള്ള സൗകര്യങ്ങളും ഉണ്ട്. ഇത് മിക്കവാറും എല്ലായ്പ്പോഴും കംപൈൽ ചെയ്ത ഭാഷയായാണ് നടപ്പിലാക്കുന്നത്, കൂടാതെ സ്വതന്ത്ര സോഫ്റ്റ്വെയർ സമിതി, എൽഎൽവിഎം(LLVM), മൈക്രോസോഫ്റ്റ്, ഇന്റൽ, ഒറാക്കിൾ, ഐബിഎം എന്നിവയുൾപ്പെടെ പല വെണ്ടർമാരും സി++ കമ്പൈലറുകൾ നൽകുന്നു, അതിനാൽ ഇത് പല പ്ലാറ്റ്ഫോമുകളിലും ലഭ്യമാണ്.
ചരിത്രം
[തിരുത്തുക]1983-1985 കാലത്ത് ബ്യാൻ സ്ട്രൗസ്ട്രെപ് ആണ് ഇത് വികസിപ്പിച്ചെടുത്തത്. 1983 ന് മുൻപ്, അദ്ദേഹം സി പ്രോഗ്രാമിങ് ഭാഷ പുതുക്കി ചേർത്ത് അതിനെ സി വിത് ക്ലാസ്സെസ് എന്ന് വിളിച്ചു. ഇതിനു വേണ്ടി അദ്ദേഹം പ്രോഗ്രാമിങ്ങിൽ 'ഒബ്ജക്റ്റ്’ എന്ന ആശയം സിമുല എന്ന കമ്പ്യൂട്ടർ ഭാഷയിൽ നിന്ന് കടമെടുത്തു (എന്നാൽ പ്രായോഗിക ഉപയോഗത്തിന് ഭാഷ വളരെ മന്ദഗതിയിലായിരുന്നു, അതേസമയം ബിസിപിഎൽ(BCPL) വേഗതയേറിയതാണെങ്കിലും വലിയ സോഫ്റ്റ്വെയർ വികസനത്തിന് അനുയോജ്യമല്ലാത്ത നിമ്ന്ന(low level) തലത്തിലുള്ളതായിരുന്നു), കൂടെ സിയുടെ ശക്തിയും ലാളിത്യവും. 1983 ലാണ് സി++ എന്ന പേര് ഇതിന് നൽകിയത്. ഒരു പുതിയ ഭാഷ സൃഷ്ടിക്കുന്നതിനുള്ള പ്രചോദനം അദ്ദേഹത്തിൻ്റെ പിഎച്ച്ഡി തീസിസിനായുള്ള പ്രോഗ്രാമിംഗിലെ സ്ട്രോസ്ട്രപ്പിൻ്റെ പ്രവർത്തി പരിചയത്തിൽ നിന്നാണ്.
സവിശേഷതകൾ
[തിരുത്തുക]![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Cpp_in_GNU_emacs.png/250px-Cpp_in_GNU_emacs.png)
- ഒബ്ജക്റ്റ് ഓറിയന്റഡ് കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് (object oriented)- അത്യധികം സങ്കീർണങ്ങളായ കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകൾ ഇതുപയോഗിച്ച് വികസിപ്പിച്ചെടുക്കുവാൻ കഴിയും.
- ഇൻഹെറിറ്റൻസ് ( Inheritance) - സമാനസ്വഭാവമുള്ള പ്രോഗ്രാം ഭാഗങ്ങൾ ഒന്നിലധികം പ്രാവശ്യം ഒന്നിലധികം പ്രാവശ്യം എഴുതുന്നതൊഴിവാക്കാൻ സാധിക്കുന്നതു മൂലം പ്രോഗ്രാമ്മിങ്ങ് സമയം ലാഭിക്കാൻ സാധിക്കുന്നു.
- എൻക്യാപ്സുലേഷൻ (Encapsulation)- ക്ലാസ്സുകളുടെ ഉപയോഗം ദത്തങ്ങളൂടെയും നിർദ്ദേശങ്ങളുടെയും സുരക്ഷിതത്വം ഉറപ്പാക്കുന്നു.
- പോളിമോർഫിസം (Polimorphism) - സങ്കീർണ്ണമായ പ്രോഗ്രാമ്മിങ്ങ് നിർദ്ദേശങ്ങങ്ങൾക്ക് ലളിതമായ ഒരു കവചം സൃഷ്ടിക്കുന്നു
ഹലോ വേൾഡ് പ്രോഗ്രാം
[തിരുത്തുക]താഴെ സി++ൽ ഉള്ള ഒരു ഹലോ വേൾഡ് പ്രോഗ്രാം മാനകരൂപത്തിലും, ഏറെ പ്രചാരത്തിലുള്ള ടർബോ സി++ കമ്പൈലർ രീതിയിലും കൊടുത്തിരിക്കുന്നു. [8][9]
മാനക രൂപം | ടർബോ സി++ രൂപം |
---|---|
#include <iostream>
int main()
{
std::cout << "Hello, world!"<< std::endl;
return 0;
}
|
#include <iostream.h>
void main()
{
cout<<"Hello, world!\n";
}
|
ഈ പ്രോഗ്രാം തരുന്ന ഫലം (ഔട്ട്പുട്ട്) താഴെ പറയും പ്രകാരമായിരിക്കും.
''Hello, world!'' |
വിവിധ കംപൈലറുകൾക്കനുസരിച്ച് സി ++ പ്രോഗ്രാമ്മിന്റെ സ്ട്രക്ട്ച്ചറുകൾ ചെറുതായി വത്യാസപ്പെട്ടുകൊണ്ടിരിക്കും.
ഇവയും കാണുക
[തിരുത്തുക]അടിക്കുറിപ്പുകൾ
[തിരുത്തുക]പ്രകൃതി ദൃശ്യങ്ങൾ
അവലംബം
[തിരുത്തുക]- Abrahams, David. C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison-Wesley. ISBN 0-321-22725-5.
{{cite book}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - Alexandrescu, Andrei (2001). Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley. ISBN 0-201-70431-5.
- Becker, Pete (2006). The C++ Standard Library Extensions : A Tutorial and Reference. Addison-Wesley. ISBN 0-321-41299-0.
- Alexandrescu, Andrei (2004). C++ Design and Coding Standards: Rules and Guidelines for Writing Programs. Addison-Wesley. ISBN 0-321-11358-6.
{{cite book}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - Coplien, James O. (1992, reprinted with corrections 1994). Advanced C++: Programming Styles and Idioms. ISBN 0-201-54855-0.
{{cite book}}
: Check date values in:|year=
(help) - Dewhurst, Stephen C. (2005). C++ Common Knowledge: Essential Intermediate Programming. Addison-Wesley. ISBN 0-321-32192-8.
- Information Technology Industry Council (2003-10-15). Programming languages — C++ (Second edition ed.). Geneva: ISO/IEC. 14882:2003(E).
{{cite book}}
:|edition=
has extra text (help); Check date values in:|date=
(help) - Josuttis, Nicolai M. The C++ Standard Library. Addison-Wesley. ISBN 0-201-37926-0.
- Koenig, Andrew (2000). Accelerated C++ - Practical Programming by Example. Addison-Wesley. ISBN 0-201-70353-X.
{{cite book}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - Lippman, Stanley B. (2005). C++ Primer. Addison-Wesley. ISBN 0-201-72148-1.
{{cite book}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - Lippman, Stanley B. (1996). Inside the C++ Object Model. Addison-Wesley. ISBN 0-201-83454-5.
- Stroustrup, Bjarne (2000). The C++ Programming Language (Special Edition ed.). Addison-Wesley. ISBN 0-201-70073-5.
{{cite book}}
:|edition=
has extra text (help) - Stroustrup, Bjarne (1994). The Design and Evolution of C++. Addison-Wesley. ISBN 0-201-54330-3.
- Sutter, Herb (2001). More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions. Addison-Wesley. ISBN 0-201-70434-X.
- Sutter, Herb (2004). Exceptional C++ Style. Addison-Wesley. ISBN 0-201-76042-8.
- Vandevoorde, David (2003). C++ Templates: The complete Guide. Addison-Wesley. ISBN 0-201-73484-2.
{{cite book}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - Scott Meyers (2005). Effective C++. Third Edition. Addison-Wesley. ISBN 0-321-33487-6
പുറത്തേക്കുള്ള കണ്ണികൾ
[തിരുത്തുക]![വിക്കിപാഠശാല](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Wikibooks-logo-en.svg/50px-Wikibooks-logo-en.svg.png)
പരിശീലനക്കുറിപ്പുകൾ en:C++ എന്ന താളിൽ ലഭ്യമാണ്
- Introduction to C++
- C++ Annotations - A thorough and detailed C++ reference
- A paper by Stroustrup showing the timeline of C++ evolution (1979-1991)
- Apache C++ Standard Library Documentation
- Standards Committee Page: JTC1/SC22/WG21 - C++
- C++ FAQ Lite by Marshall Cline
- Boost C++ Libraries
- C++ വിക്കിപാഠഷാല
- Computer World interview with Bjarne Stroustrup
- CrazyEngineers.com interview with Bjarne Stroustrup Archived 2008-12-10 at the Wayback Machine.
- Interactive web-based version of Comeau C++ compiler Archived 2008-10-16 at the Wayback Machine.
- The State of the Language: An Interview with Bjarne Stroustrup (August 15, 2008) Archived 2009-01-31 at the Wayback Machine.
അവലംബം
[തിരുത്തുക]- ↑ Naugler, David (May 2007). "C# 2.0 for C++ and Java programmer: conference workshop". Journal of Computing Sciences in Colleges. 22 (5).
Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.
- ↑ "Chapel spec (Acknowledgements)" (PDF). Cray Inc. 1 October 2015. Archived (PDF) from the original on 24 June 2018. Retrieved 14 January 2016.
- ↑ "Rich Hickey Q&A by Michael Fogus". Archived from the original on 2017-01-11. Retrieved 2017-01-11.
- ↑ Harry. H. Chaudhary (28 July 2014). "Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans". Archived from the original on 27 May 2021. Retrieved 29 May 2016.
- ↑ Roger Poon (1 May 2017). "Scaling JS++: Abstraction, Performance, and Readability". Archived from the original on 11 May 2020. Retrieved 21 April 2020.
- ↑ "FAQ Nim Programming Language". Archived from the original on 11 July 2017. Retrieved 2020-04-21.
- ↑ "9. Classes — Python 3.6.4 documentation". docs.python.org. Archived from the original on 23 October 2012. Retrieved 2018-01-09.
- ↑ Stroustrup, Bjarne (2000). The C++ Programming Language (Special Edition ed.). Addison-Wesley. p. 46. ISBN 0-201-70073-5.
{{cite book}}
:|edition=
has extra text (help) - ↑ Open issues for The C++ Programming Language (3rd Edition) - This code is copied directly from Bjarne Stroustrup's errata page (p. 633). He addresses the
std::endl
issue. Also see www.research.att.com and www.delorie.com/djgpp/ for detail on the valid implicit return value of main. The implicit return of zero is not available for other functions.