SlideShare a Scribd company logo
1 of 9
Is Programming
Language Irrelevant?
The Illuminati doesn't run the world.
C programmers do.
Introduction
C is a procedural programming language.
It was initially developed by Dennis Ritchie in the year 1972.
It was mainly developed as a system programming language to write an
operating system.
The main features of C language include low-level access to memory, a
simple set of keywords, and clean style, these features make C language
suitable for system programmings like an operating system or compiler
development.
Many later languages have borrowed syntax/features directly or indirectly
from C language and many other languages are mainly based on C
language. C++ is nearly a superset of C language.
History
Derived from the type less language BCPL, it evolved a type structure;
created on a tiny machine as a tool to improve a meager programming
environment.
Originally, Ken Thompson, a Bell Labs employee, desired to make a
programming language for the new Unix platform. Thompson modified
the BCPL system language and created B.
However, not many utilities were ever written in B due to its slow nature
and inability to take advantage of PDP-11 features in the operating
system. This led to Ritchie improving on B, and thus creating C.
Relevance
Portability and Efficiency: C is almost a portable assembly language. It is almost universally available for existing
processor architectures. There is at least one C compiler for almost every existent architecture. Such is its
portability and efficiency that compilers, libraries, and interpreters of other programming languages are often
implemented in C.
Memory Manipulation: Arbitrary memory address access and pointer arithmetic makes C a perfect fit for system
programming. At the hardware/softwareboundary, computer systems and microcontrollers map their peripherals
and I/O pins into memory addresses. System applications must read and write to those custom memory locations to
communicate with the world. So C’s ability to manipulate arbitrary memory addressesis imperative for
system programming.
Deterministic Usage of Resources: A common language feature that system programming cannot rely on is garbage
collection, or even just dynamic allocation for some embedded systems. Embedded applications are very limited in
time and memory resources. And if dynamic allocation cannot be used because of the lack of memory, it is very
important to have other mechanisms of memory management, like placing data in custom addresses, as C pointers
allow.
Lingua Franca: C is a lingua franca for developers. Many implementations of new algorithms in books or on the
internet are first made available in C by their authors. This gives the maximum possible portability for the
implementation. Moreover, C is an old and widespread language, so we can find all kind of algorithms written in C
around the web. Therefore we’ll very likely benefit from knowing this language.
Incompatibilities
Concept of OOPs: C is a very vast language, but it does not support the concept of
OOPs (Inheritance, Polymorphism, Encapsulation, Abstraction, Data Hiding). C simply
follows the procedural programming approach.
Run-time checking: In the C programming language, the errors or the bugs aren’t
detected after each line of code. Instead, the compiler shows all the errors after
writing the program. It makes the checking of code very complex in large programs.
Constructor or destructor: C does not have any constructor or destructor.
Constructors & Destructors support basic functionality of Object Oriented
Programming. Both are member functions that are created as soon as an object of
the class is created.
Low level of abstraction: C is a small and core machine language that has minimum
data hiding and exclusive visibility that affects the security of this language.
Conclusion
There are many programming languages, today, that allow developers to be more productive than with C for different
kinds of projects. There are higher level languages that provide much larger built-in libraries that simplify working
with JSON, XML, UI, web pages, client requests, database connections, media manipulation, and so on. The TIOBE index
(an indicator of the popularity of programming languages) has, over the last few years, marked a steady decline in
the popularity for C. Its ratings are at less than 6.5%, which is the lowest they have ever been. Java has replaced C as
the most loved language among programmers.
Why is to so? Well, there are several reasons for it.
— There are no big companies or firms at the moment who actively promote C.
— It isn’t a language you think when you write programs for the most in-demand fields, such as
mobile applications or websites.
— It is not evolving in quite the same way as other, newer languages.
Many have called for a merger between C and C++ to create one language. This makes sense as C++ is an offshoot of
C and has several benefits over its older sibling.
To be honest, C programming becoming completely obsolete is still a distant prospect.
The basic reason for this is that you need to have considerable knowledge of C to be able to work with C++ and
C#. C is nothing but a portable assembler. It’s closeness to the hardware, great portability and deterministic
usage of resources makes it ideal for low level development for such things as operating system kernels and
embedded software. It is even used by compilers for other languages to communicate with the machine. The
fact that many programming languages today are better than C for their intended use doesn’t mean that they
beat C in all areas. Interpreted languages like Python, Ruby, and PHP have their primary implementations
written in C. C is still unsurpassed when performance is the priority. The world is running on C-powered
devices. We use these devices every day whether we realize it or not.
C was the past, is the present, and, as far as we can see, will still be the future for many areas of software.
What does your programming experience tell you about where the future of computer science is headed?
Presented By:-
Utsav & Suman
20210417-cppRelevancy-DataStructures.pptx

