Tuesday, February 21, 2017 8:32:19 PM
- Modularity in C++ is supported by the use of namespaces, source files and exception handling while abstraction is achieved using classes, class-hierarchies and templates. Language features + Standard Library form the basis for all programs.
- Resource management and exception handling is integrated in C++ unlike in Java. C++ uses a technique called as Resource Acquisition Is Initialization (RAII). The use of libraries makes programming a pleasant task.
- At the core of it, the purpose of a programming language is to express ideas in code. This is achieved by providing language constructs that specifies actions that can be executed by the machine (close to the machine) and by providing a set of fundamental concepts (close to the problem being solved) by which a programmer can organize and write their code. C++ aims to provide user defined types which performs as well as built in types.
- Design of C++ focuses on the fundamental ideas of: memory, mutability, abstraction, resource management, expression of algorithms, error handling and modularity.
- Systems programming -> directly interact with hardware and resource constrained systems. Examples include device drivers, communication stacks, virtual machines, operating systems, programming environments and foundation libraries etc.
- C++ was designed such that a programmer will never have to use a lower level language such as assembly and to never waste a single byte of memory or cpu cycle. This is called the zero-overhead principle.
Tuesday, February 7, 2017 10:17:24 PM
- C++ is a language for data abstraction, object oriented programming and for writing high quality libraries of user defined types that basically provide a concept to a user as a class or classes that can be used elsewhere safely and efficiently. Thats important to understand - every class is essentially an idea / concept that can be used elsewhere.
- The ability for the user to define new types is key in C++ i.e. essentially the user can partition a large application into smaller modules by defining new types (classes) for the various concepts of the application and this technique is called data abstraction.
- A class is thus a user defined type that provides data hiding (access specifiers), guaranteed initialization of data (constructors), implicit type conversion for user defined types, dynamic typing, user controlled memory management and operator overloading.
- Like C, C++ is able to deal with fundamental objects of hardware (bits, bytes, words, addresses etc) and hence retains its ‘close t the machine’ capabilities and efficiencies like C.
- A tutorial book will define each concept before using it and hence should be used linearly while a reference book can be read topic wise as its self contained with cross references. Use the index in a book for quick referencing and look up.
Monday, February 6, 2017 10:19:44 PM
- The C++98 standard was succeeded by the C++11 standard which adds several important features and optimizations to the language such as better compiler checking and speed.
- Aim to write elegant, correct, maintainable and efficient C++ code, as a language C++ emphasizes the design and use of type-rich lightweight abstractions and is well suited for resource constrained apps and rewards the programmer who takes the time to master the language and write quality code.
- C++ is a language for those professional programmers who take the task of programming seriously. It’s 'closer the machine' easier to adopt for C programmers as well as application language programmers coming from Java, Python, Ruby etc.
- The C++ STL (Standard Template Library) allows the programmer to start from a higher ground rather than the bare language, learn the language at such depth that it helps you go from copying examples to mastery that will help you write your own original applications.
- Some of the newer C++11 features include -> concurrent programming (multicores), regular expression handling, resource management pointers, random numbers, improved containers (hash tables..) simple for statement, basic unicode support, lambdas, general constant expressions, variadic templates, user defined literals and several other exciting new features.
Tuesday, October 4, 2016 9:31:05 PM
- According to Wikipedia: C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.
- C++ is C with classes and is used to code at firm ware, OS and application level. It supports functional, procedural and generic coding paradigms. It was the basis for languages like Java, C#, PHP etc.
- It finds great use in: system programming, embedded systems, resource-constrained and large systems.
- It is found in desktop applications, servers (e.g. e-commerce, web search or SQL servers), and performance-critical applications (e.g. telephone switches or space probes).
- C++ is a compiled language, with implementations of it available on many platforms and provided by various organizations, including the Free Software Foundation (FSF's GCC), LLVM, Microsoft, Intel and IBM.