Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/371166462

C Programming Language: A Review

Article · May 2023


DOI: 10.3897/jucs.

CITATIONS READS

0 4,458

3 authors, including:

Darllaine Lincopinis
Western Mindanao State University
8 PUBLICATIONS 0 CITATIONS

SEE PROFILE

All content following this page was uploaded by Darllaine Lincopinis on 31 May 2023.

The user has requested enhancement of the downloaded file.


Journal of Universal Computer Science, vol. 27, no. 1 (2021), 0000-0000
submitted: 0/0/0000, accepted: 0/0/0000, appeared: 0/0/0000 CC BY-ND 4.0

C Programming Language: A Review

Brethel B. Chavez
(Western Mindanao State University, Pagadian City, Philippines
qb202103664@wmsu.edu.ph)

Tedd Angelo J. Gitalan


(Western Mindanao State University, Pagadian City, Philippines
qb202103666@wmsu.edu.ph)

Darllaine R. Lincopinis
(Western Mindanao State University, Pagadian City, Philippines
https://orcid.org/0000-0001-9503-8965, lincopinis.darllaine@wmsu.edu.ph)

Abstract: The C programming language has been around for many years and is a popular and
significant computer language. Dennis Ritchie created the C programming language at Bell Labs
in the early 1970s with the goal of creating a straightforward, effective, and portable language that
could be used to create system software and other low-level applications. Many of C’s strengths,
such as its low-level capabilities, effective memory management, portability, and broad range
of applications, can be credited for its popularity and longevity. Operating systems, embedded
devices, applications for science and engineering, video games, and more have all been created
using C. C++, Java, and Python are just a few of the programming languages that C has impacted,
making it an important figure in the history of computer science. Despite its advanced age, C is
still a vital and relevant language for many developers, and it will play a significant role in the
creation of software for many years to come.
Keywords: C, programming language, computer science
Categories:
DOI: 10.3897/jucs.<SubmissionNumber>

1 Introduction
Since the 1970s, C has been one of the most widely used programming languages in the
world [Ritchie,1993]. It is a general-purpose programming language that is frequently
used in the creation of operating systems, compilers, embedded devices, and other
types of low-level software [Kernighan Ritchie,1978]. C supports low-level memory
manipulation, which is crucial for some applications, as well as efficient performance.
Its relatively basic syntax also makes it straightforward to learn [Balasubramanian,2016].
Because of its versatility, strength, and widespread use, C continues to be a preferred
choice for many programmers despite the introduction of other programming languages.
System programming and other tasks that call for effective memory management
and direct hardware control can benefit from this low-level language’s direct access
to the system’s memory and hardware resources. Because C is a compiled language,
before it is executed, a compiler converts the source code into machine code. Because
the compiled code can be executed directly on the computer’s hardware, this procedure
makes C programs quick and effective.
Chavez, B., Gitalan, T., Lincopinis, D.: C Programming Language: A Review 1

2 History of C Programming Language


Dennis Ritchie created the C programming language at Bell Labs in the early 1970s. The
B programming language, developed by Ken Thompson and others at Bell Labs in the
late 1960s, served as the foundation for Ritchie’s creation of C. The C programming
language was intended to be a strong, effective, and portable language that could be
used to construct low-level system software such as operating systems. Ritchie started
developing C in 1971, and by 1973 the language had stabilized. On a Digital Equipment
Corporation PDP-11 computer running an early version of the Unix operating system,
the first implementation of C was created. C quickly became popular among Unix
programmers, and when Unix became a widely used operating system in the 1970s and
1980s, its use grew quickly as well [Donovan,2019].
The simplicity and use of C were two important characteristics that contributed to its
adoption. C was created to be a straightforward, compact, and modular language with
little overhead. Even for inexperienced programmers, this made it simple to understand
and use. The portability of C was another feature that led to its popularity. Because C
was created to be a platform-independent language, programs written in it can be easily
compiled and executed on a variety of devices and operating systems. This made it
simpler to create software that could run on a range of hardware platforms, which was
crucial during the 1970s and 1980s when the computer industry was still undergoing
fast growth [Donovan,2019]. C has grown in importance as a language for low-level
applications, embedded systems, and systems programming. Along with the creation
of interactive software like video games, it was also widely employed in scientific and
engineering applications.
C++, Java, and Python are just a few of the programming languages that have been
influenced by C, which is still a favorite among many developers today. C is still a useful
and potent tool for software creation, despite its advanced age, and its influence on the
area of computer science is likely to last for many years to come.

3 Why C is Popular Compared to other Programming Languages?


Since every programming language has unique strengths and weaknesses that make it
better suited to applications and development scenarios, it is challenging to say that one
programming language is objectively superior to another. However, there are a number
of factors that make C popular and an effective tool for many developers.
The effectiveness and performance of C are important factors. Direct access to
computer hardware is made possible by the low-level programming language C, enabling
the development of high-performance software that uses few resources. This makes
it ideal for embedded devices, systems programming, and other applications where
performance is crucial [Alexander,2019].Additionally, C is very portable, allowing
programs created in it to be compiled and executed unchanged on a variety of platforms.
This makes it simpler to create cross-platform software that can work with different
hardware setups and operating systems.
C’s lengthy history and ongoing applicability in contemporary software development
are noteworthy characteristics as well. With its long history, C has influenced the creation
of numerous other programming languages, such as C++, Java, and Python. C is a well-
known and well-understood language since many developers are familiar with it or have
learned it as part of their computer science curriculum [Doyle,2013].
2 Chavez, B., Gitalan, T., Lincopinis, D.: C Programming Language: A Review

The strong type and structured programming capabilities of C also make it simpler
to build trustworthy and maintainable code, which is crucial in big software projects.
Pointers are supported in C, and it has effective memory management, which makes it a
potent tool for dealing with intricate data structures and algorithms.
Finally, the development of multiple libraries and frameworks that can facilitate
programming activities and facilitate the creation of sophisticated software applications
has been facilitated by the fact that C is an open-source language with a sizable and
active developer community [Ghezzi, et. al.,2018]. Overall, C is a popular and valuable
language for many developers due to its performance, portability, history, reliability, and
extensibility.

4 Features of C Programming Language


The fundamental characteristics of a programming language outline its abilities and
uniqueness as well as the advantages it might provide while creating software or a
website. The following are some of the key features of the C language:

1. Low-level access to memory


C allows for direct memory location manipulation, which is frequently required for
the implementation of system-level software. Programmers can directly access and
modify memory locations thanks to C’s low-level pointer-based memory access.
The development of sophisticated data structures and effective algorithms can both
benefit from this property.
2. Portability
Because C is so highly portable, programs written in it can be compiled to run on a
variety of hardware and operating systems. The usage of standardized libraries and
language features enables this portability. For instance, the C standard library offers a
uniform collection of cross-platform functions for input/output, string manipulation,
and mathematical calculations.
3. Structured programming
It is simpler to build organized, modular code with C because it enables structured
programming structures like loops, conditionals, and functions. By segmenting a
program into smaller, more manageable pieces, structured programming improves
the readability, maintainability, and reuse of code.
4. Pointers
C’s pointers feature is a strong one that gives programmers direct access to and
control over memory. Pointers offer a method for dynamic memory allocation at
runtime and can be used to build intricate data structures. If pointers are not used
properly, they can potentially lead to problems and memory leaks.
5. Strongly-typed
Before being used in C, every variable must first be defined with a certain data type.
This increases the code’s dependability and helps to prevent type-related problems.
Additionally, the compiler can more efficiently optimize the code thanks to strong
typing.
Chavez, B., Gitalan, T., Lincopinis, D.: C Programming Language: A Review 3

6. Efficient memory management


Fine-grained control over memory allocation and deallocation is provided by C,
allowing for the creation of memory-efficient code. Programs that need to handle a
lot of data or run on low-resource devices can benefit from C’s ability to create and
deallocate memory dynamically at runtime.
7. Bit manipulation
The bitwise operators in C allow programmers to control specific bits within a byte.
The optimization of programs that deals with binary data or bitwise operations can
benefit from bit manipulation. Bitwise operations, for instance, can be used to pack
and unpack data structures more effectively in terms of memory usage.
8. Large standard library
For common activities like input/output, string manipulation, and mathematical op-
erations, the C standard library offers a sizable collection of functions. Programmers
can develop code more quickly by using the standard library rather than creating all
of the common operations from scratch. In addition, there are numerous third-party
libraries for C that offer further functionality.
9. Pre-processor directives
Before compilation, text substitution and macro expansion can be done using C’s pre-
processor. Pre-processor directives are used to specify constants, execute conditional
compilation, and build reusable code snippets. In order to conditionally include or
omit code from the finished executable, pre-processor directives are also employed.
10. Extensibility
Function pointers and dynamic memory allocation are supported in C, enabling
more adaptable and modular code architecture. Additionally, C can be extended with
libraries written in other languages like assembly and C++. Utilizing pre-existing
code libraries and tools allows for increased productivity and decreased development
time. For instance, programmers can improve performance-important portions of
their code by using assembly language procedures.

5 10 Reasons to Learn C Programming Language


There are several benefits to learning C programming. Ten main reasons are as follows:
1. Efficiency
Compiler-based languages like C enable effective memory management and direct
control over system resources. It offers low-level control, making it appropriate for
creating high-performance applications like real-time systems, embedded devices,
and graphics-intensive programs.
2. Portability
On numerous platforms, including diverse operating systems and hardware archi-
tectures, C programs can be built and executed. Because there are C compilers
for several operating systems, programmers can create code that can be readily
transferred to and executed on other platforms without requiring substantial changes.
3. Foundations for other languages
C++, Java, and Python are just a few of the major programming languages that have
4 Chavez, B., Gitalan, T., Lincopinis, D.: C Programming Language: A Review

taken syntax and ideas from it. The strong foundation in programming concepts and
language constructs provided by learning C makes it simpler to learn and comprehend
these derived languages.
4. Low-level Programming
With capabilities like pointers, bitwise operations, and manual memory management,
C enables direct memory access. This qualifies it for jobs like creating device drivers,
operating systems, and embedded systems that call for low- level hardware control.
5. Operating systems development
For low-level system interactions, the majority of operating systems are either
written in C or include a C interface. Understanding operating system fundamentals
and creating software that closely interacts with the underlying hardware require a
working knowledge of C.
6. Career opportunities
A vast variety of professional prospects are made available by C programming
expertise. In fields like systems programming, the creation of embedded systems,
the creation of video games, and cybersecurity, it is highly valued. C programming
knowledge can provide you an advantage in several professions.
7. Strong programming fundamentals
C enforces best practices in programming, like manually managing memory, com-
prehending data types, and putting algorithms into practice. Learning C aids in the
development of a solid foundation in programming that can be applied to various
languages and technologies.
8. Direct access to system resources
Because C is a low-level language, it offers direct access to hardware and system
resources like memory. This direct access enables programmers to create software,
such as device drivers or system-level software, that communicates with a system’s
underlying hardware.
9. Legacy code maintenance
C is widely used to create existing software frameworks, libraries, and systems.
You can efficiently extend and manage historical codebases if you have a working
knowledge of C. You can use it to debug and fix problems, enhance performance,
and incorporate fresh features into current C-based programs.
10. Deep understanding of computer architecture
Understanding the fundamentals of how processors and computers operate is neces-
sary to learn C. You gain understanding of ideas like pointers, low-level operations,
data representation, and memory management. Your grasp of software- hardware
interaction and system-level optimizations will be improved by this information.

6 Conclusion
Developers of all skill levels can benefit from learning C since it offers a solid foundation
in computer science ideas that can be applied to other languages and technologies. Due
to its open-source nature, many libraries and frameworks have been created that can
streamline programming tasks and make it simpler to create sophisticated software
Chavez, B., Gitalan, T., Lincopinis, D.: C Programming Language: A Review 5

applications. In summary, C is a strong and popular programming language with a long


history and ongoing use in contemporary software development. It is a popular option
for a variety of applications thanks to its many characteristics, which include low-level
memory access, portability, structured programming, pointers, strong typing, effective
memory management, bit manipulation, a big standard library, pre-processor directives,
and extensibility. Overall, C is a language that has endured and is still a vital resource
for many developers. Learning C can help you write more effective and dependable code
andenhance your career in software development, whether you are working on systems
programming, embedded devices, or high-level applications.

References
[Ritchie,1993] Ritchie, D. The development of the C language. ACM Sigplan Notices. 28, 201-
208 (1993)
[Kernighan Ritchie,1978] Kernighan, B. & Ritchie, D. The C Programming Language Prentice
Hall. Englewood Cliffs, New Jersey. (1978)
[Balasubramanian,2016] Balasubramanian, S. A brief history of the C programming language.
International Journal Of Computer Applications. (2016)
[Alexander,2019] Alexander, M. The advantages of learning C programming. (educba,2019),
https://www.educba.com/advantages-of-learning-C-programming/
[Doyle,2013] Doyle, B. C Programming: From Problem Analysis to Program Design. (Cengage
Learning,2013)
[Donovan,2019] Donovan, B. A brief history of C. (IEEE Computer Society,2019)
[Ghezzi, et. al.,2018] Ghezzi, C., Jazayeri, M. & Mandrioli, D. Fundamentals of software engi-
neering. (Prentice-Hall, Inc.,1991)

View publication stats

You might also like