More Related Content

Similar to 20210417-cppRelevancy-DataStructures.pptx

C Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYC Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYRajeshkumar Reddy
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdffasttrackscardecors
 
Summer training PPT Manasv Singharia.pptx
Summer training PPT Manasv Singharia.pptxSummer training PPT Manasv Singharia.pptx
Summer training PPT Manasv Singharia.pptxshokeenk14
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computerzaheeriqbal41
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...IRJET Journal
 
C programming short notes by pulkit modi
C programming short notes by pulkit modiC programming short notes by pulkit modi
C programming short notes by pulkit modiPulkitmodi1998
 
Introduction to embedded c
Introduction to embedded cIntroduction to embedded c
Introduction to embedded cGokuldhev mony
 
Programming Language
Programming LanguageProgramming Language
Programming LanguageFahad Khan
 
Programming in python in detail concept .pptx
Programming in python in detail concept .pptxProgramming in python in detail concept .pptx
Programming in python in detail concept .pptxKavitha713564
 
C programming introduction
C programming introductionC programming introduction
C programming introductionDucat
 
Advantage of Learning C Programming.pdf
Advantage of Learning C Programming.pdfAdvantage of Learning C Programming.pdf
Advantage of Learning C Programming.pdfTechnologyaddicts
 
All You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfAll You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfBrad Smith
 

Similar to 20210417-cppRelevancy-DataStructures.pptx (20)

C Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYC Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDY
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdf
 
C Language
C LanguageC Language
C Language
 
Summer training PPT Manasv Singharia.pptx
Summer training PPT Manasv Singharia.pptxSummer training PPT Manasv Singharia.pptx
Summer training PPT Manasv Singharia.pptx
 
C basic
C basicC basic
C basic
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computer
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
C programming short notes by pulkit modi
C programming short notes by pulkit modiC programming short notes by pulkit modi
C programming short notes by pulkit modi
 
Introduction to embedded c
Introduction to embedded cIntroduction to embedded c
Introduction to embedded c
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 
C# Introduction brief
C# Introduction briefC# Introduction brief
C# Introduction brief
 
Characteristics of c#
Characteristics of c#Characteristics of c#
Characteristics of c#
 
Chrysalis day-c++
Chrysalis day-c++Chrysalis day-c++
Chrysalis day-c++
 
Introduction to c language
Introduction to c language Introduction to c language
Introduction to c language
 
Programming in python in detail concept .pptx
Programming in python in detail concept .pptxProgramming in python in detail concept .pptx
Programming in python in detail concept .pptx
 
C programming introduction
C programming introductionC programming introduction
C programming introduction
 
Advantage of Learning C Programming.pdf
Advantage of Learning C Programming.pdfAdvantage of Learning C Programming.pdf
Advantage of Learning C Programming.pdf
 
All You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfAll You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdf
 
C tutorial
C tutorialC tutorial
C tutorial
 

More from Suman Garai

20230513-reconFTW-CyberSapiens.pdf
20230513-reconFTW-CyberSapiens.pdf20230513-reconFTW-CyberSapiens.pdf
20230513-reconFTW-CyberSapiens.pdfSuman Garai
 
20230324-Exploring the Landscape of Password Managers for Individual Users a...
20230324-Exploring the Landscape of Password Managers for  Individual Users a...20230324-Exploring the Landscape of Password Managers for  Individual Users a...
20230324-Exploring the Landscape of Password Managers for Individual Users a...Suman Garai
 
20230105-TestCases&Oracle-MobileTesting.pdf
20230105-TestCases&Oracle-MobileTesting.pdf20230105-TestCases&Oracle-MobileTesting.pdf
20230105-TestCases&Oracle-MobileTesting.pdfSuman Garai
 
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdfSuman Garai
 
20220911-ISO27000-SecurityStandards.pptx
20220911-ISO27000-SecurityStandards.pptx20220911-ISO27000-SecurityStandards.pptx
20220911-ISO27000-SecurityStandards.pptxSuman Garai
 
20220819-Ecosystem-EnviornmentalScience.pptx
20220819-Ecosystem-EnviornmentalScience.pptx20220819-Ecosystem-EnviornmentalScience.pptx
20220819-Ecosystem-EnviornmentalScience.pptxSuman Garai
 
20220816-GeolocationAPI-AdvancedWebDevelopment.pptx
20220816-GeolocationAPI-AdvancedWebDevelopment.pptx20220816-GeolocationAPI-AdvancedWebDevelopment.pptx
20220816-GeolocationAPI-AdvancedWebDevelopment.pptxSuman Garai
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptxSuman Garai
 
20210906-Nessus-FundamentalInfoSec.ppsx
20210906-Nessus-FundamentalInfoSec.ppsx20210906-Nessus-FundamentalInfoSec.ppsx
20210906-Nessus-FundamentalInfoSec.ppsxSuman Garai
 
20210727-Technoprenuership-EntreprenuershipDev.ppsx
20210727-Technoprenuership-EntreprenuershipDev.ppsx20210727-Technoprenuership-EntreprenuershipDev.ppsx
20210727-Technoprenuership-EntreprenuershipDev.ppsxSuman Garai
 
20210717-AntiBotnets-FundamentalInfoSec.pptx
20210717-AntiBotnets-FundamentalInfoSec.pptx20210717-AntiBotnets-FundamentalInfoSec.pptx
20210717-AntiBotnets-FundamentalInfoSec.pptxSuman Garai
 

More from Suman Garai (11)

20230513-reconFTW-CyberSapiens.pdf
20230513-reconFTW-CyberSapiens.pdf20230513-reconFTW-CyberSapiens.pdf
20230513-reconFTW-CyberSapiens.pdf
 
20230324-Exploring the Landscape of Password Managers for Individual Users a...
20230324-Exploring the Landscape of Password Managers for  Individual Users a...20230324-Exploring the Landscape of Password Managers for  Individual Users a...
20230324-Exploring the Landscape of Password Managers for Individual Users a...
 
20230105-TestCases&Oracle-MobileTesting.pdf
20230105-TestCases&Oracle-MobileTesting.pdf20230105-TestCases&Oracle-MobileTesting.pdf
20230105-TestCases&Oracle-MobileTesting.pdf
 
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf
20221003-DigitalForensicTools-DigitalForensicInvestigation.pdf
 
20220911-ISO27000-SecurityStandards.pptx
20220911-ISO27000-SecurityStandards.pptx20220911-ISO27000-SecurityStandards.pptx
20220911-ISO27000-SecurityStandards.pptx
 
20220819-Ecosystem-EnviornmentalScience.pptx
20220819-Ecosystem-EnviornmentalScience.pptx20220819-Ecosystem-EnviornmentalScience.pptx
20220819-Ecosystem-EnviornmentalScience.pptx
 
20220816-GeolocationAPI-AdvancedWebDevelopment.pptx
20220816-GeolocationAPI-AdvancedWebDevelopment.pptx20220816-GeolocationAPI-AdvancedWebDevelopment.pptx
20220816-GeolocationAPI-AdvancedWebDevelopment.pptx
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx
 
20210906-Nessus-FundamentalInfoSec.ppsx
20210906-Nessus-FundamentalInfoSec.ppsx20210906-Nessus-FundamentalInfoSec.ppsx
20210906-Nessus-FundamentalInfoSec.ppsx
 
20210727-Technoprenuership-EntreprenuershipDev.ppsx
20210727-Technoprenuership-EntreprenuershipDev.ppsx20210727-Technoprenuership-EntreprenuershipDev.ppsx
20210727-Technoprenuership-EntreprenuershipDev.ppsx
 
20210717-AntiBotnets-FundamentalInfoSec.pptx
20210717-AntiBotnets-FundamentalInfoSec.pptx20210717-AntiBotnets-FundamentalInfoSec.pptx
20210717-AntiBotnets-FundamentalInfoSec.pptx
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

20210417-cppRelevancy-DataStructures.pptx

  • 1. Is Programming Language Irrelevant? The Illuminati doesn't run the world. C programmers do.
  • 2. Introduction C is a procedural programming language. It was initially developed by Dennis Ritchie in the year 1972. It was mainly developed as a system programming language to write an operating system. The main features of C language include low-level access to memory, a simple set of keywords, and clean style, these features make C language suitable for system programmings like an operating system or compiler development. Many later languages have borrowed syntax/features directly or indirectly from C language and many other languages are mainly based on C language. C++ is nearly a superset of C language.
  • 3. History Derived from the type less language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment. Originally, Ken Thompson, a Bell Labs employee, desired to make a programming language for the new Unix platform. Thompson modified the BCPL system language and created B. However, not many utilities were ever written in B due to its slow nature and inability to take advantage of PDP-11 features in the operating system. This led to Ritchie improving on B, and thus creating C.
  • 4. Relevance Portability and Efficiency: C is almost a portable assembly language. It is almost universally available for existing processor architectures. There is at least one C compiler for almost every existent architecture. Such is its portability and efficiency that compilers, libraries, and interpreters of other programming languages are often implemented in C. Memory Manipulation: Arbitrary memory address access and pointer arithmetic makes C a perfect fit for system programming. At the hardware/softwareboundary, computer systems and microcontrollers map their peripherals and I/O pins into memory addresses. System applications must read and write to those custom memory locations to communicate with the world. So C’s ability to manipulate arbitrary memory addressesis imperative for system programming. Deterministic Usage of Resources: A common language feature that system programming cannot rely on is garbage collection, or even just dynamic allocation for some embedded systems. Embedded applications are very limited in time and memory resources. And if dynamic allocation cannot be used because of the lack of memory, it is very important to have other mechanisms of memory management, like placing data in custom addresses, as C pointers allow. Lingua Franca: C is a lingua franca for developers. Many implementations of new algorithms in books or on the internet are first made available in C by their authors. This gives the maximum possible portability for the implementation. Moreover, C is an old and widespread language, so we can find all kind of algorithms written in C around the web. Therefore we’ll very likely benefit from knowing this language.
  • 5. Incompatibilities Concept of OOPs: C is a very vast language, but it does not support the concept of OOPs (Inheritance, Polymorphism, Encapsulation, Abstraction, Data Hiding). C simply follows the procedural programming approach. Run-time checking: In the C programming language, the errors or the bugs aren’t detected after each line of code. Instead, the compiler shows all the errors after writing the program. It makes the checking of code very complex in large programs. Constructor or destructor: C does not have any constructor or destructor. Constructors & Destructors support basic functionality of Object Oriented Programming. Both are member functions that are created as soon as an object of the class is created. Low level of abstraction: C is a small and core machine language that has minimum data hiding and exclusive visibility that affects the security of this language.
  • 6. Conclusion There are many programming languages, today, that allow developers to be more productive than with C for different kinds of projects. There are higher level languages that provide much larger built-in libraries that simplify working with JSON, XML, UI, web pages, client requests, database connections, media manipulation, and so on. The TIOBE index (an indicator of the popularity of programming languages) has, over the last few years, marked a steady decline in the popularity for C. Its ratings are at less than 6.5%, which is the lowest they have ever been. Java has replaced C as the most loved language among programmers. Why is to so? Well, there are several reasons for it. — There are no big companies or firms at the moment who actively promote C. — It isn’t a language you think when you write programs for the most in-demand fields, such as mobile applications or websites. — It is not evolving in quite the same way as other, newer languages. Many have called for a merger between C and C++ to create one language. This makes sense as C++ is an offshoot of C and has several benefits over its older sibling.
  • 7. To be honest, C programming becoming completely obsolete is still a distant prospect. The basic reason for this is that you need to have considerable knowledge of C to be able to work with C++ and C#. C is nothing but a portable assembler. It’s closeness to the hardware, great portability and deterministic usage of resources makes it ideal for low level development for such things as operating system kernels and embedded software. It is even used by compilers for other languages to communicate with the machine. The fact that many programming languages today are better than C for their intended use doesn’t mean that they beat C in all areas. Interpreted languages like Python, Ruby, and PHP have their primary implementations written in C. C is still unsurpassed when performance is the priority. The world is running on C-powered devices. We use these devices every day whether we realize it or not. C was the past, is the present, and, as far as we can see, will still be the future for many areas of software. What does your programming experience tell you about where the future of computer science is headed?